<?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>180329</bug_id>
          
          <creation_ts>2017-12-02 23:23:45 -0800</creation_ts>
          <short_desc>Implement self.skipWaiting() inside service workers</short_desc>
          <delta_ts>2017-12-04 13:23:50 -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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180372</see_also>
          <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>
          
          <blocked>180328</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377444</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 23:23:45 -0800</bug_when>
    <thetext>Implement self.skipWaiting() inside service workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377446</commentid>
    <comment_count>1</comment_count>
      <attachid>328285</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 23:53:41 -0800</bug_when>
    <thetext>Created attachment 328285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377447</commentid>
    <comment_count>2</comment_count>
      <attachid>328286</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 23:56:54 -0800</bug_when>
    <thetext>Created attachment 328286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377486</commentid>
    <comment_count>3</comment_count>
      <attachid>328286</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-03 12:33:01 -0800</bug_when>
    <thetext>Comment on attachment 328286
Patch

Clearing flags on attachment: 328286

Committed r225460: &lt;https://trac.webkit.org/changeset/225460&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377487</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-03 12:33:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377488</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-03 12:34:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/35820007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377504</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-03 14:08:53 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=328286&amp;action=review

&gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:56
&gt; +                thread().runLoop().postTask([promise = WTFMove(promise), protectedThis = WTFMove(protectedThis)](auto&amp;) {

I wonder what ensures thread() to be valid at that point.
Is there anything that prevents the worker to be terminated and the run loop to be stopped?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377521</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 14:41:46 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328286&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:56
&gt; &gt; +                thread().runLoop().postTask([promise = WTFMove(promise), protectedThis = WTFMove(protectedThis)](auto&amp;) {
&gt; 
&gt; I wonder what ensures thread() to be valid at that point.
&gt; Is there anything that prevents the worker to be terminated and the run loop
&gt; to be stopped?

The WorkerThread stays alive longer that the WorkerGlobalScope, which is why WorkerGlobalScope::m_thread is a WorkerThread&amp;. I do ref the WorkerGlobalScope here so if accessing thread() should be safe AFAICT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377596</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-03 21:01:02 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to youenn fablet from comment #6)
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328286&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:56
&gt; &gt; &gt; +                thread().runLoop().postTask([promise = WTFMove(promise), protectedThis = WTFMove(protectedThis)](auto&amp;) {
&gt; &gt; 
&gt; &gt; I wonder what ensures thread() to be valid at that point.
&gt; &gt; Is there anything that prevents the worker to be terminated and the run loop
&gt; &gt; to be stopped?
&gt; 
&gt; The WorkerThread stays alive longer that the WorkerGlobalScope, which is why
&gt; WorkerGlobalScope::m_thread is a WorkerThread&amp;. I do ref the
&gt; WorkerGlobalScope here so if accessing thread() should be safe AFAICT.

I might be missing something here.
I am not sure how we can guarantee that WorkerThread always stays alive longer than WorkerGlobalScope.
They have different refcounts.

Also, even if not destroyed, it seems feasible with the patch that we will post a task on a closed worker thread/message queue.
In that case, I would guess that the task will not be executed/destroyed on the worker thread. I haven&apos;t looked at how postTask/messageQueue works precisely so maybe I am misunderstanding something here. Let&apos;s discuss this in person tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377859</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 13:23:45 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; (In reply to youenn fablet from comment #6)
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328286&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:56
&gt; &gt; &gt; &gt; +                thread().runLoop().postTask([promise = WTFMove(promise), protectedThis = WTFMove(protectedThis)](auto&amp;) {
&gt; &gt; &gt; 
&gt; &gt; &gt; I wonder what ensures thread() to be valid at that point.
&gt; &gt; &gt; Is there anything that prevents the worker to be terminated and the run loop
&gt; &gt; &gt; to be stopped?
&gt; &gt; 
&gt; &gt; The WorkerThread stays alive longer that the WorkerGlobalScope, which is why
&gt; &gt; WorkerGlobalScope::m_thread is a WorkerThread&amp;. I do ref the
&gt; &gt; WorkerGlobalScope here so if accessing thread() should be safe AFAICT.
&gt; 
&gt; I might be missing something here.
&gt; I am not sure how we can guarantee that WorkerThread always stays alive
&gt; longer than WorkerGlobalScope.
&gt; They have different refcounts.
&gt; 
&gt; Also, even if not destroyed, it seems feasible with the patch that we will
&gt; post a task on a closed worker thread/message queue.
&gt; In that case, I would guess that the task will not be executed/destroyed on
&gt; the worker thread. I haven&apos;t looked at how postTask/messageQueue works
&gt; precisely so maybe I am misunderstanding something here. Let&apos;s discuss this
&gt; in person tomorrow.

Filed https://bugs.webkit.org/show_bug.cgi?id=180372.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328285</attachid>
            <date>2017-12-02 23:53:41 -0800</date>
            <delta_ts>2017-12-02 23:56:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180329-20171202235340.patch</filename>
            <type>text/plain</type>
            <size>25016</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmViNzRlYjBhZGEzNTQ0
N2I3MWI2NDNmZDVmMDhiZTIxNjAzYjRjYy4uOTRlOWZmODU2NTAxYjdlYmMwYjcxOTUwNTQ0OGJl
NDNmMDRmNWNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTEyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNlbGYuc2tp
cFdhaXRpbmcoKSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGlu
c2lkZSBzZXJ2aWNlIHdvcmtlcnM6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1Nl
cnZpY2VXb3JrZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1za2lwd2FpdGluZworCisg
ICAgICAgIEFsc28gZml4ZXMgYSBidWcgd2hlcmUgdHJ5QWN0aXZhdGUoKSB3YXMgY2FsbGluZyBh
Y3RpdmF0ZSgpIGV2ZW4gdGhvdWdoIHRoZQorICAgICAgICByZWdpc3RyYXRpb24ncyBhY3RpdmUg
d29ya2VyIHdhcyAiaW4gdXNlIjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2Vy
dmljZVdvcmtlci8jdHJ5LWFjdGl2YXRlLWFsZ29yaXRobQorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZTo6c2tpcFdhaXRpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNX
U2VydmVyUmVnaXN0cmF0aW9uOjp0cnlBY3RpdmF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpza2lwV2FpdGluZyk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpza2lwV2FpdGluZyk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJXb3JrZXI6OmlzU2tpcFdhaXRpbmdGbGFnU2V0IGNvbnN0KToKKwogMjAxNy0x
Mi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBy
ZWdpc3RyYXRpb24gYWN0aXZhdGlvbiBhbmQgY2xlYXJpbmcgZnJvbSBTV1NlcnZlckpvYlF1ZXVl
IHRvIFNXU2VydmVyUmVnaXN0cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0Mzc1MDJiY2RmZDA3YmVhMjM0
NmRhOGU1ZjI0NDFmN2EyNWY1OGQuLjQ4Nzk4YTBmZGI3NWViODVhMTAyNjIxMzZmNTMxNWYzMDZj
ZjRkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMTItMDIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGlu
ZygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmRpZEZpbmlzaFNraXBXYWl0aW5nKToKKyAgICAgICAgKiBT
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpza2lwV2FpdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGlu
Zyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE3LTEyLTAyICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtZ2V0YWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDBmMjMwYzI2ZDc2MGExNzM1NjA3YWMzYTM4MjUyMzg1MTA5ODY1N2IuLjM0YzBmYzAzZjgw
ZmFkMzdmYWVhMjYyZDk1OWViNzYyODZkOWJhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC01MCw4ICs1MCwxNSBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6On5TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Ojpza2lwV2FpdGluZyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgotICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJzZWxmLnNraXBXYWl0aW5nKCkgaXMgbm90
IHlldCBzdXBwb3J0ZWQiKSB9KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB0aHJlYWRJ
ZGVudGlmaWVyID0gdGhyZWFkKCkuaWRlbnRpZmllcigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpIHsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb24tPnNraXBXYWl0aW5nKHRocmVhZElkZW50aWZpZXIsIFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICB0aHJlYWQoKS5ydW5M
b29wKCkucG9zdFRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJikgeworICAg
ICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOwogfQogCiBFdmVudFRhcmdldElu
dGVyZmFjZSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NXQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAppbmRleCBmMGIxMGEwMTQ0MWRhNDU5YzNhOTAzOWY3NTc0
YWMyN2U1Njc4N2Y4Li5hYjVkZTcwYzgwZDllN2Q1Yzc4ODczNTcxOWMxZjIxOTI3ZjI3OTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRl
eHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRz
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB3b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBza2lwV2FpdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spID0gMDsKIAogICAgICAgICB1c2luZyBGaW5kQ2xp
ZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+JiYpPjsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVu
dGlmaWVyQ2FsbGJhY2smJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA4
Mjc0OWU0OGY4ZDdhYzUxYzA2Y2Y3MmRmNzhhMWE4ODZiMzNhMDQ5Li42Y2E5MjY0MTk4ZjYzNWY1
ZmY1YjYwOWY0YmQyZmY1MTAyMWIyZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApA
QCAtMjMyLDkgKzIzMiw4IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnRyeUFjdGl2YXRl
KCkKICAgICAvLyBJbnZva2UgQWN0aXZhdGUgd2l0aCByZWdpc3RyYXRpb24gaWYgZWl0aGVyIG9m
IHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKICAgICAvLyAtIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3
b3JrZXIgaXMgbnVsbC4KICAgICAvLyAtIFRoZSByZXN1bHQgb2YgcnVubmluZyBTZXJ2aWNlIFdv
cmtlciBIYXMgTm8gUGVuZGluZyBFdmVudHMgd2l0aCByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29y
a2VyIGlzIHRydWUsCi0gICAgLy8gICBhbmQgbm8gc2VydmljZSB3b3JrZXIgY2xpZW50IGlzIHVz
aW5nIHJlZ2lzdHJhdGlvbgotICAgIC8vIEZJWE1FOiBDaGVjayBmb3IgdGhlIHNraXAgd2FpdGlu
ZyBmbGFnLgotICAgIGlmICghYWN0aXZlV29ya2VyKCkgfHwgIWFjdGl2ZVdvcmtlcigpLT5oYXNQ
ZW5kaW5nRXZlbnRzKCkpCisgICAgLy8gICBhbmQgbm8gc2VydmljZSB3b3JrZXIgY2xpZW50IGlz
IHVzaW5nIHJlZ2lzdHJhdGlvbiBvciByZWdpc3RyYXRpb24ncyB3YWl0aW5nIHdvcmtlcidzIHNr
aXAgd2FpdGluZyBmbGFnIGlzIHNldC4KKyAgICBpZiAoIWFjdGl2ZVdvcmtlcigpIHx8ICghYWN0
aXZlV29ya2VyKCktPmhhc1BlbmRpbmdFdmVudHMoKSAmJiAoIWhhc0NsaWVudHNVc2luZ1JlZ2lz
dHJhdGlvbigpIHx8IHdhaXRpbmdXb3JrZXIoKS0+aXNTa2lwV2FpdGluZ0ZsYWdTZXQoKSkpKQog
ICAgICAgICBhY3RpdmF0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKaW5kZXggZjYxZDdkMzZlMTU2MzI3ODJhMWYzZDIwNDk2ODU4NzNjM2VlYzBiZi4u
MjMxYjliNGM4YzA0NjUwNGY0NzU1ODIwMWNkMTI3NzQwNTUxZjE2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTIzLDYgKzEyMywxNCBAQCB2b2lkIFNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIFNlcnZpY2VXbwogICAgIH0KIH0KIAordm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OnNraXBXYWl0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGlmIChhdXRvKiB3b3JrZXIg
PSBTV1NlcnZlcldvcmtlcjo6ZXhpc3RpbmdXb3JrZXJGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSkKKyAgICAgICAgd29ya2VyLT5za2lwV2FpdGluZygpOworCisgICAgZGlk
RmluaXNoU2tpcFdhaXRpbmcoY2FsbGJhY2tJRCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDdiZTQxMzE2NGZiYTY0ZjgwMTU1N2VkNzJkNDk5YzVh
OGE2MmRlNWEuLjFiZTg3ZjUzZTRhNWM0ZDhlZWRmODRhZDBiYjliNTRhMTRiZGY4OTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNTUsNiArNTUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lE
KSA9IDA7CiAKICAgICAvLyBNZXNzYWdlcyBiYWNrIGZyb20gdGhlIFNXIGhvc3QgcHJvY2Vzcwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC02Miw2ICs2Myw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29uc3Qg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGhhc1BlbmRpbmdFdmVudHMpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd29ya2VyVGVybWluYXRlZChT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xp
ZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBtYXRjaEFsbCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggNWJkYzA2MjdhODY3OWIwNDNiMDFlMTEwMDZi
MjQyYmE1ZGNhODcwNS4uODA3NjcxNGE2MWQzNmM4MDg4MWRkMzE5YjA4MjI3NTVjMGY0YmE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5jcHAKQEAgLTExNiw2ICsxMTYsMTUgQEAgdm9pZCBTV1NlcnZlcldvcmtl
cjo6bWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYgb3B0aW9u
cywgU2UKICAgICByZXR1cm4gbV9zZXJ2ZXIubWF0Y2hBbGwoKnRoaXMsIG9wdGlvbnMsIFdURk1v
dmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBTV1NlcnZlcldvcmtlcjo6c2tpcFdhaXRpbmcoKQor
eworICAgIG1faXNTa2lwV2FpdGluZ0ZsYWdTZXQgPSB0cnVlOworCisgICAgYXV0byogcmVnaXN0
cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKKyAg
ICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKKyAgICByZWdpc3RyYXRpb24tPnRyeUFjdGl2YXRlKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCBlMzk3YzExOGQ3MmM5MDBhNGM0MmNlZjJiMmVjMDFi
MmZjMWE1Njc0Li4zYzUyMDhlMTM1ODc2NDI3NDU2ZDdiZWYwMTRkYjA0MmMyZjBhM2NjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5oCkBAIC05MSw2ICs5MSw5IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIG1hdGNoQWxsKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJh
Y2smJik7CiAKKyAgICB2b2lkIHNraXBXYWl0aW5nKCk7CisgICAgYm9vbCBpc1NraXBXYWl0aW5n
RmxhZ1NldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTa2lwV2FpdGluZ0ZsYWdTZXQ7IH0KKwogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTV1NlcnZlcldvcmtlciogZXhpc3RpbmdXb3JrZXJGb3JJ
ZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIGNvbnN0IFNlcnZpY2VX
b3JrZXJEYXRhJiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CkBAIC0xMDgsNiArMTEx
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUGVuZGluZ0V2ZW50cyB7IGZhbHNlIH07CiAg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpOb3RSdW5uaW5nIH07CiAgICAgbXV0YWJsZSBzdGQ6
Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gbV9vcmlnaW47CisgICAgYm9vbCBtX2lzU2tpcFdhaXRp
bmdGbGFnU2V0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXgg
YjZkNmViNGViMDRiYTYzYjViMmUwZGI5MmQ5YTllM2I5ZDI2MDk2YS4uYTVhOWJjOTliNmY2OTUx
NDRjMWYyOThjMzU4YWZiMmU3Y2Y3MjYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTkxLDYgKzkxLDExIEBAIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246Ok1hdGNoQWxsQ29tcGxldGVkIHsgcmVxdWVzdElkZW50aWZpZXIsIGNsaWVudHNE
YXRhIH0pOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkRmlu
aXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RGlkRmluaXNoU2tpcFdhaXRpbmcgeyBj
YWxsYmFja0lEIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAppbmRleCAzNjVmMTk3MTY4ZmM5OGM1MDBkODIwMWFjNzk4Y2E4NjNh
NTU2ZTlkLi5jNjQwMjU2NWI1OWVjYTY2ZDBiYWViMTEyZDBjZTYzMTFhZDQ2ZGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC02Miw2
ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlk
ZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1
cml0eUVycm9yKSBmaW5hbDsKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uPiYpIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWlu
dDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2lw
Y0Nvbm5lY3Rpb247CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAwNjYwYjZkNDAxZWE0ODI1
MmJmMTRiYjlhYjgxYTJlOGJmNjllMjdkLi4xMDFkM2Q0NDBmNjNhNGFlNzIxZDk3M2EyMzg2YzZk
MjdmOWQ0ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMg
LT4gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIHsKICAgICBEaWRGaW5pc2hJbnN0YWxs
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBq
b2JEYXRhSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgRGlkRmluaXNoQWN0
aXZhdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAg
ICBTZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGhhc1BlbmRpbmdFdmVudHMpOworICAgIFNraXBX
YWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAgICAgV29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpOwogICAgIE1hdGNoQWxsKHVpbnQ2NF90
IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcAppbmRleCBhNWUzMDdlMzgyMjg3YmRiNjU3ZWEzMDdkYTM1NTIzOWFiMTQxMjI4Li5h
NTYwMjc2ZmUwMjg2ZTYzODg4ODAxNGRhNTJmOTFhYTJmMmI3NzljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0xOTcsNiArMTk3LDEzIEBAIHZvaWQgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFNl
cnZpY2VXb3JrCiAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTZXRTZXJ2aWNlV29ya2VySGFzUGVu
ZGluZ0V2ZW50cyhzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaGFzUGVuZGluZ0V2ZW50cyksIDAp
OwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpza2lwV2FpdGluZyhT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byBjYWxsYmFja0lEID0gKyttX3By
ZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9za2lwV2FpdGluZ1JlcXVlc3RzLmFkZChj
YWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdl
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpT
a2lwV2FpdGluZyhzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY2FsbGJhY2tJRCksIDApOworfQor
CiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogewogICAgIG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6V29ya2VyVGVybWluYXRlZChzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciksIDApOwpAQCAtMjMzLDYgKzI0MCwxMiBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcgogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKGNsaWVudHNEYXRhKSk7CiB9CiAKK3ZvaWQgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxi
YWNrSUQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3NraXBXYWl0aW5nUmVxdWVzdHMu
dGFrZShjYWxsYmFja0lEKSkKKyAgICAgICAgY2FsbGJhY2soKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggOGU1NzYyMjhkMjgzZWEyMjFmYzNlZGFlMjhhOGY2
MDdjNzBkMDc2OC4uMTVhNGIyNzNhZDcyODMzYmMwMjFjZGQ1MzUyZTlmNTAyZDExYzRmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB3b3JrZXJUZXJtaW5hdGVkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBt
YXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHNraXBXYWl0aW5nKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
YWxsYmFjaykgZmluYWw7CiAKICAgICAvLyBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBzZXJ2aWNl
V29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CkBAIC03OCw2ICs3OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBSZWY8TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHk+JiYpOwogICAgIHZvaWQgZmlu
ZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBo
YXNTZWN1cml0eUVycm9yKTsKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1h
dGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SW5mb3JtYXRpb24+JiYpOworICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0
X3QgY2FsbGJhY2tJRCk7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25U
b1N0b3JhZ2VQcm9jZXNzOwogICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwpAQCAtODUsNiAr
ODcsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgRmluZENsaWVudEJ5SWRl
bnRpZmllckNhbGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2Fs
bGJhY2s+IG1fbWF0Y2hBbGxSZXF1ZXN0czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4+IG1fc2tpcFdhaXRpbmdSZXF1ZXN0czsKICAgICB1aW50NjRfdCBtX3By
ZXZpb3VzUmVxdWVzdElkZW50aWZpZXIgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGMyMWE1MDlmZDJiNjFjMmU2OWUy
ZWU1ZWM5MGY4NmE1NjlmNDU1ODYuLmExZDY1MTFiNDM2NTFlYjM4NTAxMjE3MzFhNWQ5ZjA1ODA4
NDFmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCkBAIC0zMiw2ICszMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uIHsKICAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIERlbGF5ZWQKICAgICBGaW5kQ2xpZW50QnlJZGVu
dGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEsIGJvb2wgaGFz
U2VjdXJpdHlFcnJvcikKICAgICBNYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJl
cXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudEluZm9y
bWF0aW9uPiBjbGllbnRzRGF0YSkKKyAgICBEaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBj
YWxsYmFja0lEKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMzI0NTFlYjEwMGUyODMyYjYxMmNmYzZi
YmRiYmYwYTFkYTQwYjEwLi43NDkxNDUwYWIxMjc2NDBjYTAyNmNkNTM1YTNiMzEyNjZkNjJkNmZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGluc2lk
ZSBzZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MDMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Ut
d29ya2VyLWZldGNoLXdvcmtlci5qczoKKyAgICAgICAgYWRkIHNlbGYuc2tpcFdhaXRpbmcoKSBu
b3cgdGhhdCB3ZSBwcm9wZXJseSB3YWl0IHdoZW4gdGhlIHJlZ2lzdGF0aW9uJ3MKKyAgICAgICAg
YWN0aXZlIHdvcmtlciBpcyBpbiB1c2UuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhpcyB3b3Jr
ZXIgc2NyaXB0IGlzCisgICAgICAgIHVzZWQgYnkgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
Y29udHJvbGxlci1jaGFuZ2UuaHRtbC4gVGhlCisgICAgICAgICdjb250cm9sbGVyY2hhbmdlJyBl
dmVudCBpcyBvbmx5IGZpcmVkIGlmIGFuIGFjdGl2ZSB3b3JrZXIgaXMgYmVpbmcKKyAgICAgICAg
cmVwbGFjZWQgd2hpbGUgaW4gdXNlIGR1ZSB0byB0aGUgd2FpdGluZyB3b3JrZXIgY2FsbGluZyBz
a2lwV2FpdGluZygpLgorCiAyMDE3LTEyLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgU3VwcG9ydCBjb250YWluZXIucmVnaXN0ZXIoKSAvIHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCkgLyAgaW5zaWRlIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggODk1M2M2NTRmYmZiNjEwY2RiYTVmNjUwOWU1NzY0ODk4ZTliN2Zi
Ni4uYjFkYWUwODBhNTk2N2Y4ZDljMzJhOGQzYjFkM2MzNjIxYTFjMjdmZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMDIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2Fp
dGluZygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3RzIHRoYXQgYXJlIG5vdyBw
YXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsYWltLXdpdGgtcmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtY2xpZW50Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKwog
MjAxNy0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN1
cHBvcnQgY29udGFpbmVyLnJlZ2lzdGVyKCkgLyByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpIC8g
IGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1mZXRjaC13b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2Vy
dmljZS13b3JrZXItZmV0Y2gtd29ya2VyLmpzCmluZGV4IGJjNjkxODY0NjMwNmMxZjZlZGZkMDhj
OTExMWQzNGZkNjM1YzI0NzAuLmZhNmI0YzU0OGJmODgxMGJkY2E2MWNiZjJjNjBiMzlkMzE3ZGJj
ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1mZXRjaC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWZldGNo
LXdvcmtlci5qcwpAQCAtMSw0ICsxLDcgQEAKIHZhciBzdGF0dXMgPSAibm8gc3RhdHVzIjsKKwor
c2VsZi5za2lwV2FpdGluZygpOworCiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2
ZW50KSA9PiB7CiAgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInN0YXR1cyIpICE9
PSAtMSkgewogICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobnVsbCwge3N0
YXR1czogMjAwLCBzdGF0dXNUZXh0OiBzdGF0dXN9KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDVmYzkzZmRkODJhYmMyYWJkZjIxOGMwYWI4ZTM1MWYxMDE0
YjA3MDkuLmZlNTUxMmEzOWJkNmRiNjAwZjlkNzJmYjBkMWEyNmRkOGQ4NTIzMmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS91cGRhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi0KLUZB
SUwgVXBkYXRlIGEgcmVnaXN0cmF0aW9uIG9uIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBhc3Nl
cnRfZXF1YWxzOiBldmVudHMgc2VlbiBieSB0aGUgd29ya2VyIGV4cGVjdGVkICJ1cGRhdGVmb3Vu
ZCxhY3RpdmF0ZSxmZXRjaCxtZXNzYWdlLHVwZGF0ZWZvdW5kLGZldGNoIiBidXQgZ290ICJ1cGRh
dGVmb3VuZCxhY3RpdmF0ZSxmZXRjaCIKK1BBU1MgVXBkYXRlIGEgcmVnaXN0cmF0aW9uIG9uIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xhaW0td2l0aC1yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGFpbS13aXRoLXJlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyODRlNDI5YWRi
NDBlNjkxYWRjNTZiOGNmYmFmMjk2ZjAwZGM0Y2RkLi5kNDQ1ZGUxODcwZGI1MjdjOTFmZWI0NTUw
OWRjNGEzZDE1OGE3MGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS13aXRo
LXJlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS13aXRoLXJlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyNzogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdyLnVwZGF0ZScpCiAg
IAogCi1GQUlMIENsYWltIHdvcmtzIGFmdGVyIHJlZGlyZWN0aW9uIHRvIGFub3RoZXIgb3JpZ2lu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJ1cGRhdGVkIiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAorUEFTUyBDbGFpbSB3b3JrcyBhZnRlciByZWRpcmVjdGlvbiB0byBh
bm90aGVyIG9yaWdpbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3Nh
Z2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGNmZDEwYWQ0NzZhMWM4NDQ1ZDY5MzA4ZTQxMTExNjgwMDg2OTUx
N2YuLjk5OGJkZjQxNzgzYTk4MmRiODFjZTRkYjFmYzQzMzQyMzUzMGU4OTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2Vy
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1m
cm9tLXdhaXRpbmctc2VydmljZXdvcmtlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwz
IEBACiAKLQotRkFJTCBDbGllbnQucG9zdE1lc3NhZ2UoKSBmcm9tIHdhaXRpbmcgc2VydmljZXdv
cmtlci4gYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IGFzc2VydF9lcXVh
bHM6IG1lc3NhZ2UgZXZlbnQgc291cmNlIHNob3VsZCBiZSBjb3JyZWN0IGV4cGVjdGVkIG51bGwg
YnV0IGdvdCBvYmplY3QgIltvYmplY3QgU2VydmljZVdvcmtlcl0iIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorUEFTUyBDbGllbnQucG9zdE1lc3NhZ2UoKSBmcm9tIHdhaXRpbmcgc2VydmljZXdv
cmtlci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRo
b3V0LWNsaWVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdh
aXRpbmctd2l0aG91dC1jbGllbnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDBkMjk3NzI2NjRk
MjBlYzE5YTA2MGU1ZWVkZjI0MDQxZmI1NWY2MjMuLjA1MDdmOWQ1ODViODUzY2YzYWU5MzI1MWE3
OGE2MTU5N2RiYzRlYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGlu
Zy13aXRob3V0LWNsaWVudC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtY2xpZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKIAogUEFTUyBUZXN0IHNpbmdsZSBza2lwV2FpdGluZygpIHdoZW4gbm8gY2xpZW50
IGF0dGFjaGVkIAotRkFJTCBza2lwV2FpdGluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogc2VsZi5za2lwV2Fp
dGluZygpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgorUEFTUyBza2lwV2FpdGluZyAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328286</attachid>
            <date>2017-12-02 23:56:54 -0800</date>
            <delta_ts>2017-12-03 12:33:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180329-20171202235654.patch</filename>
            <type>text/plain</type>
            <size>25128</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmViNzRlYjBhZGEzNTQ0
N2I3MWI2NDNmZDVmMDhiZTIxNjAzYjRjYy4uOTRlOWZmODU2NTAxYjdlYmMwYjcxOTUwNTQ0OGJl
NDNmMDRmNWNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTEyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNlbGYuc2tp
cFdhaXRpbmcoKSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGlu
c2lkZSBzZXJ2aWNlIHdvcmtlcnM6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1Nl
cnZpY2VXb3JrZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1za2lwd2FpdGluZworCisg
ICAgICAgIEFsc28gZml4ZXMgYSBidWcgd2hlcmUgdHJ5QWN0aXZhdGUoKSB3YXMgY2FsbGluZyBh
Y3RpdmF0ZSgpIGV2ZW4gdGhvdWdoIHRoZQorICAgICAgICByZWdpc3RyYXRpb24ncyBhY3RpdmUg
d29ya2VyIHdhcyAiaW4gdXNlIjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2Vy
dmljZVdvcmtlci8jdHJ5LWFjdGl2YXRlLWFsZ29yaXRobQorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZTo6c2tpcFdhaXRpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNX
U2VydmVyUmVnaXN0cmF0aW9uOjp0cnlBY3RpdmF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpza2lwV2FpdGluZyk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpza2lwV2FpdGluZyk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJXb3JrZXI6OmlzU2tpcFdhaXRpbmdGbGFnU2V0IGNvbnN0KToKKwogMjAxNy0x
Mi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBy
ZWdpc3RyYXRpb24gYWN0aXZhdGlvbiBhbmQgY2xlYXJpbmcgZnJvbSBTV1NlcnZlckpvYlF1ZXVl
IHRvIFNXU2VydmVyUmVnaXN0cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0Mzc1MDJiY2RmZDA3YmVhMjM0
NmRhOGU1ZjI0NDFmN2EyNWY1OGQuLjQ4Nzk4YTBmZGI3NWViODVhMTAyNjIxMzZmNTMxNWYzMDZj
ZjRkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMTItMDIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGlu
ZygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmRpZEZpbmlzaFNraXBXYWl0aW5nKToKKyAgICAgICAgKiBT
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpza2lwV2FpdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGlu
Zyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE3LTEyLTAyICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtZ2V0YWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDBmMjMwYzI2ZDc2MGExNzM1NjA3YWMzYTM4MjUyMzg1MTA5ODY1N2IuLmQ3NjI4ZGU2NGQw
ZGQ5YTQwNWQ5ZmZiNDVlYjE1N2RiNTk1NDgwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC01MCw4ICs1MCwxNSBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6On5TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Ojpza2lwV2FpdGluZyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgotICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJzZWxmLnNraXBXYWl0aW5nKCkgaXMgbm90
IHlldCBzdXBwb3J0ZWQiKSB9KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRocmVhZElkZW50aWZpZXIgPSB0aHJlYWQoKS5pZGVu
dGlmaWVyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgICAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNv
bm5lY3Rpb24oKSkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2tpcFdhaXRpbmcodGhyZWFk
SWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAg
ICB0aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oYXV0byYpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAogRXZlbnRUYXJnZXRJbnRl
cmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggZjBiMTBhMDE0NDFkYTQ1OWMzYTkwMzlmNzU3NGFj
MjdlNTY3ODdmOC4uYWI1ZGU3MGM4MGQ5ZTdkNWM3ODg3MzU3MTljMWYyMTkyN2YyNzkzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NX
Q29udGV4dE1hbmFnZXIuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
d29ya2VyVGVybWluYXRlZChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgc2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKSA9IDA7CiAKICAgICAgICAgdXNpbmcgRmluZENsaWVu
dEJ5SWRlbnRpZmllckNhbGxiYWNrID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+PiYmKT47CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRp
ZmllckNhbGxiYWNrJiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggODI3
NDllNDhmOGQ3YWM1MWMwNmNmNzJkZjc4YTFhODg2YjMzYTA0OS4uNmNhOTI2NDE5OGY2MzVmNWZm
NWI2MDlmNGJkMmZmNTEwMjFiMmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAg
LTIzMiw5ICsyMzIsOCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp0cnlBY3RpdmF0ZSgp
CiAgICAgLy8gSW52b2tlIEFjdGl2YXRlIHdpdGggcmVnaXN0cmF0aW9uIGlmIGVpdGhlciBvZiB0
aGUgZm9sbG93aW5nIGlzIHRydWU6CiAgICAgLy8gLSByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29y
a2VyIGlzIG51bGwuCiAgICAgLy8gLSBUaGUgcmVzdWx0IG9mIHJ1bm5pbmcgU2VydmljZSBXb3Jr
ZXIgSGFzIE5vIFBlbmRpbmcgRXZlbnRzIHdpdGggcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtl
ciBpcyB0cnVlLAotICAgIC8vICAgYW5kIG5vIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBpcyB1c2lu
ZyByZWdpc3RyYXRpb24KLSAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIHRoZSBza2lwIHdhaXRpbmcg
ZmxhZy4KLSAgICBpZiAoIWFjdGl2ZVdvcmtlcigpIHx8ICFhY3RpdmVXb3JrZXIoKS0+aGFzUGVu
ZGluZ0V2ZW50cygpKQorICAgIC8vICAgYW5kIG5vIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBpcyB1
c2luZyByZWdpc3RyYXRpb24gb3IgcmVnaXN0cmF0aW9uJ3Mgd2FpdGluZyB3b3JrZXIncyBza2lw
IHdhaXRpbmcgZmxhZyBpcyBzZXQuCisgICAgaWYgKCFhY3RpdmVXb3JrZXIoKSB8fCAoIWFjdGl2
ZVdvcmtlcigpLT5oYXNQZW5kaW5nRXZlbnRzKCkgJiYgKCFoYXNDbGllbnRzVXNpbmdSZWdpc3Ry
YXRpb24oKSB8fCB3YWl0aW5nV29ya2VyKCktPmlzU2tpcFdhaXRpbmdGbGFnU2V0KCkpKSkKICAg
ICAgICAgYWN0aXZhdGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwCmluZGV4IGY2MWQ3ZDM2ZTE1NjMyNzgyYTFmM2QyMDQ5Njg1ODczYzNlZWMwYmYuLjIz
MWI5YjRjOGMwNDY1MDRmNDc1NTgyMDFjZDEyNzc0MDU1MWYxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTEyMyw2ICsxMjMsMTQgQEAgdm9pZCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1hdGNoQWxsKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBTZXJ2aWNlV28KICAgICB9CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpza2lwV2FpdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBpZiAoYXV0byogd29ya2VyID0g
U1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikpCisgICAgICAgIHdvcmtlci0+c2tpcFdhaXRpbmcoKTsKKworICAgIGRpZEZp
bmlzaFNraXBXYWl0aW5nKGNhbGxiYWNrSUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAppbmRleCA3YmU0MTMxNjRmYmE2NGY4MDE1NTdlZDcyZDQ5OWM1YThh
NjJkZTVhLi4xYmU4N2Y1M2U0YTVjNGQ4ZWVkZjg0YWQwYmI5YjU0YTE0YmRmODkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21w
bGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkg
PSAwOwogCiAgICAgLy8gTWVzc2FnZXMgYmFjayBmcm9tIHRoZSBTVyBob3N0IHByb2Nlc3MKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpAQCAtNjIsNiArNjMsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNraXBXYWl0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdvcmtlclRlcm1pbmF0ZWQoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluZENsaWVu
dEJ5SWRlbnRpZmllcih1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRp
b25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IDViZGMwNjI3YTg2NzliMDQzYjAxZTExMDA2YjI0
MmJhNWRjYTg3MDUuLjgwNzY3MTRhNjFkMzZjODA4ODFkZDMxOWIwODIyNzU1YzBmNGJhNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJXb3JrZXIuY3BwCkBAIC0xMTYsNiArMTE2LDE1IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6
Om1hdGNoQWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmIG9wdGlvbnMs
IFNlCiAgICAgcmV0dXJuIG1fc2VydmVyLm1hdGNoQWxsKCp0aGlzLCBvcHRpb25zLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnNraXBXYWl0aW5nKCkKK3sK
KyAgICBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0ID0gdHJ1ZTsKKworICAgIGF1dG8qIHJlZ2lzdHJh
dGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CisgICAg
QVNTRVJUKHJlZ2lzdHJhdGlvbik7CisgICAgcmVnaXN0cmF0aW9uLT50cnlBY3RpdmF0ZSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmgKaW5kZXggZTM5N2MxMThkNzJjOTAwYTRjNDJjZWYyYjJlYzAxYjJm
YzFhNTY3NC4uM2M1MjA4ZTEzNTg3NjQyNzQ1NmQ3YmVmMDE0ZGIwNDJjMmYwYTNjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuaApAQCAtOTEsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENsaWVudEJ5SWRlbnRpZmllcihTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBtYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50UXVlcnlPcHRpb25zJiwgU2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNr
JiYpOwogCisgICAgdm9pZCBza2lwV2FpdGluZygpOworICAgIGJvb2wgaXNTa2lwV2FpdGluZ0Zs
YWdTZXQoKSBjb25zdCB7IHJldHVybiBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0OyB9CisKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU1dTZXJ2ZXJXb3JrZXIqIGV4aXN0aW5nV29ya2VyRm9ySWRl
bnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBjb25zdCBTZXJ2aWNlV29y
a2VyRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpAQCAtMTA4LDYgKzExMSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdFdmVudHMgeyBmYWxzZSB9OwogICAg
IFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6Tm90UnVubmluZyB9OwogICAgIG11dGFibGUgc3RkOjpv
cHRpb25hbDxDbGllbnRPcmlnaW4+IG1fb3JpZ2luOworICAgIGJvb2wgbV9pc1NraXBXYWl0aW5n
RmxhZ1NldCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGI2
ZDZlYjRlYjA0YmE2M2I1YjJlMGRiOTJkOWE5ZTNiOWQyNjA5NmEuLmE1YTliYzk5YjZmNjk1MTQ0
YzFmMjk4YzM1OGFmYjJlN2NmNzI2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC05MSw2ICs5MSwxMSBAQCB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpNYXRjaEFsbENvbXBsZXRlZCB7IHJlcXVlc3RJZGVudGlmaWVyLCBjbGllbnRzRGF0
YSB9KTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZEZpbmlz
aFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkRpZEZpbmlzaFNraXBXYWl0aW5nIHsgY2Fs
bGJhY2tJRCB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgKaW5kZXggMzY1ZjE5NzE2OGZjOThjNTAwZDgyMDFhYzc5OGNhODYzYTU1
NmU5ZC4uYzY0MDI1NjViNTllY2E2NmQwYmFlYjExMmQwY2U2MzExYWQ0NmRlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNjIsNiAr
NjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVu
dGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJp
dHlFcnJvcikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
bmZvcm1hdGlvbj4mKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGZpbmFsOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9pcGND
b25uZWN0aW9uOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMDY2MGI2ZDQwMWVhNDgyNTJi
ZjE0YmI5YWI4MWEyZThiZjY5ZTI3ZC4uMTAxZDNkNDQwZjYzYTRhZTcyMWQ5NzNhMjM4NmM2ZDI3
ZjlkNGUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiB7CiAgICAgRGlkRmluaXNoSW5zdGFsbChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9i
RGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIERpZEZpbmlzaEFjdGl2
YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcik7CiAgICAg
U2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKTsKKyAgICBTa2lwV2Fp
dGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogICAgIFdvcmtlclRlcm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcik7CiAgICAgRmluZENsaWVudEJ5SWRlbnRpZmllcih1aW50
NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKTsKICAgICBNYXRjaEFsbCh1aW50NjRfdCBt
YXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRRdWVyeU9wdGlvbnMgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKaW5kZXggYTVlMzA3ZTM4MjI4N2JkYjY1N2VhMzA3ZGEzNTUyMzlhYjE0MTIyOC4uYTU2
MDI3NmZlMDI4NmU2Mzg4ODgwMTRkYTUyZjkxYWEyZjJiNzc5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTk3LDYgKzE5NywxMyBAQCB2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2
aWNlV29yawogICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2V0U2VydmljZVdvcmtlckhhc1BlbmRp
bmdFdmVudHMoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGhhc1BlbmRpbmdFdmVudHMpLCAwKTsK
IH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2tpcFdhaXRpbmcoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9ICsrbV9wcmV2
aW91c1JlcXVlc3RJZGVudGlmaWVyOworICAgIG1fc2tpcFdhaXRpbmdSZXF1ZXN0cy5hZGQoY2Fs
bGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2tp
cFdhaXRpbmcoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwog
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6d29ya2VyVGVybWluYXRlZChTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBtX2Nv
bm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OldvcmtlclRlcm1pbmF0ZWQoc2VydmljZVdvcmtlcklkZW50aWZpZXIp
LCAwKTsKQEAgLTIzMyw2ICsyNDAsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIKICAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShjbGllbnRzRGF0YSkpOwogfQogCit2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFj
a0lEKQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9za2lwV2FpdGluZ1JlcXVlc3RzLnRh
a2UoY2FsbGJhY2tJRCkpCisgICAgICAgIGNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDhlNTc2MjI4ZDI4M2VhMjIxZmMzZWRhZTI4YThmNjA3
YzcwZDA3NjguLjE1YTRiMjczYWQ3MjgzM2JjMDIxY2RkNTM1MmU5ZjUwMmQxMWM0ZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNjYsNiArNjYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgd29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
cikgZmluYWw7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbWF0
Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50c01hdGNoQWxsQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBza2lwV2FpdGluZyhXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2Fs
bGJhY2spIGZpbmFsOwogCiAgICAgLy8gSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgc2VydmljZVdv
cmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwpAQCAtNzgsNiArNzksNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgUmVmPE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGZpbmRD
bGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYsIGJvb2wgaGFz
U2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRj
aEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uPiYmKTsKKyAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9T
dG9yYWdlUHJvY2VzczsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsKQEAgLTg1LDYgKzg3
LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50
aWZpZXJDYWxsYmFjaz4gbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHM7CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxi
YWNrPiBtX21hdGNoQWxsUmVxdWVzdHM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+PiBtX3NraXBXYWl0aW5nUmVxdWVzdHM7CiAgICAgdWludDY0X3QgbV9wcmV2
aW91c1JlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBjMjFhNTA5ZmQyYjYxYzJlNjllMmVl
NWVjOTBmODZhNTY5ZjQ1NTg2Li5hMWQ2NTExYjQzNjUxZWIzODUwMTIxNzMxYTVkOWYwNTgwODQx
ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMzIsNiArMzIsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbiB7CiAgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBEZWxheWVkCiAgICAgRmluZENsaWVudEJ5SWRlbnRp
ZmllckNvbXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhLCBib29sIGhhc1Nl
Y3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1
ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1h
dGlvbj4gY2xpZW50c0RhdGEpCisgICAgRGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2Fs
bGJhY2tJRCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMyNDUxZWIxMDBlMjgzMmI2MTJjZmM2YmJk
YmJmMGExZGE0MGIxMC4uNzQ5MTQ1MGFiMTI3NjQwY2EwMjZjZDUzNWEzYjMxMjY2ZDYyZDZmZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEyLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNlbGYuc2tpcFdhaXRpbmcoKSBpbnNpZGUg
c2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODAzMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1mZXRjaC13b3JrZXIuanM6CisgICAgICAgIGFkZCBzZWxmLnNraXBXYWl0aW5nKCkgbm93
IHRoYXQgd2UgcHJvcGVybHkgd2FpdCB3aGVuIHRoZSByZWdpc3RhdGlvbidzCisgICAgICAgIGFj
dGl2ZSB3b3JrZXIgaXMgaW4gdXNlLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoaXMgd29ya2Vy
IHNjcmlwdCBpcworICAgICAgICB1c2VkIGJ5IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRyb2xsZXItY2hhbmdlLmh0bWwuIFRoZQorICAgICAgICAnY29udHJvbGxlcmNoYW5nZScgZXZl
bnQgaXMgb25seSBmaXJlZCBpZiBhbiBhY3RpdmUgd29ya2VyIGlzIGJlaW5nCisgICAgICAgIHJl
cGxhY2VkIHdoaWxlIGluIHVzZSBkdWUgdG8gdGhlIHdhaXRpbmcgd29ya2VyIGNhbGxpbmcgc2tp
cFdhaXRpbmcoKS4KKwogMjAxNy0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFN1cHBvcnQgY29udGFpbmVyLnJlZ2lzdGVyKCkgLyByZWdpc3RyYXRpb24u
dW5yZWdpc3RlcigpIC8gIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDg5NTNjNjU0ZmJmYjYxMGNkYmE1ZjY1MDllNTc2NDg5OGU5YjdmYjYu
LmIxZGFlMDgwYTU5NjdmOGQ5YzMyYThkM2IxZDNjMzYyMWExYzI3ZmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEyLTAyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNlbGYuc2tpcFdhaXRp
bmcoKSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyB0aGF0IGFyZSBub3cgcGFz
c2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRwcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGFpbS13aXRoLXJlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bv
c3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy13aXRob3V0LWNsaWVudC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIw
MTctMTItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBw
b3J0IGNvbnRhaW5lci5yZWdpc3RlcigpIC8gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSAvICBp
bnNpZGUgc2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZmV0Y2gtd29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZp
Y2Utd29ya2VyLWZldGNoLXdvcmtlci5qcwppbmRleCBiYzY5MTg2NDYzMDZjMWY2ZWRmZDA4Yzkx
MTFkMzRmZDYzNWMyNDcwLi5mYTZiNGM1NDhiZjg4MTBiZGNhNjFjYmYyYzYwYjM5ZDMxN2RiY2Y0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvc2VydmljZS13b3JrZXItZmV0Y2gtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1mZXRjaC13
b3JrZXIuanMKQEAgLTEsNCArMSw3IEBACiB2YXIgc3RhdHVzID0gIm5vIHN0YXR1cyI7CisKK3Nl
bGYuc2tpcFdhaXRpbmcoKTsKKwogc2VsZi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVu
dCkgPT4gewogICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCJzdGF0dXMiKSAhPT0g
LTEpIHsKICAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0
dXM6IDIwMCwgc3RhdHVzVGV4dDogc3RhdHVzfSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VwZGF0ZS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCA1ZmM5M2ZkZDgyYWJjMmFiZGYyMThjMGFiOGUzNTFmMTAxNGIw
NzA5Li5mZTU1MTJhMzliZDZkYjYwMGY5ZDcyZmIwZDFhMjZkZDhkODUyMzJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdXBkYXRlLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUvdXBkYXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotCi1GQUlM
IFVwZGF0ZSBhIHJlZ2lzdHJhdGlvbiBvbiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgYXNzZXJ0
X2VxdWFsczogZXZlbnRzIHNlZW4gYnkgdGhlIHdvcmtlciBleHBlY3RlZCAidXBkYXRlZm91bmQs
YWN0aXZhdGUsZmV0Y2gsbWVzc2FnZSx1cGRhdGVmb3VuZCxmZXRjaCIgYnV0IGdvdCAidXBkYXRl
Zm91bmQsYWN0aXZhdGUsZmV0Y2giCitQQVNTIFVwZGF0ZSBhIHJlZ2lzdHJhdGlvbiBvbiBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
YWltLXdpdGgtcmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xhaW0td2l0aC1yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjg0ZTQyOWFkYjQw
ZTY5MWFkYzU2YjhjZmJhZjI5NmYwMGRjNGNkZC4uZDQ0NWRlMTg3MGRiNTI3YzkxZmViNDU1MDlk
YzRhM2QxNThhNzBjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td2l0aC1y
ZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d2l0aC1yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0IEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjc6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnci51cGRhdGUnKQogICAK
IAotRkFJTCBDbGFpbSB3b3JrcyBhZnRlciByZWRpcmVjdGlvbiB0byBhbm90aGVyIG9yaWdpbiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAidXBkYXRlZCIgYnV0IGdvdCAodW5kZWZp
bmVkKSB1bmRlZmluZWQKK1BBU1MgQ2xhaW0gd29ya3MgYWZ0ZXIgcmVkaXJlY3Rpb24gdG8gYW5v
dGhlciBvcmlnaW4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdl
LWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCBjZmQxMGFkNDc2YTFjODQ0NWQ2OTMwOGU0MTExMTY4MDA4Njk1MTdm
Li45OThiZGY0MTc4M2E5ODJkYjgxY2U0ZGIxZmM0MzM0MjM1MzBlODk2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1mcm9tLXdhaXRpbmctc2VydmljZXdvcmtlci5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJv
bS13YWl0aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAogCi0KLUZBSUwgQ2xpZW50LnBvc3RNZXNzYWdlKCkgZnJvbSB3YWl0aW5nIHNlcnZpY2V3b3Jr
ZXIuIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxz
OiBtZXNzYWdlIGV2ZW50IHNvdXJjZSBzaG91bGQgYmUgY29ycmVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFNlcnZpY2VXb3JrZXJdIiBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK1BBU1MgQ2xpZW50LnBvc3RNZXNzYWdlKCkgZnJvbSB3YWl0aW5nIHNlcnZpY2V3b3Jr
ZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctd2l0aG91
dC1jbGllbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0
aW5nLXdpdGhvdXQtY2xpZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwZDI5NzcyNjY0ZDIw
ZWMxOWEwNjBlNWVlZGYyNDA0MWZiNTVmNjIzLi4wNTA3ZjlkNTg1Yjg1M2NmM2FlOTMyNTFhNzhh
NjE1OTdkYmM0ZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmct
d2l0aG91dC1jbGllbnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3NraXAtd2FpdGluZy13aXRob3V0LWNsaWVudC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw0IEBACiAKIFBBU1MgVGVzdCBzaW5nbGUgc2tpcFdhaXRpbmcoKSB3aGVuIG5vIGNsaWVudCBh
dHRhY2hlZCAKLUZBSUwgc2tpcFdhaXRpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IHNlbGYuc2tpcFdhaXRp
bmcoKSBpcyBub3QgeWV0IHN1cHBvcnRlZCIKK1BBU1Mgc2tpcFdhaXRpbmcgCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>