<?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>176231</bug_id>
          
          <creation_ts>2017-09-01 10:46:55 -0700</creation_ts>
          <short_desc>Move ServiceWorkerJob from FetchLoader to ThreadableLoader</short_desc>
          <delta_ts>2017-12-06 03:30:36 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>aestes</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>jlewis3</cc>
    
    <cc>jrburke</cc>
    
    <cc>olivier</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344455</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 10:46:55 -0700</bug_when>
    <thetext>Move ServiceWorkerJob from FetchLoader to WorkerScriptLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344479</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 11:15:42 -0700</bug_when>
    <thetext>Nope, WorkerScriptLoader is also not currently acceptable.

For now, using ThreadableLoader.

Rename:
Move ServiceWorkerJob from FetchLoader to ThreadableLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344485</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 11:25:43 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #1)
&gt; Nope, WorkerScriptLoader is also not currently acceptable.

What is the issue with WorkerScriptLoader?

&gt; For now, using ThreadableLoader.
&gt; 
&gt; Rename:
&gt; Move ServiceWorkerJob from FetchLoader to ThreadableLoader

That will not really help.
Might be better to postpone this change until there is a good plan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344533</commentid>
    <comment_count>3</comment_count>
      <attachid>319632</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 12:44:37 -0700</bug_when>
    <thetext>Created attachment 319632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344535</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 12:50:49 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; (In reply to Brady Eidson from comment #1)
&gt; &gt; Nope, WorkerScriptLoader is also not currently acceptable.
&gt; 
&gt; What is the issue with WorkerScriptLoader?
&gt; 
&gt; &gt; For now, using ThreadableLoader.
&gt; &gt; 
&gt; &gt; Rename:
&gt; &gt; Move ServiceWorkerJob from FetchLoader to ThreadableLoader
&gt; 
&gt; That will not really help.
&gt; Might be better to postpone this change until there is a good plan.

It gets us closer.

It&apos;s definitely not right, but it&apos;s &quot;less wrong&quot;

I definitely want to remove notions of using FetchLoader before I move on. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344536</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 12:52:01 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; (In reply to Brady Eidson from comment #1)
&gt; &gt; Nope, WorkerScriptLoader is also not currently acceptable.
&gt; 
&gt; What is the issue with WorkerScriptLoader?

You can only feed it a URL and can&apos;t get the data as it streams in.

Additionally, it seems to be designed to be used *from Workers* but whatever we settle on needs to be used from both Documents and Workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344551</commentid>
    <comment_count>6</comment_count>
      <attachid>319632</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 13:15:03 -0700</bug_when>
    <thetext>Comment on attachment 319632
Patch

r=me.
There is no need to create a FetchRequest object here so this is better like this for now.

Since FetchLoader.h/FetchLoaderClient.h are no longer used in WebKit2, they could be reverted to not being &quot;Private&quot; headers.

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

&gt; Source/WebCore/loader/ThreadableLoader.h:46
&gt; +enum PreflightPolicy {

Would be nice as enum class, but hey...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344554</commentid>
    <comment_count>7</comment_count>
      <attachid>319640</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 13:20:32 -0700</bug_when>
    <thetext>Created attachment 319640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344571</commentid>
    <comment_count>8</comment_count>
      <attachid>319640</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 14:04:02 -0700</bug_when>
    <thetext>Comment on attachment 319640
Patch

The iOS-sim failure is an infrastructure issue, not an issue with this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344578</commentid>
    <comment_count>9</comment_count>
      <attachid>319640</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 14:33:06 -0700</bug_when>
    <thetext>Comment on attachment 319640
Patch

Clearing flags on attachment: 319640

Committed r221495: &lt;http://trac.webkit.org/changeset/221495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344579</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 14:33:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345668</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-09-05 15:25:21 -0700</bug_when>
    <thetext>After this patch landed there were multiple Layout test crashing on El Capitan WK2:
  imported/w3c/web-platform-tests/FileAPI/idlharness.html
  imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-worker.html
  imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker.html
  imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https.html
  imported/w3c/web-platform-tests/streams/piping/close-propagation-backward.sharedworker.html
  imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-sources.dedicatedworker.html

https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20WK2%20%28Tests%29/builds/2841
https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r221495%20(2841)/results.html

Crash:
https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r221495%20(2841)/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-worker-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345669</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-05 15:29:35 -0700</bug_when>
    <thetext>(In reply to Matt Lewis from comment #11)
&gt; After this patch landed there were multiple Layout test crashing on El
&gt; Capitan WK2:
&gt;   imported/w3c/web-platform-tests/FileAPI/idlharness.html
&gt;  
&gt; imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-
&gt; worker.html
&gt;  
&gt; imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-
&gt; cross-origin-worker.html
&gt;  
&gt; imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/
&gt; cache-storage-match.https.html
&gt;  
&gt; imported/w3c/web-platform-tests/streams/piping/close-propagation-backward.
&gt; sharedworker.html
&gt;  
&gt; imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-
&gt; sources.dedicatedworker.html
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Debug%20WK2%20%28Tests%29/builds/2841
&gt; https://build.webkit.org/results/
&gt; Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r221495%20(2841)/results.html
&gt; 
&gt; Crash:
&gt; https://build.webkit.org/results/
&gt; Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r221495%20(2841)/imported/w3c/
&gt; web-platform-tests/fetch/api/policies/referrer-no-referrer-worker-crash-log.
&gt; txt
Specifically, this is an assertion failure:
ASSERTION FAILED: m_loader
/Volumes/Data/slave/elcapitan-debug/build/Source/WebCore/workers/service/ServiceWorkerJob.cpp(136) : virtual void WebCore::ServiceWorkerJob::didFail(const WebCore::ResourceError &amp;)
1   0x1149ff8c0 WTFCrash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345707</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-05 16:33:55 -0700</bug_when>
    <thetext>Reverted r221495 for reason:

This change introduced  assertion failures on El Capitan Debug WK2.

Committed r221646: &lt;http://trac.webkit.org/changeset/221646&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319632</attachid>
            <date>2017-09-01 12:44:37 -0700</date>
            <delta_ts>2017-09-01 13:20:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176231-20170901124436.patch</filename>
            <type>text/plain</type>
            <size>14385</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I1NWZlN2M3MWZkNjM5
NjljMDU5ZWFhODVlOTdlNTM1MjA0NWViOC4uMmMwZmJjOTMyZjE3MzFmMWJmYTQ2NjhmNmY5NjEw
MDhkZGQ2MDE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA5LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFNlcnZpY2VXb3Jr
ZXJKb2IgZnJvbSBGZXRjaExvYWRlciB0byBUaHJlYWRhYmxlTG9hZGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjMxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhh
dmlvciBjaGFuZ2UpLgorCisgICAgICAgIFJlLWluZGVudCB0aGVzZSBoZWFkZXJzLiBZdWNrIQor
ICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlTG9hZGVyOjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRl
cjo6ZGVyZWYpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6VGhyZWFkYWJs
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjp+VGhyZWFkYWJs
ZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmRpZFNlbmREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OjpkaWRGaW5p
c2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmRp
ZEZhaWwpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6ZGlkRmlu
aXNoVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OlRo
cmVhZGFibGVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRl
ckNsaWVudDo6flRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorCisgICAgICAgIE1vdmUgZnJvbSBG
ZXRjaExvYWRlckNsaWVudCB0byBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2I6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iOjpkaWRTdWNjZWVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckpvYi5oOgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V0NsaWVudENvbm5lY3Rpb24uY3BwOiBBZGQgYSBub3ctcmVxdWlyZWQgaW5jbHVkZS4KKwogMjAx
Ny0wOS0wMSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2kuSml0c3VrYXdhQHNvbnkuY29t
PgogCiAgICAgICAgIEVuc3VyZSBSZW5kZXJTdHlsZSBhbmQgU2FtZVNpemVBc1JlbmRlclN0eWxl
IGhhdmUgdGhlIHNhbWUgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Ro
cmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmgKaW5kZXggNjMwZGNhMDVmOTlkY2YzYmI0ODJiY2FhOTMxY2I4M2ZiMzM2MDBlNi4uNmJlOGU0
MmMzMjNmNjMyMTI5MmE0ZGE5ZTE5NjNhZDYzOGMxODlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC0zNyw2MiArMzcsNjIgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKLSAgICBjbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwotICAgIGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQ7CitjbGFzcyBS
ZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50OwogCi0gICAgZW51bSBQcmVmbGlnaHRQb2xpY3kgewotICAgICAgICBDb25zaWRl
clByZWZsaWdodCwKLSAgICAgICAgRm9yY2VQcmVmbGlnaHQsCi0gICAgICAgIFByZXZlbnRQcmVm
bGlnaHQKLSAgICB9OworZW51bSBQcmVmbGlnaHRQb2xpY3kgeworICAgIENvbnNpZGVyUHJlZmxp
Z2h0LAorICAgIEZvcmNlUHJlZmxpZ2h0LAorICAgIFByZXZlbnRQcmVmbGlnaHQKK307CiAKLSAg
ICBlbnVtIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IHsKLSAgICAgICAg
RG9Ob3RFbmZvcmNlLAotICAgICAgICBFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmUsCi0gICAgICAg
IEVuZm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlLAotICAgICAgICBFbmZvcmNlU2NyaXB0U3JjRGly
ZWN0aXZlLAotICAgIH07CitlbnVtIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50IHsKKyAgICBEb05vdEVuZm9yY2UsCisgICAgRW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlLAor
ICAgIEVuZm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlLAorICAgIEVuZm9yY2VTY3JpcHRTcmNEaXJl
Y3RpdmUsCit9OwogCi0gICAgZW51bSBjbGFzcyBSZXNwb25zZUZpbHRlcmluZ1BvbGljeSB7Ci0g
ICAgICAgIEVuYWJsZSwKLSAgICAgICAgRGlzYWJsZSwKLSAgICB9OworZW51bSBjbGFzcyBSZXNw
b25zZUZpbHRlcmluZ1BvbGljeSB7CisgICAgRW5hYmxlLAorICAgIERpc2FibGUsCit9OwogCi0g
ICAgc3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zIDogUmVzb3VyY2VMb2FkZXJPcHRpb25z
IHsKLSAgICAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMoKTsKLSAgICAgICAgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMoY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUHJlZmxpZ2h0UG9s
aWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU3RyaW5nJiYgaW5pdGlhdG9y
LCBSZXNwb25zZUZpbHRlcmluZ1BvbGljeSk7Ci0gICAgICAgIH5UaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucygpOworc3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zIDogUmVzb3VyY2VMb2FkZXJP
cHRpb25zIHsKKyAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucygpOworICAgIFRocmVhZGFibGVM
b2FkZXJPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIFByZWZsaWdodFBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFN0cmluZyYmIGluaXRpYXRvciwg
UmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3kpOworICAgIH5UaHJlYWRhYmxlTG9hZGVyT3B0aW9ucygp
OwogCi0gICAgICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIGlzb2xhdGVkQ29weSgpIGNvbnN0
OworICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCi0g
ICAgICAgIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3kgeyBDb25zaWRlclByZWZsaWdo
dCB9OwotICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCBjb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudCB7IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpFbmZvcmNlQ29ubmVjdFNyY0RpcmVjdGl2ZSB9OwotICAgICAgICBTdHJpbmcgaW5pdGlhdG9y
OyAvLyBUaGlzIGNhbm5vdCBiZSBhbiBBdG9taWNTdHJpbmcsIGFzIGlzb2xhdGVkQ29weSgpIHdv
dWxkbid0IGNyZWF0ZSBhbiBvYmplY3QgdGhhdCdzIHNhZmUgZm9yIHBhc3NpbmcgdG8gYW5vdGhl
ciB0aHJlYWQuCi0gICAgICAgIFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5IGZpbHRlcmluZ1BvbGlj
eSB7IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpEaXNhYmxlIH07Ci0gICAgfTsKKyAgICBQcmVm
bGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5IHsgQ29uc2lkZXJQcmVmbGlnaHQgfTsKKyAgICBD
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZv
cmNlbWVudCB7IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVj
dFNyY0RpcmVjdGl2ZSB9OworICAgIFN0cmluZyBpbml0aWF0b3I7IC8vIFRoaXMgY2Fubm90IGJl
IGFuIEF0b21pY1N0cmluZywgYXMgaXNvbGF0ZWRDb3B5KCkgd291bGRuJ3QgY3JlYXRlIGFuIG9i
amVjdCB0aGF0J3Mgc2FmZSBmb3IgcGFzc2luZyB0byBhbm90aGVyIHRocmVhZC4KKyAgICBSZXNw
b25zZUZpbHRlcmluZ1BvbGljeSBmaWx0ZXJpbmdQb2xpY3kgeyBSZXNwb25zZUZpbHRlcmluZ1Bv
bGljeTo6RGlzYWJsZSB9OworfTsKIAotICAgIC8vIFVzZWZ1bCBmb3IgZG9pbmcgbG9hZGVyIG9w
ZXJhdGlvbnMgZnJvbSBhbnkgdGhyZWFkIChub3QgdGhyZWFkc2FmZSwKLSAgICAvLyBqdXN0IGFi
bGUgdG8gcnVuIG9uIHRocmVhZHMgb3RoZXIgdGhhbiB0aGUgbWFpbiB0aHJlYWQpLgotICAgIGNs
YXNzIFRocmVhZGFibGVMb2FkZXIgewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJl
YWRhYmxlTG9hZGVyKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVz
dCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMmKTsKLSAgICAgICAgc3RhdGljIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJl
ciA9IFN0cmluZygpKTsKKy8vIFVzZWZ1bCBmb3IgZG9pbmcgbG9hZGVyIG9wZXJhdGlvbnMgZnJv
bSBhbnkgdGhyZWFkIChub3QgdGhyZWFkc2FmZSwKKy8vIGp1c3QgYWJsZSB0byBydW4gb24gdGhy
ZWFkcyBvdGhlciB0aGFuIHRoZSBtYWluIHRocmVhZCkuCitjbGFzcyBUaHJlYWRhYmxlTG9hZGVy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyKTsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNv
bnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJik7CisgICAgc3RhdGljIFJlZlB0cjxUaHJlYWRh
YmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpKTsKIAotICAgICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsKCkgPSAwOwotICAgICAgICB2b2lkIHJlZigpIHsgcmVmVGhyZWFkYWJsZUxvYWRl
cigpOyB9Ci0gICAgICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmVGhyZWFkYWJsZUxvYWRlcigpOyB9
CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKKyAgICB2b2lkIHJlZigpIHsgcmVmVGhy
ZWFkYWJsZUxvYWRlcigpOyB9CisgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZUaHJlYWRhYmxlTG9h
ZGVyKCk7IH0KIAotICAgICAgICBzdGF0aWMgdm9pZCBsb2dFcnJvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRp
YyB2b2lkIGxvZ0Vycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiwgY29uc3QgU3RyaW5nJik7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFRocmVhZGFi
bGVMb2FkZXIoKSB7IH0KLSAgICAgICAgdmlydHVhbCB+VGhyZWFkYWJsZUxvYWRlcigpIHsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmVGhyZWFkYWJsZUxvYWRlcigpID0gMDsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRlcmVmVGhyZWFkYWJsZUxvYWRlcigpID0gMDsKLSAgICB9OworcHJvdGVj
dGVkOgorICAgIFRocmVhZGFibGVMb2FkZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5UaHJlYWRhYmxl
TG9hZGVyKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlZlRocmVhZGFibGVMb2FkZXIoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmVGhyZWFkYWJsZUxvYWRlcigpID0gMDsKK307CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJs
ZUxvYWRlckNsaWVudC5oCmluZGV4IDJkNThjOTIwZGI2MDNhNmNkNDBhNGFmNDZiZGE5NzllZjA3
MDliMDEuLmFmNmE4NWYxMjc2Y2JlMjk0ZGZmMTM4MzE3MDgzNDg3ZDRiN2RkMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaApAQCAtMzIsMjQg
KzMyLDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFJlc291cmNlRXJy
b3I7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBSZXNvdXJjZVRpbWlu
ZzsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3Mg
UmVzb3VyY2VUaW1pbmc7CiAKLSAgICBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IHsKLSAg
ICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkYWJsZUxvYWRlckNsaWVudCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyAvKmJ5dGVzU2VudCovLCB1bnNpZ25lZCBsb25n
IGxvbmcgLyp0b3RhbEJ5dGVzVG9CZVNlbnQqLykgeyB9CitjbGFzcyBUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
KTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBs
b25nIC8qYnl0ZXNTZW50Ki8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKnRvdGFsQnl0ZXNUb0JlU2Vu
dCovKSB7IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcgLyppZGVudGlmaWVyKi8sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQgLypkYXRh
TGVuZ3RoKi8pIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNp
Z25lZCBsb25nIC8qaWRlbnRpZmllciovKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoVGltaW5nKGNvbnN0IFJlc291cmNlVGltaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIC8qaWRlbnRpZmllciovLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0
IGNoYXIqLCBpbnQgLypkYXRhTGVuZ3RoKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgLyppZGVudGlmaWVyKi8pIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoVGltaW5nKGNvbnN0IFJlc291cmNlVGltaW5nJikgeyB9CiAKLSAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQoKSB7IH0KLSAgICAgICAgdmlydHVh
bCB+VGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQotICAgIH07Citwcm90ZWN0ZWQ6CisgICAg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgflRocmVhZGFibGVMb2Fk
ZXJDbGllbnQoKSB7IH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAppbmRleCBi
NDFlYWEwMjQ0ODc0MTQ2MjFkNGJiNzk5MGRjYmJjM2RlNjAwMTNiLi45OGMzOGJkOWM5YWJiNjlk
MzA2ZGM4ZTI2MmI4OGE2NDM1ODg2ZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBAIC04MiwyMyArODIsMTkgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0
aW9uVGhyZWFkKTsKICAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsKIAotICAgIG1fZmV0Y2hMb2Fk
ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZldGNoTG9hZGVyPigqdGhpcywgbnVsbHB0cik7Ci0KICAg
ICAvLyBGSVhNRTogVGhpcyBGZXRjaCByZXF1ZXN0IGlzIHNldCB1cCBpbmNvcnJlY3RseSBhbmQg
d2l0aG91dCBwcm9wZXIgY2FyZS4KICAgICAvLyBUaGUgU2VydmljZVdvcmtlcnMgc3BlYyBzcGVj
aWZpY3MgbWFueSBkZXRhaWxzIHRvIGFwcGx5IGhlcmUuCiAKLSAgICBhdXRvIGZldGNoSGVhZGVy
cyA9IEZldGNoSGVhZGVyczo6Y3JlYXRlKCk7CisgICAgYXV0byByZXF1ZXN0ID0gUmVzb3VyY2VS
ZXF1ZXN0IHsgbV9qb2JEYXRhLnNjcmlwdFVSTCB9OwogICAgIGF1dG8gcmVmZXJyZXIgPSBtX2pv
YkRhdGEuY2xpZW50Q3JlYXRpb25VUkwuc3RyaW5nKCk7Ci0gICAgYXV0byBmZXRjaFJlcXVlc3Qg
PSBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBzdGQ6Om51bGxvcHQsIFdURk1vdmUoZmV0
Y2hIZWFkZXJzKSwgeyBtX2pvYkRhdGEuc2NyaXB0VVJMIH0sIHsgfSwgV1RGTW92ZShyZWZlcnJl
cikpOwotCi0gICAgbV9mZXRjaExvYWRlci0+c3RhcnQoY29udGV4dCwgZmV0Y2hSZXF1ZXN0KTsK
KyAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShjb250ZXh0LCAqdGhpcywg
V1RGTW92ZShyZXF1ZXN0KSwgeyB9LCBXVEZNb3ZlKHJlZmVycmVyKSk7CiB9CiAKLXZvaWQgU2Vy
dmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgQVNT
RVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKICAgICBBU1NFUlQoIW1f
Y29tcGxldGVkKTsKLSAgICBBU1NFUlQobV9mZXRjaExvYWRlcik7CisgICAgQVNTRVJUKG1fbG9h
ZGVyKTsKICAgICBBU1NFUlQoIW1fc2NyaXB0RGF0YSk7CiAKICAgICBtX2xhc3RSZXNwb25zZSA9
IHJlc3BvbnNlOwpAQCAtMTA5LDExICsxMDUsMTEgQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAg
fQogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
IGRhdGEsIHNpemVfdCBzaXplKQordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKIHsKICAgICBBU1NFUlQoY3VycmVudFRocmVh
ZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOwogICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOwotICAg
IEFTU0VSVChtX2ZldGNoTG9hZGVyKTsKKyAgICBBU1NFUlQobV9sb2FkZXIpOwogCiAgICAgaWYg
KCFtX3NjcmlwdERhdGEpCiAgICAgICAgIG1fc2NyaXB0RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKCk7CkBAIC0xMjEsMjYgKzExNywyNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIG1fc2NyaXB0RGF0
YS0+Z2V0KCkuYXBwZW5kKGRhdGEsIHNpemUpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJKb2I6
OmRpZFN1Y2NlZWQoKQordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9u
VGhyZWFkKTsKICAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsKLSAgICBBU1NFUlQobV9mZXRjaExv
YWRlcik7CisgICAgQVNTRVJUKG1fbG9hZGVyKTsKIAogICAgIGlmICghbV9zY3JpcHREYXRhKQog
ICAgICAgICBtX3NjcmlwdERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOwogICAgIG1fY2xp
ZW50LT5qb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoKnRoaXMsIFdURk1vdmUoKm1fc2NyaXB0RGF0
YSkpOwotICAgIG1fZmV0Y2hMb2FkZXIgPSBudWxscHRyOworICAgIG1fbG9hZGVyID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQogewogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRo
cmVhZCk7CiAgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7Ci0gICAgQVNTRVJUKG1fZmV0Y2hMb2Fk
ZXIpOworICAgIEFTU0VSVChtX2xvYWRlcik7CiAKICAgICBtX2NsaWVudC0+am9iRmFpbGVkTG9h
ZGluZ1NjcmlwdCgqdGhpcywgZXJyb3IpOwotICAgIG1fZmV0Y2hMb2FkZXIgPSBudWxscHRyOwor
ICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5k
ZXggNzFmNjc3OThlMzVjYTFkMmUyMTYwZDEwOGQ5MjQwMjY0M2EyNGMzOC4uZmI1YjA5Y2FhNjQ0
MjBlMDRlMWRkNTc5NDNlYzIzN2Y4Yzk2Mjg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCkBAIC0yNywxMSArMjcsMTEgQEAKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIkZldGNoTG9hZGVyLmgiCi0j
aW5jbHVkZSAiRmV0Y2hMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkNsaWVudC5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJKb2JEYXRhLmgiCisjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgorI2luY2x1
ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGVu
dW0gY2xhc3MgU2VydmljZVdvcmtlckpvYlR5cGU7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXJKb2IgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckpvYj4sIHB1YmxpYyBGZXRjaExvYWRlckNsaWVudCB7
CitjbGFzcyBTZXJ2aWNlV29ya2VySm9iIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNl
cnZpY2VXb3JrZXJKb2I+LCBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VySm9iPiBjcmVhdGUoU2VydmljZVdvcmtlckpv
YkNsaWVudCYgY2xpZW50LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIFNlcnZpY2VX
b3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICB7CkBAIC02NiwxMCArNjYsMTAgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VySm9iKFNlcnZpY2VXb3JrZXJKb2JDbGllbnQm
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBTZXJ2aWNlV29ya2VySm9iRGF0YSYmKTsKIAotICAg
IC8vIEZldGNoTG9hZGVyQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3Qg
Y2hhciosIHNpemVfdCkgZmluYWw7Ci0gICAgdm9pZCBkaWRTdWNjZWVkKCkgZmluYWw7CisgICAg
Ly8gVGhyZWFkYWJsZUxvYWRlckNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgZmlu
YWw7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAog
ICAgIFJlZjxTZXJ2aWNlV29ya2VySm9iQ2xpZW50PiBtX2NsaWVudDsKQEAgLTc5LDcgKzc5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcGxldGVkIHsgZmFsc2UgfTsKIAogICAgIFJlZjxS
dW5Mb29wPiBtX3J1bkxvb3AgeyBSdW5Mb29wOjpjdXJyZW50KCkgfTsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmV0Y2hMb2FkZXI+IG1fZmV0Y2hMb2FkZXI7CisgICAgUmVmUHRyPFRocmVhZGFibGVM
b2FkZXI+IG1fbG9hZGVyOwogICAgIFJlc291cmNlUmVzcG9uc2UgbV9sYXN0UmVzcG9uc2U7CiAg
ICAgc3RkOjpvcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4gbV9zY3JpcHREYXRhOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggOGQ5NDQ3N2Q5OTIyYmMzNGFjN2YxZGM1ZTk2NGYyNzZj
MjcyNDNlNC4uMDFmY2NkMWJhZjcwODZkM2ZiYzg1YjIwNDc3ZjU2MDQyMDZjMDhkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dD
bGllbnRDb25uZWN0aW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319640</attachid>
            <date>2017-09-01 13:20:32 -0700</date>
            <delta_ts>2017-09-01 14:33:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176231-20170901132031.patch</filename>
            <type>text/plain</type>
            <size>18485</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I1NWZlN2M3MWZkNjM5
NjljMDU5ZWFhODVlOTdlNTM1MjA0NWViOC4uNDY1ZTMyMzQ0YTVkMGRmMTZkNGYwNTAzNzViZmZi
MTMxOGRhZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA5LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFNlcnZpY2VXb3Jr
ZXJKb2IgZnJvbSBGZXRjaExvYWRlciB0byBUaHJlYWRhYmxlTG9hZGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjMxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2
aW9yIGNoYW5nZSkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKKyAgICAgICAgUmUtaW5kZW50IHRoZXNlIGhlYWRlcnMuIFl1Y2shCisgICAgICAgICog
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVM
b2FkZXI6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpkZXJlZik6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpUaHJlYWRhYmxlTG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6On5UaHJlYWRhYmxlTG9hZGVyKToK
KyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6ZGlkU2VuZERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6ZGlkRmFpbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hUaW1pbmcp
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6VGhyZWFkYWJsZUxv
YWRlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Ojp+
VGhyZWFkYWJsZUxvYWRlckNsaWVudCk6CisKKyAgICAgICAgTW92ZSBmcm9tIEZldGNoTG9hZGVy
Q2xpZW50IHRvIFRocmVhZGFibGVMb2FkZXJDbGllbnQ6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckpvYjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmRp
ZFN1Y2NlZWQpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VySm9iLmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29u
bmVjdGlvbi5jcHA6IEFkZCBhIG5vdy1yZXF1aXJlZCBpbmNsdWRlLgorCiAyMDE3LTA5LTAxICBZ
b3NoaWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CiAKICAgICAg
ICAgRW5zdXJlIFJlbmRlclN0eWxlIGFuZCBTYW1lU2l6ZUFzUmVuZGVyU3R5bGUgaGF2ZSB0aGUg
c2FtZSBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNGRiNzQyNDQ2ZjBhYzhhY2MwZmQxYjgwNmY2NGU5YTBhMzg2NDQ2Ni4u
OTM5NmRmNDYyNzRkNzU0NTQ2Y2EwNWUxZTcwZWM3MWMzNzNjNDk4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMwNSw4ICsy
MzA1LDggQEAKIAkJNTE3QTUzNDYxRjUwQzE3RjAwRENEQzBBIC8qIFNXU2VydmVyV29ya2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM0MjFG
NTBDMTYxMDBEQ0RDMEEgLyogU1dTZXJ2ZXJXb3JrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTdBNTM0RTFGNTRBOEJBMDBEQ0RDMEEgLyog
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNEIxRjU0OUQ0QTAwRENEQzBBIC8qIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmNwcCAqLzsgfTsKIAkJNTE3QTUzNEYxRjU0QThCQTAw
RENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM0QzFGNTQ5RDRBMDBEQ0RDMEEg
LyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyog
RmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNDdFMkI2MUM4OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExvYWRlckNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxN0E1
MzVBMUY1ODg5RUYwMERDREMwQSAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0N0UyQjUxQzg5OTEyNjAwQTdFNzE1IC8qIEZl
dGNoTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTQ3RTJCNjFDODk5
MTI2MDBBN0U3MTUgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCAqLzsgfTsKKwkJNTE3QTUzNUExRjU4
ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTQ3RTJCNTFDODk5MTI2MDBBN0U3MTUgLyogRmV0Y2hMb2Fk
ZXIuaCAqLzsgfTsKIAkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNvbnN1
bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUNG
OEJFNTFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTdBNTM1RDFGNTg5OUZFMDBE
Q0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM1QzFGNTg5OUYyMDBEQ0RDMEEgLyogU2Vy
dmljZVdvcmtlckZldGNoUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTYzQzMxQjc0MzE4NzAwRTdEQ0RDIC8qIEtleWVkRGVjb2Rl
ckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0E2M0JGMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5jcHAgKi87IH07CkBAIC0x
MTQ0Niw4ICsxMTQ0Niw4IEBACiAJCTdDQkE1QkE2MUYwQjRCREUwMDM0RDc0NSAvKiBKU0RPTUNv
bnZlcnRXZWJHTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUNvbnZlcnRXZWJHTC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkJCQ0M0MUY1NjA1NjcwMDVFRkFBQyAv
KiBET01NYXRyaXgyREluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTU1hdHJpeDJE
SW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkJCQ0M2MUY1NjA1Njgw
MDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdD
QkJCQ0M4MUY1NjE3QzAwMDVFRkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBKU0RPTU1hdHJpeDJESW5pdC5jcHA7IHBhdGggPSBKU0RPTU1hdHJpeDJESW5p
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJCQ0M5MUY1NjE3QzAwMDVF
RkFBQyAvKiBKU0RPTU1hdHJpeDJESW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0RPTU1hdHJpeDJE
SW5pdC5oOyBwYXRoID0gSlNET01NYXRyaXgyREluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0NCQkJDQzgxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4MkRJbml0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJbml0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQkJDQzkxRjU2MTdDMDAwNUVGQUFDIC8qIEpTRE9NTWF0cml4
MkRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWF0cml4MkRJbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDQzJEREY4MUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDMkRERkExRUM5NDE1QTAwMjdCNzc0IC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGRTFFQzk1QTQ0MDAyN0I3
NzQgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApp
bmRleCA2MzBkY2EwNWY5OWRjZjNiYjQ4MmJjYWE5MzFjYjgzZmIzMzYwMGU2Li42YmU4ZTQyYzMy
M2Y2MzIxMjkyYTRkYTllMTk2M2FkNjM4YzE4OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmgKQEAgLTM3LDYyICszNyw2MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKLSAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7Ci0gICAgY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNsaWVudDsKK2NsYXNzIFJlc291
cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFRocmVhZGFibGVMb2FkZXJD
bGllbnQ7CiAKLSAgICBlbnVtIFByZWZsaWdodFBvbGljeSB7Ci0gICAgICAgIENvbnNpZGVyUHJl
ZmxpZ2h0LAotICAgICAgICBGb3JjZVByZWZsaWdodCwKLSAgICAgICAgUHJldmVudFByZWZsaWdo
dAotICAgIH07CitlbnVtIFByZWZsaWdodFBvbGljeSB7CisgICAgQ29uc2lkZXJQcmVmbGlnaHQs
CisgICAgRm9yY2VQcmVmbGlnaHQsCisgICAgUHJldmVudFByZWZsaWdodAorfTsKIAotICAgIGVu
dW0gY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgewotICAgICAgICBEb05v
dEVuZm9yY2UsCi0gICAgICAgIEVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZSwKLSAgICAgICAgRW5m
b3JjZUNvbm5lY3RTcmNEaXJlY3RpdmUsCi0gICAgICAgIEVuZm9yY2VTY3JpcHRTcmNEaXJlY3Rp
dmUsCi0gICAgfTsKK2VudW0gY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQg
eworICAgIERvTm90RW5mb3JjZSwKKyAgICBFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmUsCisgICAg
RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmUsCisgICAgRW5mb3JjZVNjcmlwdFNyY0RpcmVjdGl2
ZSwKK307CiAKLSAgICBlbnVtIGNsYXNzIFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5IHsKLSAgICAg
ICAgRW5hYmxlLAotICAgICAgICBEaXNhYmxlLAotICAgIH07CitlbnVtIGNsYXNzIFJlc3BvbnNl
RmlsdGVyaW5nUG9saWN5IHsKKyAgICBFbmFibGUsCisgICAgRGlzYWJsZSwKK307CiAKLSAgICBz
dHJ1Y3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgOiBSZXNvdXJjZUxvYWRlck9wdGlvbnMgewot
ICAgICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucygpOwotICAgICAgICBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBQcmVmbGlnaHRQb2xpY3ks
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTdHJpbmcmJiBpbml0aWF0b3IsIFJl
c3BvbnNlRmlsdGVyaW5nUG9saWN5KTsKLSAgICAgICAgflRocmVhZGFibGVMb2FkZXJPcHRpb25z
KCk7CitzdHJ1Y3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgOiBSZXNvdXJjZUxvYWRlck9wdGlv
bnMgeworICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zKCk7CisgICAgVGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMoY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUHJlZmxpZ2h0UG9saWN5LCBD
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU3RyaW5nJiYgaW5pdGlhdG9yLCBSZXNw
b25zZUZpbHRlcmluZ1BvbGljeSk7CisgICAgflRocmVhZGFibGVMb2FkZXJPcHRpb25zKCk7CiAK
LSAgICAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cisg
ICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKLSAgICAg
ICAgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSB7IENvbnNpZGVyUHJlZmxpZ2h0IH07
Ci0gICAgICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50IHsgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVu
Zm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlIH07Ci0gICAgICAgIFN0cmluZyBpbml0aWF0b3I7IC8v
IFRoaXMgY2Fubm90IGJlIGFuIEF0b21pY1N0cmluZywgYXMgaXNvbGF0ZWRDb3B5KCkgd291bGRu
J3QgY3JlYXRlIGFuIG9iamVjdCB0aGF0J3Mgc2FmZSBmb3IgcGFzc2luZyB0byBhbm90aGVyIHRo
cmVhZC4KLSAgICAgICAgUmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3kgZmlsdGVyaW5nUG9saWN5IHsg
UmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3k6OkRpc2FibGUgfTsKLSAgICB9OworICAgIFByZWZsaWdo
dFBvbGljeSBwcmVmbGlnaHRQb2xpY3kgeyBDb25zaWRlclByZWZsaWdodCB9OworICAgIENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50IHsgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3Jj
RGlyZWN0aXZlIH07CisgICAgU3RyaW5nIGluaXRpYXRvcjsgLy8gVGhpcyBjYW5ub3QgYmUgYW4g
QXRvbWljU3RyaW5nLCBhcyBpc29sYXRlZENvcHkoKSB3b3VsZG4ndCBjcmVhdGUgYW4gb2JqZWN0
IHRoYXQncyBzYWZlIGZvciBwYXNzaW5nIHRvIGFub3RoZXIgdGhyZWFkLgorICAgIFJlc3BvbnNl
RmlsdGVyaW5nUG9saWN5IGZpbHRlcmluZ1BvbGljeSB7IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5
OjpEaXNhYmxlIH07Cit9OwogCi0gICAgLy8gVXNlZnVsIGZvciBkb2luZyBsb2FkZXIgb3BlcmF0
aW9ucyBmcm9tIGFueSB0aHJlYWQgKG5vdCB0aHJlYWRzYWZlLAotICAgIC8vIGp1c3QgYWJsZSB0
byBydW4gb24gdGhyZWFkcyBvdGhlciB0aGFuIHRoZSBtYWluIHRocmVhZCkuCi0gICAgY2xhc3Mg
VGhyZWFkYWJsZUxvYWRlciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGFi
bGVMb2FkZXIpOwotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNl
U3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYs
IFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYp
OwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJlZmVycmVyID0g
U3RyaW5nKCkpOworLy8gVXNlZnVsIGZvciBkb2luZyBsb2FkZXIgb3BlcmF0aW9ucyBmcm9tIGFu
eSB0aHJlYWQgKG5vdCB0aHJlYWRzYWZlLAorLy8ganVzdCBhYmxlIHRvIHJ1biBvbiB0aHJlYWRz
IG90aGVyIHRoYW4gdGhlIG1haW4gdGhyZWFkKS4KK2NsYXNzIFRocmVhZGFibGVMb2FkZXIgewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGFibGVMb2FkZXIpOworcHVibGljOgorICAg
IHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29uc3Qg
VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmKTsKKyAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVM
b2FkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNs
aWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYs
IFN0cmluZyYmIHJlZmVycmVyID0gU3RyaW5nKCkpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWwoKSA9IDA7Ci0gICAgICAgIHZvaWQgcmVmKCkgeyByZWZUaHJlYWRhYmxlTG9hZGVyKCk7
IH0KLSAgICAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZUaHJlYWRhYmxlTG9hZGVyKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgPSAwOworICAgIHZvaWQgcmVmKCkgeyByZWZUaHJlYWRh
YmxlTG9hZGVyKCk7IH0KKyAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZlRocmVhZGFibGVMb2FkZXIo
KTsgfQogCi0gICAgICAgIHN0YXRpYyB2b2lkIGxvZ0Vycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBjb25zdCBSZXNvdXJjZUVycm9yJiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZv
aWQgbG9nRXJyb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFJlc291cmNlRXJyb3Im
LCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgVGhyZWFkYWJsZUxv
YWRlcigpIHsgfQotICAgICAgICB2aXJ0dWFsIH5UaHJlYWRhYmxlTG9hZGVyKCkgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZWZUaHJlYWRhYmxlTG9hZGVyKCkgPSAwOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGVyZWZUaHJlYWRhYmxlTG9hZGVyKCkgPSAwOwotICAgIH07Citwcm90ZWN0ZWQ6
CisgICAgVGhyZWFkYWJsZUxvYWRlcigpIHsgfQorICAgIHZpcnR1YWwgflRocmVhZGFibGVMb2Fk
ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmVGhyZWFkYWJsZUxvYWRlcigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZUaHJlYWRhYmxlTG9hZGVyKCkgPSAwOworfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50LmgKaW5kZXggMmQ1OGM5MjBkYjYwM2E2Y2Q0MGE0YWY0NmJkYTk3OWVmMDcwOWIw
MS4uYWY2YTg1ZjEyNzZjYmUyOTRkZmYxMzgzMTcwODM0ODdkNGI3ZGQwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCkBAIC0zMiwyNCArMzIs
MjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsK
LSAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotICAgIGNsYXNzIFJlc291cmNlVGltaW5nOwor
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBSZXNv
dXJjZVRpbWluZzsKIAotICAgIGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQgewotICAgICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2Vu
ZERhdGEodW5zaWduZWQgbG9uZyBsb25nIC8qYnl0ZXNTZW50Ki8sIHVuc2lnbmVkIGxvbmcgbG9u
ZyAvKnRvdGFsQnl0ZXNUb0JlU2VudCovKSB7IH0KK2NsYXNzIFRocmVhZGFibGVMb2FkZXJDbGll
bnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGFibGVMb2FkZXJDbGllbnQpOwor
cHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcg
LypieXRlc1NlbnQqLywgdW5zaWduZWQgbG9uZyBsb25nIC8qdG90YWxCeXRlc1RvQmVTZW50Ki8p
IHsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyAvKmlkZW50aWZpZXIqLywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCAvKmRhdGFMZW5n
dGgqLykgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgLyppZGVudGlmaWVyKi8pIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChj
b25zdCBSZXNvdXJjZUVycm9yJikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hU
aW1pbmcoY29uc3QgUmVzb3VyY2VUaW1pbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgLyppZGVudGlmaWVyKi8sIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hh
ciosIGludCAvKmRhdGFMZW5ndGgqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZyAvKmlkZW50aWZpZXIqLykgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hUaW1pbmcoY29uc3QgUmVzb3VyY2VUaW1pbmcmKSB7IH0KIAotICAgIHByb3RlY3RlZDoK
LSAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQotICAgICAgICB2aXJ0dWFsIH5U
aHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9Ci0gICAgfTsKK3Byb3RlY3RlZDoKKyAgICBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+VGhyZWFkYWJsZUxvYWRlckNs
aWVudCgpIHsgfQorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCmluZGV4IGI0MWVh
YTAyNDQ4NzQxNDYyMWQ0YmI3OTkwZGNiYmMzZGU2MDAxM2IuLjk4YzM4YmQ5YzlhYmI2OWQzMDZk
YzhlMjYyYjg4YTY0MzU4ODZlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKQEAgLTgyLDIzICs4MiwxOSBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25U
aHJlYWQpOwogICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOwogCi0gICAgbV9mZXRjaExvYWRlciA9
IHN0ZDo6bWFrZV91bmlxdWU8RmV0Y2hMb2FkZXI+KCp0aGlzLCBudWxscHRyKTsKLQogICAgIC8v
IEZJWE1FOiBUaGlzIEZldGNoIHJlcXVlc3QgaXMgc2V0IHVwIGluY29ycmVjdGx5IGFuZCB3aXRo
b3V0IHByb3BlciBjYXJlLgogICAgIC8vIFRoZSBTZXJ2aWNlV29ya2VycyBzcGVjIHNwZWNpZmlj
cyBtYW55IGRldGFpbHMgdG8gYXBwbHkgaGVyZS4KIAotICAgIGF1dG8gZmV0Y2hIZWFkZXJzID0g
RmV0Y2hIZWFkZXJzOjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVl
c3QgeyBtX2pvYkRhdGEuc2NyaXB0VVJMIH07CiAgICAgYXV0byByZWZlcnJlciA9IG1fam9iRGF0
YS5jbGllbnRDcmVhdGlvblVSTC5zdHJpbmcoKTsKLSAgICBhdXRvIGZldGNoUmVxdWVzdCA9IEZl
dGNoUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShmZXRjaEhl
YWRlcnMpLCB7IG1fam9iRGF0YS5zY3JpcHRVUkwgfSwgeyB9LCBXVEZNb3ZlKHJlZmVycmVyKSk7
Ci0KLSAgICBtX2ZldGNoTG9hZGVyLT5zdGFydChjb250ZXh0LCBmZXRjaFJlcXVlc3QpOworICAg
IG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKGNvbnRleHQsICp0aGlzLCBXVEZN
b3ZlKHJlcXVlc3QpLCB7IH0sIFdURk1vdmUocmVmZXJyZXIpKTsKIH0KIAotdm9pZCBTZXJ2aWNl
V29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQo
Y3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOwogICAgIEFTU0VSVCghbV9jb21w
bGV0ZWQpOwotICAgIEFTU0VSVChtX2ZldGNoTG9hZGVyKTsKKyAgICBBU1NFUlQobV9sb2FkZXIp
OwogICAgIEFTU0VSVCghbV9zY3JpcHREYXRhKTsKIAogICAgIG1fbGFzdFJlc3BvbnNlID0gcmVz
cG9uc2U7CkBAIC0xMDksMTEgKzEwNSwxMSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICB9CiB9
CiAKLXZvaWQgU2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0
YSwgc2l6ZV90IHNpemUpCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2VpdmVEYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQogewogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkg
PT0gbV9jcmVhdGlvblRocmVhZCk7CiAgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7Ci0gICAgQVNT
RVJUKG1fZmV0Y2hMb2FkZXIpOworICAgIEFTU0VSVChtX2xvYWRlcik7CiAKICAgICBpZiAoIW1f
c2NyaXB0RGF0YSkKICAgICAgICAgbV9zY3JpcHREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KTsKQEAgLTEyMSwyNiArMTE3LDI2IEBAIHZvaWQgU2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgbV9zY3JpcHREYXRhLT5n
ZXQoKS5hcHBlbmQoZGF0YSwgc2l6ZSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckpvYjo6ZGlk
U3VjY2VlZCgpCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZEZpbmlzaExvYWRpbmcodW5zaWdu
ZWQgbG9uZykKIHsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25UaHJl
YWQpOwogICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOwotICAgIEFTU0VSVChtX2ZldGNoTG9hZGVy
KTsKKyAgICBBU1NFUlQobV9sb2FkZXIpOwogCiAgICAgaWYgKCFtX3NjcmlwdERhdGEpCiAgICAg
ICAgIG1fc2NyaXB0RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAgbV9jbGllbnQt
PmpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdCgqdGhpcywgV1RGTW92ZSgqbV9zY3JpcHREYXRhKSk7
Ci0gICAgbV9mZXRjaExvYWRlciA9IG51bGxwdHI7CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwog
fQogCiB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFk
KTsKICAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsKLSAgICBBU1NFUlQobV9mZXRjaExvYWRlcik7
CisgICAgQVNTRVJUKG1fbG9hZGVyKTsKIAogICAgIG1fY2xpZW50LT5qb2JGYWlsZWRMb2FkaW5n
U2NyaXB0KCp0aGlzLCBlcnJvcik7Ci0gICAgbV9mZXRjaExvYWRlciA9IG51bGxwdHI7CisgICAg
bV9sb2FkZXIgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAppbmRleCA3
MWY2Nzc5OGUzNWNhMWQyZTIxNjBkMTA4ZDkyNDAyNjQzYTI0YzM4Li5mYjViMDljYWE2NDQyMGUw
NGUxZGQ1Nzk0M2VjMjM3ZjhjOTYyODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKQEAgLTI3LDExICsyNywxMSBAQAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVkZSAiRmV0Y2hMb2FkZXIuaCIKLSNpbmNs
dWRlICJGZXRjaExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlckpvYkRhdGEuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCisjaW5jbHVkZSAi
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51bSBj
bGFzcyBTZXJ2aWNlV29ya2VySm9iVHlwZTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YTsKIAotY2xhc3MgU2VydmljZVdvcmtlckpvYiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxTZXJ2aWNlV29ya2VySm9iPiwgcHVibGljIEZldGNoTG9hZGVyQ2xpZW50IHsKK2Ns
YXNzIFNlcnZpY2VXb3JrZXJKb2IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Vydmlj
ZVdvcmtlckpvYj4sIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJKb2I+IGNyZWF0ZShTZXJ2aWNlV29ya2VySm9iQ2xp
ZW50JiBjbGllbnQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgU2VydmljZVdvcmtl
ckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHsKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJKb2IoU2VydmljZVdvcmtlckpvYkNsaWVudCYsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYsIFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYpOwogCi0gICAgLy8g
RmV0Y2hMb2FkZXJDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFy
Kiwgc2l6ZV90KSBmaW5hbDsKLSAgICB2b2lkIGRpZFN1Y2NlZWQoKSBmaW5hbDsKKyAgICAvLyBU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAg
dm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogCiAgICAg
UmVmPFNlcnZpY2VXb3JrZXJKb2JDbGllbnQ+IG1fY2xpZW50OwpAQCAtNzksNyArNzksNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9jb21wbGV0ZWQgeyBmYWxzZSB9OwogCiAgICAgUmVmPFJ1bkxv
b3A+IG1fcnVuTG9vcCB7IFJ1bkxvb3A6OmN1cnJlbnQoKSB9OwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxGZXRjaExvYWRlcj4gbV9mZXRjaExvYWRlcjsKKyAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRl
cj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX2xhc3RSZXNwb25zZTsKICAgICBz
dGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiBtX3NjcmlwdERhdGE7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmNwcAppbmRleCA4ZDk0NDc3ZDk5MjJiYzM0YWM3ZjFkYzVlOTY0ZjI3NmMyNzI0
M2U0Li4wMWZjY2QxYmFmNzA4NmQzZmJjODViMjA0NzdmNTYwNDIwNmMwOGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uRGF0
YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJKb2JEYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>