<?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>196407</bug_id>
          
          <creation_ts>2019-03-29 15:01:43 -0700</creation_ts>
          <short_desc>Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process</short_desc>
          <delta_ts>2022-02-12 21:18:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>200225</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>satoshioono8</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1522602</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-29 15:01:43 -0700</bug_when>
    <thetext>As part of the move of ITP from the UI process to the network process, the two WebResourceLoadStatisticsStore IPC endpoints were left behind. One of them is the message RequestStorageAccessUnderOpener which underpins the compatibility fix for federated logins using popups. We should redirect these IPC calls to the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522603</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-29 15:02:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/47859936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522616</commentid>
    <comment_count>2</comment_count>
      <attachid>366311</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-29 15:15:39 -0700</bug_when>
    <thetext>Created attachment 366311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522630</commentid>
    <comment_count>3</comment_count>
      <attachid>366311</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-29 16:05:28 -0700</bug_when>
    <thetext>Comment on attachment 366311
Patch

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

r=me

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:-192
&gt; -    void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&amp;&amp;, uint64_t openerPageID, OpenerDomain&amp;&amp;);

This looks like a nice bug fix and simplification!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522640</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-29 16:14:42 -0700</bug_when>
    <thetext>Thanks, Brent! I&apos;ll wait for some more green bubbles and then land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522680</commentid>
    <comment_count>5</comment_count>
      <attachid>366311</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-29 17:42:13 -0700</bug_when>
    <thetext>Comment on attachment 366311
Patch

The ios-sim bot is in bad shape with thousands of tests failing in various ways. Landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522690</commentid>
    <comment_count>6</comment_count>
      <attachid>366311</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-29 18:09:18 -0700</bug_when>
    <thetext>Comment on attachment 366311
Patch

Clearing flags on attachment: 366311

Committed r243671: &lt;https://trac.webkit.org/changeset/243671&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522691</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-29 18:09:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556565</commentid>
    <comment_count>8</comment_count>
      <attachid>366311</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-29 08:28:54 -0700</bug_when>
    <thetext>Comment on attachment 366311
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:663
&gt; +            resourceLoadStatistics-&gt;resourceLoadStatisticsUpdated(WTFMove(statistics));

WTFMove() since a for loop, ouch :/
https://bugs.webkit.org/show_bug.cgi?id=200225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840902</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-02-12 21:18:16 -0800</bug_when>
    <thetext>*** Bug 196318 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366311</attachid>
            <date>2019-03-29 15:15:39 -0700</date>
            <delta_ts>2019-03-29 18:09:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196407-20190329151538.patch</filename>
            <type>text/plain</type>
            <size>50155</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUyN2YyZjBlNTc0Y2E4
NWRiMDZiOWY3MzAzZGQ1M2NmMjZjMDU3MC4uY2E3OTNiZjRhMmRjOTcyN2I2NmZlZTE2ZmU2MmRk
NzczM2Q2MDEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAzLTI5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIElQQyBjYWxscyBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRo
ZSBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NjQwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc4NTk5MzY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1hdC1w
b3B1cC11c2VyLWdlc3R1cmUuaHRtbAorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBvbGQg
Y29kZSBmb3IgdGhlIGJhdGNoaW5nIGludG8gInN0YXRpc3RpY3MgdXBkYXRlZCIgY2FsbHMuCisg
ICAgICAgIFNpbmNlIHRoZSBtb3ZlIG9mIFJlc291cmNlIExvYWQgU3RhdGlzdGljcyB0byB0aGUg
bmV0d29yayBwcm9jZXNzLCBhbGwgc3VjaAorICAgICAgICBjb2xsZWN0aW9uIGlzIGRvbmUgZGly
ZWN0bHkgdGhyb3VnaCBkZWRpY2F0ZWQgY2FsbHMgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKwor
ICAgICAgICBUaGUgcmVtYWluaW5nIGZ1bmN0aW9uYWxpdHkgd2FzIHJlbmFtZWQgdG8gbWFrZSBp
dCBtb3JlIGNsZWFyLCBpLmUuCisgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpub3RpZnlP
YnNlcnZlcigpIHJlbmFtZWQgdG8KKyAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnVwZGF0
ZUNlbnRyYWxTdGF0aXN0aWNzU3RvcmUoKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
c2V0U3RhdGlzdGljc1VwZGF0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6c2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJj
ZUxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dl
YlNvY2tldExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OmxvZ1VzZXJJbnRlcmFjdGlvbldpdGhSZWR1Y2VkVGltZVJlc29sdXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJP
cGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnVwZGF0ZUNl
bnRyYWxTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OmNsZWFyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZE9ic2VydmVyOjpSZXNvdXJjZUxvYWRPYnNlcnZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2NoZWR1bGVOb3RpZmljYXRp
b25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6bm90aWZ5T2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6bm90aWZ5UmVzb3VyY2VMb2FkT2JzZXJ2ZXIpOgorCiAy
MDE5LTAzLTI5ICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29tPgogCiAg
ICAgICAgIFtDdXJsXSBBZGQgU2VydmVyIFRydXN0IEV2YWx1YXRpb24gU3VwcG9ydC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMzlhZjlmYjcxNzcwYTMzMzBkM2NmM2U4NzQxYzkwODQ5OGI4N2Q2Ni4uYTEyMWQxZDk5
NWUxM2ZlNTk2ZjEwYmMwZTA4NzM4ZTlhNDU5YjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBA
QAorMjAxOS0wMy0yOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBNb3ZlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBJUEMgY2FsbHMgZnJvbSB0
aGUgVUkgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY0MDcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ3ODU5OTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSB0d28gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIElQQyBlbmRwb2lu
dHMgd2VyZSBsZWZ0IGJlaGluZCB3aGVuIHdlCisgICAgICAgIG1vdmVkIFJlc291cmNlIExvYWQg
U3RhdGlzdGljcyBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuIE9u
ZQorICAgICAgICBvZiB0aGUgZW5kcG9pbnRzIGlzIHRoZSBtZXNzYWdlIFJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIgd2hpY2ggdW5kZXJwaW5zCisgICAgICAgIG91ciBjb21wYXRpYmls
aXR5IGZpeCBmb3IgZmVkZXJhdGVkIGxvZ2lucyB1c2luZyBwb3B1cHMuIFRoaXMgcGF0Y2ggcmVk
aXJlY3RzCisgICAgICAgIHRoZXNlIElQQyBjYWxscyB0byB0aGUgbmV0d29yayBwcm9jZXNzIGFu
ZCBjbGVhbnMgdXAgc29tZSBhc3N1bXB0aW9ucyBhcm91bmQKKyAgICAgICAgdGhlbS4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAgICAgUmVtb3ZlZCB0aGUgb2xkIElQQyBy
ZWNlaXZlci4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAgICAgUmVt
b3ZlZCB0aGUgb2xkIElQQyByZWNlaXZlci4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFVwZGF0ZSk6IERlbGV0
ZWQuCisgICAgICAgICAgICBUaGlzIGlzIG5vIGxvbmdlciBuZWVkZWQgc2luY2UgdGhlcmUgaXMg
YSBkZWRpY2F0ZWQgdXBkYXRlIG1lY2hhbmlzbQorICAgICAgICAgICAgdGhhdCBhY3R1YWxseSBz
ZW5kcyB0aGUgdXBkYXRlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgICAgICBUd28gbmV3IElQQyByZWNl
aXZlcnMgdG8gcGlwZSB0aGUgY2FsbHMgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgICAgIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZCBub3cgc2VydmVz
CisgICAgICAgICAgICB0aGlzIHB1cnBvc2UuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOiBSZW1vdmVk
LgorICAgICAgICAgICAgUmVtb3ZlZCB0aGUgb2xkIElQQyByZWNlaXZlci4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcik6CisgICAgICAgICAgICBGdW5jdGlvbiBuYW1l
IHVwZGF0ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAg
ICAgTm93IGNhbGxzIElQQyB0byB0aGUgbmV0d29yayBwcm9jZXNzIGluc3RlYWQgb2YgdGhlIFVJ
IHByb2Nlc3MuCisKIDIwMTktMDMtMjkgIFRha2FzaGkgS29tb3JpICA8VGFrYXNoaS5Lb21vcmlA
c29ueS5jb20+CiAKICAgICAgICAgW0N1cmxdIEFkZCBTZXJ2ZXIgVHJ1c3QgRXZhbHVhdGlvbiBT
dXBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9i
c2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5j
cHAKaW5kZXggZDAwZDI1MDFmNzFjMzNhMDg4MGMyM2QzNjc3M2U5NGRjYWYxMzMxZC4uNjhhOThh
NGUyM2JiYjhjYjg3NmM2Yzk4OWU3OWM0NDdlNDQ0YzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCkBAIC01MywxMyArNTMsMTMgQEAgUmVz
b3VyY2VMb2FkT2JzZXJ2ZXImIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKQogICAgIHJl
dHVybiByZXNvdXJjZUxvYWRPYnNlcnZlcjsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVz
b3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYgbm90aWZpY2F0aW9uQ2FsbGJhY2spCit2b2lkIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzZXRTdGF0aXN0aWNzVXBkYXRlZENhbGxiYWNrKFdURjo6RnVu
Y3Rpb248dm9pZChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYgbm90aWZpY2F0
aW9uQ2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAg
ICBtX25vdGlmaWNhdGlvbkNhbGxiYWNrID0gV1RGTW92ZShub3RpZmljYXRpb25DYWxsYmFjayk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldFJlcXVlc3RTdG9yYWdlQWNjZXNz
VW5kZXJPcGVuZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgb3BlbmVyRG9tYWluKT4mJiBjYWxsYmFjaykKK3Zv
aWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldFJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVu
ZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50
NjRfdCBvcGVuZXJQYWdlSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBvcGVuZXJEb21haW4p
PiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVCghbV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyQ2FsbGJhY2spOwogICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CkBAIC04OSwxMSArODksNiBAQCB2b2lkIFJlc291
cmNlTG9hZE9ic2VydmVyOjpzZXRMb2dTdWJyZXNvdXJjZVJlZGlyZWN0Tm90aWZpY2F0aW9uQ2Fs
bGJhY2soRnVuY3RpbwogICAgIG1fbG9nU3VicmVzb3VyY2VSZWRpcmVjdE5vdGlmaWNhdGlvbkNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAgICAgCi1SZXNvdXJjZUxvYWRPYnNlcnZl
cjo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKQotICAgIDogbV9ub3RpZmljYXRpb25UaW1lcigqdGhp
cywgJlJlc291cmNlTG9hZE9ic2VydmVyOjpub3RpZnlPYnNlcnZlcikKLXsKLX0KLQogc3RhdGlj
IGlubGluZSBib29sIGlzM3h4UmVkaXJlY3QoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7CiAgICAgcmV0dXJuIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gMzAwICYmIHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPD0gMzk5OwpAQCAtMTMzLDMxICsxMjgsMjMgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVzb3VyY2VMb2FkaW5nKGNvbnN0IEZyYW1l
KiBmcmFtZSwgY29uc3QgUmVzb3UKICAgICBpZiAodGFyZ2V0RG9tYWluID09IHRvcEZyYW1lRG9t
YWluIHx8IChpc1JlZGlyZWN0ICYmIHRhcmdldERvbWFpbiA9PSByZWRpcmVjdGVkRnJvbURvbWFp
bikpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNh
bGxiYWNrID0gZmFsc2U7CiAgICAgewogICAgICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0aWNzID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWlu
KTsKICAgICAgICAgYXV0byBsYXN0U2VlbiA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVj
ZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSk7CiAgICAgICAgIHRhcmdldFN0YXRpc3Rp
Y3MubGFzdFNlZW4gPSBsYXN0U2VlbjsKLSAgICAgICAgaWYgKHRhcmdldFN0YXRpc3RpY3Muc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucy5hZGQodG9wRnJhbWVEb21haW4pLmlzTmV3RW50
cnkpCi0gICAgICAgICAgICBzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSB0cnVlOwor
ICAgICAgICB0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMu
YWRkKHRvcEZyYW1lRG9tYWluKTsKIAogICAgICAgICBtX2xvZ1N1YnJlc291cmNlTG9hZGluZ05v
dGlmaWNhdGlvbkNhbGxiYWNrKHBhZ2UtPnNlc3Npb25JRCgpLCB0YXJnZXREb21haW4sIHRvcEZy
YW1lRG9tYWluLCBsYXN0U2Vlbik7CiAgICAgfQogCiAgICAgaWYgKGlzUmVkaXJlY3QpIHsKICAg
ICAgICAgYXV0byYgcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RlZEZyb21Eb21haW4pOwotICAg
ICAgICBib29sIGlzTmV3UmVkaXJlY3RUb0VudHJ5ID0gcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0
aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldERvbWFpbikuaXNOZXdF
bnRyeTsKKyAgICAgICAgcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0aWNzLnN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldERvbWFpbik7CiAgICAgICAgIGF1dG8mIHRhcmdldFN0
YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0
YXJnZXREb21haW4pOwotICAgICAgICBib29sIGlzTmV3UmVkaXJlY3RGcm9tRW50cnkgPSB0YXJn
ZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5hZGQocmVkaXJlY3Rl
ZEZyb21Eb21haW4pLmlzTmV3RW50cnk7Ci0KLSAgICAgICAgaWYgKGlzTmV3UmVkaXJlY3RUb0Vu
dHJ5IHx8IGlzTmV3UmVkaXJlY3RGcm9tRW50cnkpCi0gICAgICAgICAgICBzaG91bGRDYWxsTm90
aWZpY2F0aW9uQ2FsbGJhY2sgPSB0cnVlOworICAgICAgICB0YXJnZXRTdGF0aXN0aWNzLnN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5hZGQocmVkaXJlY3RlZEZyb21Eb21haW4pOwogCiAg
ICAgICAgIG1fbG9nU3VicmVzb3VyY2VSZWRpcmVjdE5vdGlmaWNhdGlvbkNhbGxiYWNrKHBhZ2Ut
PnNlc3Npb25JRCgpLCByZWRpcmVjdGVkRnJvbURvbWFpbiwgdGFyZ2V0RG9tYWluKTsKICAgICB9
Ci0KLSAgICBpZiAoc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrKQotICAgICAgICBzY2hl
ZHVsZU5vdGlmaWNhdGlvbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OmxvZ1dlYlNvY2tldExvYWRpbmcoY29uc3QgVVJMJiB0YXJnZXRVUkwsIGNvbnN0IFVSTCYg
bWFpbkZyYW1lVVJMLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC0xODEsOCArMTY4LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2ViU29ja2V0TG9hZGluZyhjb25zdCBV
UkwmIHRhcmdldFVSTCwgY29uc3QgVVJMJgogCiAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFp
bik7CiAgICAgdGFyZ2V0U3RhdGlzdGljcy5sYXN0U2VlbiA9IGxhc3RTZWVuOwotICAgIGlmICh0
YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMuYWRkKHRvcEZy
YW1lRG9tYWluKS5pc05ld0VudHJ5KQotICAgICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbklmTmVl
ZGVkKCk7CisgICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW5zLmFkZCh0b3BGcmFtZURvbWFpbik7CiAKICAgICBtX2xvZ1dlYlNvY2tldExvYWRpbmdOb3Rp
ZmljYXRpb25DYWxsYmFjayhzZXNzaW9uSUQsIHRhcmdldERvbWFpbiwgdG9wRnJhbWVEb21haW4s
IGxhc3RTZWVuKTsKIH0KQEAgLTIxNSw3ICsyMDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2Vy
dmVyOjpsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0IERv
YwogICAgICAgICAgICAgaWYgKGF1dG8qIG9wZW5lckRvY3VtZW50ID0gb3BlbmVyLT5kb2N1bWVu
dCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIG9wZW5lckZyYW1lID0gb3BlbmVyRG9j
dW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gb3BlbmVyUGFn
ZUlEID0gb3BlbmVyRnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcih0b3BGcmFtZURv
bWFpbiwgb3BlbmVyUGFnZUlELnZhbHVlKCksICpvcGVuZXJEb2N1bWVudCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGRvY3VtZW50LnNl
c3Npb25JRCgpLCB0b3BGcmFtZURvbWFpbiwgb3BlbmVyUGFnZUlELnZhbHVlKCksICpvcGVuZXJE
b2N1bWVudCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0yMjQsOSArMjEwLDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVy
YWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihjb25zdCBEb2MKICAgICBtX2xvZ1VzZXJJ
bnRlcmFjdGlvbk5vdGlmaWNhdGlvbkNhbGxiYWNrKGRvY3VtZW50LnNlc3Npb25JRCgpLCB0b3BG
cmFtZURvbWFpbik7CiAjZW5kaWYKIAotICAgIG1fbm90aWZpY2F0aW9uVGltZXIuc3RvcCgpOwot
ICAgIG5vdGlmeU9ic2VydmVyKCk7Ci0KICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAoc2hvdWxkTG9nVXNlckludGVy
YWN0aW9uKCkpIHsKICAgICAgICAgYXV0byBjb3VudGVyID0gKyttX2xvZ2dpbmdDb3VudGVyOwpA
QCAtMjUwLDE0ICsyMzMsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlcklu
dGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihjb25zdCBEb2MKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFJlc291cmNlTG9hZE9ic2VydmVy
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgRG9j
dW1lbnQmIG9wZW5lckRvY3VtZW50KQordm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90
IG9wZW5lclBhZ2VJRCwgRG9jdW1lbnQmIG9wZW5lckRvY3VtZW50KQogewogICAgIGF1dG8gb3Bl
bmVyVXJsID0gb3BlbmVyRG9jdW1lbnQudXJsKCk7CiAgICAgUmVnaXN0cmFibGVEb21haW4gb3Bl
bmVyRG9tYWluIHsgb3BlbmVyVXJsIH07CiAgICAgaWYgKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFj
Y2VzcyAhPSBvcGVuZXJEb21haW4KICAgICAgICAgJiYgIW9wZW5lckRvY3VtZW50Lmhhc1JlcXVl
c3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlckludGVyYWN0aW9uKGRvbWFpbklu
TmVlZE9mU3RvcmFnZUFjY2VzcykKICAgICAgICAgJiYgIWVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
b3BlbmVyVXJsLnN0cmluZygpLCBXVEY6OmJsYW5rVVJMKCkpKSB7Ci0gICAgICAgIG1fcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFj
Y2Vzcywgb3BlbmVyUGFnZUlELCBvcGVuZXJEb21haW4pOworICAgICAgICBtX3JlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayhzZXNzaW9uSUQsIGRvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2Vzcywgb3BlbmVyUGFnZUlELCBvcGVuZXJEb21haW4pOwogICAgICAgICAvLyBSZW1l
bWJlciB1c2VyIGludGVyYWN0aW9uLWJhc2VkIHJlcXVlc3RzIHNpbmNlIHRoZXkgZG9uJ3QgbmVl
ZCB0byBiZSByZXBlYXRlZC4KICAgICAgICAgb3BlbmVyRG9jdW1lbnQuc2V0SGFzUmVxdWVzdGVk
UGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzKTsKICAgICB9CkBAIC0zODIsMjIgKzM2NSw4IEBAIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MmIFJlc291cmNlTG9hZE9ic2VydmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyCiAgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9CiAK
LXZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNjaGVkdWxlTm90aWZpY2F0aW9uSWZOZWVkZWQo
KQotewotICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICBpZiAobV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXAuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1fbm90aWZpY2F0aW9uVGlt
ZXIuc3RvcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX25vdGlmaWNh
dGlvblRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fbm90aWZpY2F0aW9uVGltZXIuc3RhcnRP
bmVTaG90KG1pbmltdW1Ob3RpZmljYXRpb25JbnRlcnZhbCk7Ci19Ci0KLXZvaWQgUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6Om5vdGlmeU9ic2VydmVyKCkKK3ZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OnVwZGF0ZUNlbnRyYWxTdGF0aXN0aWNzU3RvcmUoKQogewotICAgIEFTU0VSVChtX25vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKLSAgICBtX25vdGlmaWNhdGlvblRpbWVyLnN0b3AoKTsKICAgICBtX25v
dGlmaWNhdGlvbkNhbGxiYWNrKHRha2VTdGF0aXN0aWNzKCkpOwogfQogCkBAIC00MjQsNyArMzkz
LDYgQEAgVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+IFJlc291cmNlTG9hZE9ic2VydmVy
Ojp0YWtlU3RhdGlzdGljcygpCiAKIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmNsZWFyU3Rh
dGUoKQogewotICAgIG1fbm90aWZpY2F0aW9uVGltZXIuc3RvcCgpOwogICAgIG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwLmNsZWFyKCk7CiAgICAgbV9sYXN0UmVwb3J0ZWRVc2VySW50ZXJhY3Rpb25N
YXAuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2Vy
dmVyLmgKaW5kZXggMDdkZjU1MjQ0ZWQyMjE1MTk0MTUzN2Q3NGIyMGYzMjQxYjBiNWEzYy4uYzQ2
NjFiMDQ3NjA3MzIwZmQ4N2ZiYjNkYmJiODAzZTRkMTFkNGE0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKQEAgLTcyLDE0ICs3MiwxNCBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RhdGlzdGljc0ZvclVSTChjb25zdCBV
UkwmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2so
V1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9w
ZW5lckNhbGxiYWNrKEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1aW50
NjRfdCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTdGF0aXN0aWNzVXBkYXRlZENhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChWZWN0
b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKEZ1bmN0aW9uPHZv
aWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdWludDY0X3QsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TG9nVXNlckludGVyYWN0aW9uTm90aWZpY2F0aW9uQ2FsbGJhY2soRnVuY3Rpb248dm9pZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKT4mJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRMb2dXZWJTb2NrZXRMb2FkaW5nTm90aWZpY2F0aW9uQ2FsbGJhY2soRnVu
Y3Rpb248dm9pZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxUaW1lKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRMb2dTdWJyZXNvdXJjZUxvYWRpbmdOb3RpZmljYXRpb25DYWxsYmFjayhGdW5jdGlv
bjx2b2lkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUpPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldExvZ1N1YnJlc291cmNlUmVkaXJlY3ROb3RpZmljYXRpb25DYWxsYmFjayhGdW5jdGlvbjx2
b2lkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJik+JiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlPYnNl
cnZlcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlQ2VudHJhbFN0YXRpc3RpY3NT
dG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJTdGF0ZSgpOwogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkBA
IC04OCwyOCArODgsMjMgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIoKTsKLQogICAgIGJvb2wgc2hvdWxkTG9nKGJvb2wgdXNlc0VwaGVtZXJh
bFNlc3Npb24pIGNvbnN0OwogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
Jik7CiAKLSAgICB2b2lkIHNjaGVkdWxlTm90aWZpY2F0aW9uSWZOZWVkZWQoKTsKICAgICBWZWN0
b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gdGFrZVN0YXRpc3RpY3MoKTsKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c1VuZGVyT3BlbmVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5Jbk5lZWRPZlN0b3Jh
Z2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgRG9jdW1lbnQmIG9wZW5lckRvY3VtZW50
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3Ms
IHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgRG9jdW1lbnQmIG9wZW5lckRvY3VtZW50KTsKICNlbmRp
ZgogCiAgICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7CiAgICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFp
biwgV1RGOjpXYWxsVGltZT4gbV9sYXN0UmVwb3J0ZWRVc2VySW50ZXJhY3Rpb25NYXA7CiAgICAg
RnVuY3Rpb248dm9pZChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+IG1fbm90aWZp
Y2F0aW9uQ2FsbGJhY2s7Ci0gICAgRnVuY3Rpb248dm9pZChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIHVpbnQ2NF90LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpPiBtX3JlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjazsKKyAgICBGdW5jdGlvbjx2b2lkKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVpbnQ2NF90LCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpPiBtX3JlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjazsKICAg
ICBGdW5jdGlvbjx2b2lkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYp
PiBtX2xvZ1VzZXJJbnRlcmFjdGlvbk5vdGlmaWNhdGlvbkNhbGxiYWNrOwogICAgIEZ1bmN0aW9u
PHZvaWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBXYWxsVGltZSk+IG1fbG9nV2ViU29ja2V0TG9hZGluZ05vdGlmaWNh
dGlvbkNhbGxiYWNrOwogICAgIEZ1bmN0aW9uPHZvaWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBXYWxsVGltZSk+IG1f
bG9nU3VicmVzb3VyY2VMb2FkaW5nTm90aWZpY2F0aW9uQ2FsbGJhY2s7CiAgICAgRnVuY3Rpb248
dm9pZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpPiBtX2xvZ1N1YnJlc291cmNlUmVkaXJlY3ROb3RpZmljYXRpb25DYWxs
YmFjazsKLQotICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uVGltZXI7CiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0
X3QgbV9sb2dnaW5nQ291bnRlciB7IDAgfTsKICAgICBib29sIG1fc2hvdWxkTG9nVXNlckludGVy
YWN0aW9uIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4
MzY5YTFjZWU2YTQ2NWFlYjc5MTUyNmU5YmQ2NDYwZDhiYWZmODZlLi5jMzlmMWZkZjc5MGQ4ZWQ3
ZGE2Mzc5ZmJlYWVhOTU3OTRmZjMxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC00OTE2LDcgKzQ5MTYsNyBAQCBzaXplX3QgSW50ZXJuYWxzOjpwbHVnaW5Db3VudCgp
CiAKIHZvaWQgSW50ZXJuYWxzOjpub3RpZnlSZXNvdXJjZUxvYWRPYnNlcnZlcigpCiB7Ci0gICAg
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLm5vdGlmeU9ic2VydmVyKCk7CisgICAgUmVz
b3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnVwZGF0ZUNlbnRyYWxTdGF0aXN0aWNzU3RvcmUo
KTsKIH0KIAogdW5zaWduZWQgSW50ZXJuYWxzOjpwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGQ2MzFhNGZlMmYzZTcwNjQ1NjNhNGFmYjlkZjU0ZTMwYjhhZjAx
ZTAuLmM0MzYxMTM0MmNiNjMwMTQyMjNiODRjNmRiZjliOGUxMWQzMWM2MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMTQ0LDcgKzE0NCw2IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgotICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLm1lc3NhZ2VzLmluCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAw
MTQ4MmU2NmE3YWU3ZDk0ZDgyMmU5YjdmNTMzYmQ2YjY4MGRmODdiLi4wMzMwYTg5MjBjMTJiMDBk
YTAxM2MyMTFhMzdhM2RhMDgzZWUzYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0xNzgsNyArMTc4LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUlRDTW9uaXRv
ciBcCiAgICAgV2ViUlRDUmVzb2x2ZXIgXAogICAgIFdlYlJUQ1NvY2tldCBcCi0gICAgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFwKICAgICBXZWJSZXNvdXJjZUxvYWRlciBcCiAgICAg
V2ViU1dDbGllbnRDb25uZWN0aW9uIFwKICAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
biBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmlu
ZGV4IGRiZWUwOTQ3ZTY2YTI1ZGIxY2Y4NzU2MmUxMTZmYjFlYTlmNWM2MmEuLmI3OThmZDBjNDdj
M2Y3NmFmMGVkMDNhOWMwY2FjYjA4MGI2ZjdmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NU
ZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KQEAgLTI1MSwxMSArMjUwLDYgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
UHJvY2Vzc2luZygKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnJlcXVlc3RVcGRhdGUoKQotewotICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRh
dGVkKHsgfSk7Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljcz4mJiBvcmlnaW5zKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZmMzNzM3
NjY0MDI0YjFlZDRkMTBlNjgzYzM1MGMzNWRiNWMyYzVhOC4uYTBmZThlY2U4ZDhmOGU1ZWExM2Uw
ODZjM2VmZDVlYmJkMmZjOGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaApAQCAtNjYsNyArNjYsNyBAQCBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVG9S
ZW1vdmUgOiB1aW50OF90IHsKICAgICBBbGxCdXRDb29raWVzCiB9OwogCi1jbGFzcyBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1h
aW4+IHsKIHB1YmxpYzoKICAgICB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwpAQCAtMTIwLDcgKzEyMCw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgUGFnZUlEKTsKICAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgUGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzR3Jh
bnRlZChjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJ
RCwgUGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJl
cXVlc3RVcGRhdGUoKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0x
NzgsMTkgKzE3NywxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCB1bnNpZ25lZCB2YWx1ZSwgdW5zaWduZWQgc2lnRGlnaXRzLCBXZWJDb3JlOjpTaG91bGRTYW1w
bGUpIGNvbnN0OwogICAgIHZvaWQgbm90aWZ5UGFnZVN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hl
ZCh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxl
bnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2lucykgY29uc3Q7CiAKKyAgICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NVcGRhdGVkKFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKTsKKyAgICB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNz
JiYsIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgT3BlbmVyRG9tYWluJiYpOworCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lv
biYsIGNvbnN0IFN0cmluZyYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOwogCiAgICAgdm9pZCBw
b3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQgcG9zdFRh
c2tSZXBseShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKLSAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOwotCi0gICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCi0g
ICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcz4mJiBvcmlnaW5zKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIoRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIHVpbnQ2NF90IG9wZW5lclBh
Z2VJRCwgT3BlbmVyRG9tYWluJiYpOwotCiAgICAgdm9pZCBwZXJmb3JtRGFpbHlUYXNrcygpOwog
CiAgICAgU3RvcmFnZUFjY2Vzc1N0YXR1cyBzdG9yYWdlQWNjZXNzU3RhdHVzKGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lUHJpbWFyeURv
bWFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGYwYzVlNmU4ZGE5ZDVlY2U5
YzQ0ZmNhMjA2OGExNzQwOTYxMTNkNDYuLmNhYjQzNGViZmRmMWU0ZWQ2ZGI0ZjlmNTAzM2FmMzky
ZWU3ODNhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02NTMsMTQgKzY1Mywx
NCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dTdWJyZXNvdXJjZVJl
ZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGUo
KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb3VyY2VMb2FkU3RhdGlz
dGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYgc3Rh
dGlzdGljcykKIHsKICAgICBmb3IgKGF1dG8mIG5ldHdvcmtTZXNzaW9uIDogbmV0d29ya1Byb2Nl
c3MoKS5uZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgewogICAgICAgICBpZiAobmV0d29ya1Nl
c3Npb24tPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5yZXF1ZXN0VXBkYXRlKCk7CisgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChXVEZNb3ZlKHN0YXRpc3RpY3Mp
KTsKICAgICB9CiB9CiAKQEAgLTY3Myw2ICs2NzMsMTQgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bkkKIHsKICAgICBuZXR3b3JrUHJvY2VzcygpLnJlcXVlc3RTdG9yYWdlQWNjZXNzR3JhbnRlZChz
ZXNzaW9uSUQsIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgZnJhbWVJRCwgcGFnZUlE
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbikKK3sKKyAgICBpZiAoYXV0byBuZXR3b3JrU2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzKSwgb3BlbmVyUGFnZUlELCBXVEZNb3ZlKG9wZW5lckRvbWFpbikpOworICAg
IH0KK30KICNlbmRpZgogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAppbmRleCBmMzkzN2RkMjkxZGMzODdjYjczYjY5NjE1NThkMWUxZmQ0Njk1Njg4Li45OGNm
NDQ3ODcwNTU5NGM3YzU2ZDg2ZGVjNDNmNmQ3ZmJhMmIzODkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC0yMTgsOSArMjE4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dXZWJTb2Nr
ZXRMb2FkaW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdhbGxUaW1l
IGxhc3RTZWVuKTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBs
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWlu
KTsKLSAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKCk7CisgICAg
dm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcz4mJik7CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIo
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgb3BlbmVyRG9tYWluKTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwNmY4YWNkMWRkM2MxMDU4MTc3OTllODY2MTM2NjZj
MWQ5MWE0YzA5Li4xNmVkMzRhZDk4Nzg5MDQxODM3MWEzOWNhZGU2NDg2ZjM3MWQ2Y2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTYyLDkgKzYyLDEw
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBMb2dXZWJTb2NrZXRMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3Vi
cmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VSZWRpcmVj
dChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNv
dXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKQotICAg
IFJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKCk7CisgICAgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+
IHN0YXRpc3RpY3MpCiAgICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYwogICAgIFJlcXVlc3RT
dG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIC0+IChib29sIGFj
Y2Vzc0dyYW50ZWQpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBvcGVuZXJEb21haW4pCiAjZW5kaWYKIAogICAgIEFkZE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KFN0cmluZyBzb3VyY2VPcmlnaW4sIFN0cmluZyBkZXN0aW5hdGlv
blByb3RvY29sLCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzliNGU2ZjM4MGRlYTExNDM1YTYxYWVjMzEyZjBlZGFjNGU0
NTg5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2Fn
ZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQotCi1tZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgewotICAgIFJl
cXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
ZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKLSAgICBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4g
b3JpZ2lucykKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDQzMTE2YjkxOWJlMzA0
MjhiMDhlZDkwNjljNDQzNTMwZmU2M2U4N2YuLjgwMzEzMDRkMzQ5YjU2Mzk1ZWQ3YTIzOTIxNGQ0
MjFmZDFhYjU0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNp
bmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKLSNpbmNsdWRlICJXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVE
YXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ODQ3NTg4MmE0YzkwYWE4NGY2ZTVlYmMwZjA2
NzU4YmQ1MGM1MTcwLi5mZmYxYTVlN2VmN2NiNTAzMWZkZjM0NTBhMzFiMzVjYTM5YzYzYWRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTExMjIsOCArMTEyMiw2IEBACiAJCTdBNzcyQzhEMURERDRBMjUwMDBGMzRGMSAvKiBjb20uYXBw
bGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0ExNTA2NzIxREQ1NjI5ODAw
MUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYiAqLzsgfTsKIAkJN0E3
OEZGMzIyMjQxOTE5NjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTc4RkYyRTIyNDE5MTc1MDA5
NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQuaCAqLzsgfTsKIAkJN0E3OEZGMzMyMjQxOTE5
QjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E3OEZGMkYyMjQxOTE3NjAwOTY0ODNFIC8qIFdL
U3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tICovOyB9OwotCQk3QTc5MUVGQTFDN0NGQ0YxMDBDNEM1MkIg
LyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzkxRUY5MUM3Q0ZC
MzcwMEM0QzUyQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwotCQk3QTc5MUVGQjFDN0NGRDAxMDBDNEM1MkIgLyogV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzkxRUY4MUM3Q0ZCMTAwMEM0QzUyQiAvKiBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oICovOyB9OwogCQk3QTgyMUY0QzFFMkY2NzM5
MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTgyMUY0QjFFMkY2NjQ4MDA2
MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi87IH07CiAJCTdB
ODIxRjUwMUUyRjdBNzUwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBODIxRjRG
MUUyRjdBNUMwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCAqLzsg
fTsKIAkJN0E4QTlENTgxRUYxMTlCMDAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QThBOUQ1
NzFFRjExOUFBMDA5ODAxQUUgLyogQVBJSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKQEAg
LTM1ODAsOCArMzU3OCw2IEBACiAJCTdBNUUzOTQ5MUQ1QkQ4QTcwMEI0QjdDRSAvKiBjb20ubWFj
cm9tZWRpYS5GbGFzaCBQbGF5ZXIgRVNSLnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSAiY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QTc4RkYyRTIyNDE5MTc1MDA5NjQ4M0UgLyogV0tTdG9yYWdl
QWNjZXNzQWxlcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTdG9yYWdl
QWNjZXNzQWxlcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E3OEZGMkYyMjQx
OTE3NjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTdG9yYWdlQWNjZXNzQWxlcnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdBNzkxRUY4MUM3Q0ZCMTAwMEM0QzUyQiAvKiBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk3QTc5MUVG
OTFDN0NGQjM3MDBDNEM1MkIgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTdBODIx
RjQ5MUUyRjY1REQwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSBDdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTgyMUY0
RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU5
MCw3ICszNTg2LDYgQEAKIAkJN0E4QTlENTcxRUYxMTlBQTAwOTgwMUFFIC8qIEFQSUluamVjdGVk
QnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVj
dGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBOEE5RDU5
MUVGMTMwMjAwMDk4MDFBRSAvKiBBUElJbmplY3RlZEJ1bmRsZUJ1bmRsZUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZUJ1bmRsZUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QThBOUQ1QjFFRjE0NThFMDA5ODAx
QUUgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QTlDRDhDMjFDNzc5QUQ2
MDBEOUY2QzcgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FCNkVBNDQxRUVBQUUyMzAw
MDM3QjJCIC8qIEFQSUljb25EYXRhYmFzZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBUElJY29uRGF0YWJhc2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0FCNkVBNDYxRUVBQjZCMDAwMDM3QjJCIC8qIEFQSUdlb2xvY2F0aW9uUHJvdmlk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJR2VvbG9jYXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUNFODJFNzIyMUNBRTA2MDAw
REE5NEMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOyBwYXRoID0gQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTc2MDAsNyArNzU5NSw2IEBACiAJCQkJQkMxMTFCMEQxMTJGNUU0RjAwMzM3
QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5jcHAgKi8sCiAJCQkJQkMwMzJEQ0YxMEY0Mzg5RjAwNThD
MTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oICovLAogCQkJCUJDRUU3QUIzMTI4MTcwOTUwMDk4MjdE
QSAvKiBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8sCi0JCQkJN0E5Q0Q4QzIxQzc3OUFE
NjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MUQxMjQyNDFFNkQzQ0MzMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAgKi8sCiAJCQkJNTFEMTI0MjUxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXIuaCAqLywKIAkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFz
ay5jcHAgKi8sCkBAIC04NjUzLDggKzg2NDcsNiBAQAogCQkJCUJDRUU3QUNEMTI4MTc5ODgwMDk4
MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxRjA2MEREMTY1NDMx
NzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJNTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMu
aCAqLywKLQkJCQk3QTc5MUVGOTFDN0NGQjM3MDBDNEM1MkIgLyogV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk3QTc5MUVGODFDN0NGQjEw
MDBDNEM1MkIgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCAqLywK
IAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29s
dmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMg
LyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTk2NzEsNyArOTY2Myw2
IEBACiAJCQkJNTEwQUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FGQkQzNjMyMUU1MEYzOTAw
NURCQUNCIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0E3OTFFRkIxQzdDRkQwMTAwQzRDNTJCIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwNzVCMDFERTg1RjU4MDAz
OUVDNjkgLyogV2ViUlRDTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQUY1RjUxRTND
MDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MURD
NDU5RjFFM0RCREE1MDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAg
LTExMTgyLDcgKzExMTczLDYgQEAKIAkJCQk3Q0U0RDIyNzFBNDkxNkMyMDBDN0YxNTIgLyogV2Vi
UHJvY2Vzc1Bvb2xNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRTdB
RDAxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0E3OTFFRkEx
QzdDRkNGMTAwQzRDNTJCIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYg
LyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlJU
Q1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUu
Y3BwCmluZGV4IGUxNTYyOTdjNjZiNWJiMTUwYjI5OTAwYTJkODZmMmM4ZjZjMDRjMjAuLmMyZDVk
ZTY0YzJlNjY4YzliZDIzY2JkZmI1ZDg2YzljN2VmMzRlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNw
cApAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgV0tCdW5kbGVDbGVhclJlc291cmNlTG9hZFN0YXRp
c3RpY3MoV0tCdW5kbGVSZWYpCiAKIHZvaWQgV0tCdW5kbGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Tm90aWZ5T2JzZXJ2ZXIoV0tCdW5kbGVSZWYpCiB7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
T2JzZXJ2ZXI6OnNoYXJlZCgpLm5vdGlmeU9ic2VydmVyKCk7CisgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnVwZGF0ZUNlbnRyYWxTdGF0aXN0aWNzU3RvcmUoKTsK
IH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjU0OWMz
ZDJkYzY0N2RiYzc1MmI2MjQ1MjE0ZTlmNDQwNjQ1ZTg4MC4uMzQzMTc3ZDcyYTJhOTZiZjYyNTE0
M2M0ZTlhZjA0N2I3MGI2MDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtNjUsNyArNjUsNiBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCkBAIC0yMTEsMTQgKzIxMCwxMiBAQCBX
ZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25l
ZCwgV2FsbFRpbWU+KCkpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
LSAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0Tm90aWZpY2F0aW9uQ2FsbGJh
Y2soW3RoaXNdIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0aXN0aWNzKSB7
Ci0gICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQo
V1RGTW92ZShzdGF0aXN0aWNzKSksIDApOwotCi0gICAgICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGUoKSwgMCk7
CisgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldFN0YXRpc3RpY3NVcGRhdGVk
Q2FsbGJhY2soW3RoaXNdIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0aXN0
aWNzKSB7CisgICAgICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSksIDApOwogICAgIH0p
OwogCi0gICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldFJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayhbdGhpc10gKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIG9wZW5lckRvbWFpbikgewotICAgICAgICBwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoZG9tYWluSW5OZWVkT2ZTdG9y
YWdlQWNjZXNzLCBvcGVuZXJQYWdlSUQsIG9wZW5lckRvbWFpbiksIDApOworICAgIFJlc291cmNl
TG9hZE9ic2VydmVyOjpzaGFyZWQoKS5zZXRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVy
Q2FsbGJhY2soW3RoaXNdIChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5lclBh
Z2VJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIG9wZW5lckRvbWFpbikgeworICAgICAgICBl
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIoc2Vzc2lvbklELCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIG9wZW5lclBh
Z2VJRCwgb3BlbmVyRG9tYWluKSwgMCk7CiAgICAgfSk7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
ZjFhODRjN2YyYzc3MTYxMmQ5MWM1NTc5YmE1YThhZTYwZjdiY2ZiLi44YTEzYjgyMTJhYjQ1NmIz
YmQwMjhkMTJlNzFmNTM1MjNiNTE5YTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDMt
MjkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgSVBDIGNhbGxzIGZyb20gdGhlIFVJIHByb2Nl
c3MgdG8gdGhlIG5ldHdvcmsgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Nzg1OTkz
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVu
ZGVyLW9wZW5lci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5k
ZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2dldC1jb29raWVzLnBocDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Byb2R1Y2UtdXNlci1nZXN0
dXJlLXNldC1jb29raWUtYW5kLXJlcG9ydC1iYWNrLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTI5
ICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29tPgogCiAgICAgICAgIFtD
dXJsXSBBZGQgU2VydmVyIFRydXN0IEV2YWx1YXRpb24gU3VwcG9ydC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVu
ZGVyLW9wZW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0CmluZGV4
IDhiNGE2NDVkNGQwNzNiMGE2YTIwMzE3ZDcwYjA5MmUxYzMyZTkxODEuLjM2NWZkNjgxYjZkNmNk
YmY5Y2I0MTBiYmFkZmUyODE3ZmU1MTY4OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnkt
c3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dApAQCAtMTQsNSArMTQsNCBA
QCBGcmFtZTogJzwhLS1mcmFtZTEtLT4nCiAtLS0tLS0tLQogU2hvdWxkIG5vdCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZS4KIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgotRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnJy4KIENsaWVudC1zaWRl
IGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1pZi1hdXRvLWRpc21p
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rl
bnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1leHBlY3RlZC50
eHQKaW5kZXggZjUzZDM0ZGY0MDViMDg4MGUyY2QxZjUwY2JmMTcyZWViZjAyMjIzZS4uMDdkN2Vh
NjRjOTJkNjQ4N2Y3NWNjM2M0YzQ0MDRmOTUwYTljNDM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3Bl
bmVyLWlmLWF1dG8tZGlzbWlzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1
dG8tZGlzbWlzcy1leHBlY3RlZC50eHQKQEAgLTE0LDUgKzE0LDQgQEAgRnJhbWU6ICc8IS0tZnJh
bWUxLS0+JwogLS0tLS0tLS0KIFNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUu
CiBEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KLURpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJycuCiBDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQt
c3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2M2MmJmY2RlOTg5MGJhYmJjOTk4YWEwNDllZjhkOThmOTA4MjIxZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFu
dC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItYXQtcG9wdXAtdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRv
dyBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIHByZXZpb3VzIHVzZXIgaW50ZXJhY3Rpb24g
Z2V0cyBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyIGlmIGl0IGdldHMgdXNlciBpbnRl
cmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQ29va2llIGNy
ZWF0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItYXQtcG9wdXAtdXNlci1nZXN0dXJl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyYTZmMDYzZGQ0Zjc0OGZiNDVjOWRlNGY2YjY4YjFkOThlOGIwN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0wLDAg
KzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1bigpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgYSBjcm9zcy1vcmlnaW4gd2luZG93IGZyb20gYSBwcmV2YWxlbnQgZG9t
YWluIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiBnZXRzIHN0b3JhZ2UgYWNjZXNzIHVu
ZGVyIGl0cyBvcGVuZXIgaWYgaXQgZ2V0cyB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQu
c3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxl
bWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxh
Y2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKGV2ZW50LmRhdGEpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICBuZXdXaW4uY2xvc2UoKTsKKyAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgIH0KKwor
ICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAg
ICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7
CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7Cisg
ICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIg
KyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKyAgICB2YXIgbmV3V2luOworCisgICAgZnVuY3Rpb24g
cnVuKCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2Fn
ZSwgZmFsc2UpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENs
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBh
cnR5T3JpZ2luICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9wcm9kdWNlLXVzZXItZ2VzdHVy
ZS1zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5kb3ciKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3Jlc291cmNlcy9nZXQtY29va2llcy5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2dldC1jb29raWVzLnBocAppbmRleCBhNGZi
NmE4NmVhMzk4NmUzMTYwYWViZDU5ZDZjMmNjZmRmN2E0NmExLi4yZDE1NmIyZGZmYmUwOWEzNzRj
OWQ4MDY5ZjA5ZmE5ZTBmMjM0MzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2dldC1jb29raWVzLnBocAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2dldC1jb29raWVzLnBocApAQCAt
NSwxMCArNSwxMiBAQCBpZighaXNzZXQoJF9DT09LSUVbJF9HRVRbIm5hbWUxIl1dKSkgewogfSBl
bHNlIHsKICAgICBlY2hvICJSZWNlaXZlZCBjb29raWUgbmFtZWQgJyIgLiAkX0dFVFsibmFtZTEi
XSAuICInLjxicj4iOwogfQotaWYoIWlzc2V0KCRfQ09PS0lFWyRfR0VUWyJuYW1lMiJdXSkpIHsK
LSAgICBlY2hvICJEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICciIC4gJF9HRVRbIm5hbWUy
Il0gLiAiJy48YnI+IjsKLX0gZWxzZSB7Ci0gICAgZWNobyAiUmVjZWl2ZWQgY29va2llIG5hbWVk
ICciIC4gJF9HRVRbIm5hbWUyIl0gLiAiJy48YnI+IjsKK2lmKCFlbXB0eSgkX0dFVFsibmFtZTIi
XSkpIHsKKyAgICBpZighaXNzZXQoJF9DT09LSUVbJF9HRVRbIm5hbWUyIl1dKSkgeworICAgICAg
ICBlY2hvICJEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICciIC4gJF9HRVRbIm5hbWUyIl0g
LiAiJy48YnI+IjsKKyAgICB9IGVsc2UgeworICAgICAgICBlY2hvICJSZWNlaXZlZCBjb29raWUg
bmFtZWQgJyIgLiAkX0dFVFsibmFtZTIiXSAuICInLjxicj4iOworICAgIH0KIH0KIGlmKCFlbXB0
eSgkX0dFVFsibmFtZTMiXSkpIHsKICAgICBpZighaXNzZXQoJF9DT09LSUVbJF9HRVRbIm5hbWUz
Il1dKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcy9wcm9kdWNlLXVzZXItZ2VzdHVyZS1zZXQtY29va2llLWFuZC1yZXBvcnQtYmFj
ay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9w
cm9kdWNlLXVzZXItZ2VzdHVyZS1zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEzM2FmZmM2ZTU4MzJjYTFmM2Y0ZTAxNDliZDY4MGFkMTljODBhYmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
L3Byb2R1Y2UtdXNlci1nZXN0dXJlLXNldC1jb29raWUtYW5kLXJlcG9ydC1iYWNrLmh0bWwKQEAg
LTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBsZXQgaW50ZXJ2YWxJRDsKKyAgICAgICAgZnVuY3Rpb24gc2V0Q29v
a2llQW5kUG9zdE1lc3NhZ2UoKSB7CisgICAgICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0
dXJlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGludGVydmFsSUQgPSBzZXRJbnRlcnZh
bChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHByb21pc2UgPSBkb2N1bWVu
dC5oYXNTdG9yYWdlQWNjZXNzKCk7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UudGhlbigK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChoYXNBY2Nlc3MpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQWNjZXNzKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJRCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJmaXJzdFBhcnR5Q29va2llPXZhbHVl
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVz
c2FnZSgiUEFTUyBDb29raWUgY3JlYXRlZC4iLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChyZWFzb24pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCJGQUlMIFByb21pc2Ug
d2FzIHJlamVjdGVkLCByZWFzb246ICIgKyByZWFzb24sICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKTsKKyAg
ICAgICAgICAgICAgICB9LCAxMDApOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRDb29raWVBbmRQb3N0TWVzc2Fn
ZSgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>