<?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>159250</bug_id>
          
          <creation_ts>2016-06-29 00:06:55 -0700</creation_ts>
          <short_desc>Adopt MediaRemote.</short_desc>
          <delta_ts>2016-10-31 09:16:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>hs85.jeong</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206323</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 00:06:55 -0700</bug_when>
    <thetext>Adopt MediaRemote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206330</commentid>
    <comment_count>1</comment_count>
      <attachid>282329</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 00:32:39 -0700</bug_when>
    <thetext>Created attachment 282329
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206381</commentid>
    <comment_count>2</comment_count>
      <attachid>282329</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-29 08:12:39 -0700</bug_when>
    <thetext>Comment on attachment 282329
WIP

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

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1589
&gt; -        m_buffered-&gt;add(presentationTimestamp.toDouble(), (presentationTimestamp + frameDuration + microsecond).toDouble());
&gt; +        m_buffered-&gt;add(presentationTimestamp.toDouble(), (presentationTimestamp + frameDuration).toDouble());

Is this related?

&gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:2
&gt; + * Copyright (C) 2014-2015 Apple Inc. All rights reserved.

Nit: 2014-2015 -&gt; 2016.

&gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:156
&gt; +    if (std::isfinite(duration) &amp;&amp; duration != MediaPlayer::invalidTime())
&gt; +        CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoDuration, cfDuration.get());

Nit: you don&apos;t need to create the CFNumber unless it will be added to the info dictionary.

&gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:163
&gt; +        CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoElapsedTime, cfCurrentTime.get());

Ditto.

&gt; Source/WebCore/platform/mac/RemoteCommandListenerMac.mm:60
&gt; +    auto commandInfoArray = adoptCF(CFArrayCreateMutable(kCFAllocatorDefault, sizeof(supportedCommands) / sizeof(MRMediaRemoteCommand), &amp;kCFTypeArrayCallBacks));

You can use ARRAY_SIZE here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206383</commentid>
    <comment_count>3</comment_count>
      <attachid>282347</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 08:19:31 -0700</bug_when>
    <thetext>Created attachment 282347
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206385</commentid>
    <comment_count>4</comment_count>
      <attachid>282347</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-29 08:24:36 -0700</bug_when>
    <thetext>Comment on attachment 282347
WIP

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

&gt; Source/WebCore/platform/mac/RemoteCommandListenerMac.h:27
&gt; +#ifndef RemoteCommandListenerMac_h
&gt; +#define RemoteCommandListenerMac_h

Nit: this can use &quot;#pragma once&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206387</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 08:49:40 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 282329 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282329&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1589
&gt; &gt; -        m_buffered-&gt;add(presentationTimestamp.toDouble(), (presentationTimestamp + frameDuration + microsecond).toDouble());
&gt; &gt; +        m_buffered-&gt;add(presentationTimestamp.toDouble(), (presentationTimestamp + frameDuration).toDouble());
&gt; 
&gt; Is this related?

Whoops. Nope.

&gt; &gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:2
&gt; &gt; + * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
&gt; 
&gt; Nit: 2014-2015 -&gt; 2016.

Ok.

&gt; &gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:156
&gt; &gt; +    if (std::isfinite(duration) &amp;&amp; duration != MediaPlayer::invalidTime())
&gt; &gt; +        CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoDuration, cfDuration.get());
&gt; 
&gt; Nit: you don&apos;t need to create the CFNumber unless it will be added to the
&gt; info dictionary.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm:163
&gt; &gt; +        CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoElapsedTime, cfCurrentTime.get());
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/mac/RemoteCommandListenerMac.mm:60
&gt; &gt; +    auto commandInfoArray = adoptCF(CFArrayCreateMutable(kCFAllocatorDefault, sizeof(supportedCommands) / sizeof(MRMediaRemoteCommand), &amp;kCFTypeArrayCallBacks));
&gt; 
&gt; You can use ARRAY_SIZE here.

Ok.

(In reply to comment #4)
&gt; Comment on attachment 282347 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282347&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/RemoteCommandListenerMac.h:27
&gt; &gt; +#ifndef RemoteCommandListenerMac_h
&gt; &gt; +#define RemoteCommandListenerMac_h
&gt; 
&gt; Nit: this can use &quot;#pragma once&quot;

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206388</commentid>
    <comment_count>6</comment_count>
      <attachid>282348</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 08:49:51 -0700</bug_when>
    <thetext>Created attachment 282348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206391</commentid>
    <comment_count>7</comment_count>
      <attachid>282349</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 08:51:36 -0700</bug_when>
    <thetext>Created attachment 282349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206403</commentid>
    <comment_count>8</comment_count>
      <attachid>282351</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 09:34:12 -0700</bug_when>
    <thetext>Created attachment 282351
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206405</commentid>
    <comment_count>9</comment_count>
      <attachid>282353</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-06-29 09:36:43 -0700</bug_when>
    <thetext>Created attachment 282353
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206459</commentid>
    <comment_count>10</comment_count>
      <attachid>282353</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-29 12:29:31 -0700</bug_when>
    <thetext>Comment on attachment 282353
Patch for landing

Clearing flags on attachment: 282353

Committed r202642: &lt;http://trac.webkit.org/changeset/202642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206520</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-29 15:04:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/27090091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206610</commentid>
    <comment_count>12</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2016-06-29 19:26:06 -0700</bug_when>
    <thetext>CMake build fix.
Committed r202661: &lt;http://trac.webkit.org/changeset/202661&gt;
Committed r202662: &lt;http://trac.webkit.org/changeset/202662&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282329</attachid>
            <date>2016-06-29 00:32:39 -0700</date>
            <delta_ts>2016-06-29 08:19:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-159250-20160629003220.patch</filename>
            <type>text/plain</type>
            <size>61424</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjQ1NmUwOTZkNmI4NDI2Mjg0OWE1MmYwMjY5M2I2Mjk5OWZmYWRl
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVVNFX01FRElBUkVNT1RFLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTYtMDYtMjggIFRvbWFzIFBvcGVsYSAg
PHRwb3BlbGFAcmVkaGF0LmNvbT4KIAogICAgICAgICBUSFVNQjIgc3VwcG9ydCBub3QgY29ycmVj
dGx5IGRldGVjdGVkIG9uIEZlZG9yYSB3aXRoIEdDQyA2LjEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmNDVl
Y2U5YjgzOTA1MDNlYWIzNzcxMjljYTA5ZGI2N2NiMTVmYS4uZWQ1YTBkMzRjMTNiZjU0MjU4MDJh
YmMxNjg4MDdiYWJiNGJkNzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA2
LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1l
ZGlhUmVtb3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU5MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRvcHQgTWVkaWFSZW1vdGUgYW5kIHVzZSB0aGUgZnJhbWV3b3JrIHRvIGltcGxlbWVudCBN
ZWRpYVNlc3Npb25NYW5hZ2VNYWMKKyAgICAgICAgYW5kIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcC4KKyAgICAgICAgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vz
c2lvblN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp+TWVkaWFTZXNzaW9uTWFuYWdl
ck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9u
V2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdl
ck1hYzo6cmVtb3ZlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdpYmxlU2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVO
b3dQbGF5aW5nSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHA6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OmNyZWF0ZVdlYWtQdHIp
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW06IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVDb21tYW5k
TGlzdGVuZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvbWFj
L01lZGlhUmVtb3RlU1BJLmg6IEFkZGVkLgorCiAyMDE2LTA2LTI3ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENyb3NzLWRvbWFpbiB2aWRlbyBsb2FkcyBkbyBu
b3QgcHJvbXB0IGZvciBhdXRob3JpemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1ZjA0MWRjODYyY2Q4
OTgwYTFhYTk5ZWQwYWU2ZmJjZWM0NzdlNDguLjM0MzVkNTEzNTkyMjU4M2FjZTg3NmM3NTE1ZGYy
N2RjMzUwMjY3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNi0yOSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRpYVJlbW90
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI1
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1vdGVkIFhQ
QyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxvbmdlciBl
bnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2ZlODhmNmYz
OGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJlZWRjYmI4
MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2VuZGlmIC8q
IFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGIzYjk1NDI4ZThlN2ZmMTgxYzVlZTBlM2Uy
M2UyNDE2NjQyN2RiYS4uYjRmZmI3ZDYxMTllMGEzMTc3MGY4ODY4ZDU5ZmVkMDJmMzNlNDExYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcApAQCAtMTU4Niw3ICsxNTg2LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBQYXMKICAg
ICAgICAgaWYgKG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKQogICAgICAgICAgICAgbV90aW1l
c3RhbXBPZmZzZXQgPSBmcmFtZUVuZFRpbWVzdGFtcDsKIAotICAgICAgICBtX2J1ZmZlcmVkLT5h
ZGQocHJlc2VudGF0aW9uVGltZXN0YW1wLnRvRG91YmxlKCksIChwcmVzZW50YXRpb25UaW1lc3Rh
bXAgKyBmcmFtZUR1cmF0aW9uICsgbWljcm9zZWNvbmQpLnRvRG91YmxlKCkpOworICAgICAgICBt
X2J1ZmZlcmVkLT5hZGQocHJlc2VudGF0aW9uVGltZXN0YW1wLnRvRG91YmxlKCksIChwcmVzZW50
YXRpb25UaW1lc3RhbXAgKyBmcmFtZUR1cmF0aW9uKS50b0RvdWJsZSgpKTsKICAgICAgICAgbV9i
dWZmZXJlZFNpbmNlTGFzdE1vbml0b3IgKz0gZnJhbWVEdXJhdGlvbi50b0RvdWJsZSgpOwogICAg
ICAgICBzZXRCdWZmZXJlZERpcnR5KHRydWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBjMTY1YzU1NDkxOGMzYTQzY2Ji
ZmEwM2EyMDBhM2U0YzkxNzAyMy4uYzM4OWY1YzdhMTFkZWYyNDkyNGRiNTFhNDY5ZDExMmFjNjQ4
MWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMzE5LDcgKzMxOSw3IEBACiAJCTA3RTNERkQxMUE5RTc4NjUwMDc2NENBOCAv
KiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1Rh
cmdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA3RTlFMTJFMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZh
dGVBVkYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
RTlFMTJEMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVB
VkYuaCAqLzsgfTsKIAkJMDdFOUUxMzAxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLzsgfTsKLQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwICovOyB9OworCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNFQjUgLyog
TWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLm1tICovOyB9OwogCQkwN0VFNzZFQjFCRTk2REIwMDBGODkxMzMgLyogTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlLmNwcCAqLzsgfTsKIAkJMDdFRTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0VFNzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaCAqLzsgfTsKIAkJMDdFRTc2RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMuaCAqLzsgfTsKQEAgLTYxMjQsNiArNjEyNCw3IEBACiAJCUNENjQxRUI0MTgxOEY1RUQwMEVF
NEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFU
aW1lQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRp
b24uY3BwICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87
IH07CisJCUNENjY5RDY4MUQyMzM2NEIwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2
NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi87
IH07CiAJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0Qz
MzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsgfTsK
IAkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQyMUM3
QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CiAJCUNEN0Qz
MzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAwNDEy
OTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OwpAQCAtNjEzOSw2ICs2MTQwLDExIEBA
CiAJCUNEODIwMzExMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRjEzOTVB
Q0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovOyB9OwogCQlDRDhBN0JCQjE5
NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBN0JCOTE5NzczNUZFMDBD
QkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi87IH07CiAJCUNEOEE3QkJD
MTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQkExOTc3MzVGRTAw
Q0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi87IH07CisJCUNEOEFDQTg4
MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NjFEMjM3QUEyMDBF
Q0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tICovOyB9OworCQlDRDhBQ0E4OTFE
MjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1
OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CisJCUNEOEFDQThCMUQyMzk0
NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBOEExRDIzOTQ2NDAwRUNDNTlFIC8qIE1lZGlhUmVt
b3RlU1BJLmggKi87IH07CisJCUNEOEFDQThFMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90
ZVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEOEFDQThDMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcCAq
LzsgfTsKKwkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThE
MUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1
QTQyMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1
QTQwMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbSAqLzsgfTsKIAkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1
IC8qIFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tN
ZWRpYVNvdXJjZS5oICovOyB9OwpAQCAtNzc4Myw3ICs3Nzg5LDcgQEAKIAkJMDdFM0RGRDAxQTlF
Nzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0VEQzNFRDFBQUNC
NzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3RUU3NkVBMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFRDFCRUE2MTk4MDBG
ODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTc5LDYgKzE0MTg1LDggQEAKIAkJQ0Q2NDFFQkQxODE5QjM1
OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EuY3BwOyBwYXRoID0gY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNW
LmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0MTI5MyAv
KiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNDE5NSw2ICsxNDIwMywxMSBAQAogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYgLyogV2Vi
V2luZG93QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViV2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QTdCQkExOTc3
MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEOEFDQTg3MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZExp
c3RlbmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThBMUQyMzk0
NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVJlbW90ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDhBQ0E4QzFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlFIC8q
IE1lZGlhUmVtb3RlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFSZW1vdGVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhC
NUE0MDE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEOEI1QTQ0MTgwREQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODA2Niw2ICsxODA3OSw4IEBACiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8q
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTA2RTgxRUVCMEFCNURBOTcw
MEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi8sCiAJCQkJMTQwMjY0
NUQwQUZEQzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8sCisJCQkJQ0Q4QUNBOEMxRDIz
OTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovLAorCQkJCUNEOEFDQThE
MUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCiAJCQkJOTM1MDBG
MzExM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJCQkJNTJG
NTJFMTAxNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovLAogCQkJ
CTRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApAQCAtMTgw
ODEsNiArMTgwOTYsOCBAQAogCQkJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9i
c2VydmVyTWFjLmNwcCAqLywKIAkJCQk0NkRCQjY0RTFBQjhDOTZGMDBEOUE4MTMgLyogUG93ZXJP
YnNlcnZlck1hYy5oICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNT
dWZmaXhNYWMubW0gKi8sCisJCQkJQ0Q4QUNBODYxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNv
bW1hbmRMaXN0ZW5lck1hYy5tbSAqLywKKwkJCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENC
MDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2
NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFC
Njk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTkyMjUsNiArMTkyNDIsNyBAQAog
CQkJCTA3RjBCOTdCMUFDNURCNDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAqLywKIAkJ
CQkyRDU5RjFCRTFBMDA0NEM2MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJ
CTJENDEzRjYwMUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKKwkJCQlDRDhBQ0E4
QTFEMjM5NDY0MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLywKIAkJCQkyRDc3QUMyNjFC
RjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi8sCiAJCQkJMkQ3N0FDMjcx
QkYyQjk4NjAwNzI0NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCAqLywKIAkJCQkyREI5QzRBOTFC
MzIzMUY0MDA3MEYyN0YgLyogTlNFdmVudFNQSS5oICovLApAQCAtMjMzMzQsNiArMjMzNTIsMTQg
QEAKIAkJCW5hbWUgPSBNZWRpYVNvdXJjZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9IGNv
Y29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q5QTM3RjUxN0M3RDkz
NjAwQzVGQTdBIC8qIG1lZGlhY29udHJvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMjUwMzQsNiArMjUwNjAsNyBAQAogCQlGRDMxNjA0MDEyQjAyNkEz
MDBDMUEzNTkgLyogYXVkaW8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLywKIAkJCQlDRDBF
RUUwRDE0NzQzRTQ4MDAzRUFGQTIgLyogaW9zICovLAogCQkJCUZEMzE2MEIwMTJCMDI3MDcwMEMx
QTM1OSAvKiBtYWMgKi8sCiAJCQkJRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJy
YXkuaCAqLywKQEAgLTI1MTM2LDcgKzI1MTYzLDggQEAKIAkJCQlDREM3MzQxMjE5Nzc4OTZDMDA0
NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKIAkJCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJG
QzUgLyogQ0FSaW5nQnVmZmVyLmggKi8sCiAJCQkJRkQzMTYwQkExMkIwMjcyQTAwQzFBMzU5IC8q
IEZGVEZyYW1lTWFjLmNwcCAqLywKLQkJCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVk
aWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8sCisJCQkJMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gKi8sCisJCQkJQ0Q2NjlENjcxRDIzMkUxMDAw
NEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDUyLDYgKzI2NDgwLDcgQEAK
IAkJCQk5M0YxOTlFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBF
Q0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzRTUx
MEExOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDcwLDYgKzI3MDk5LDcgQEAKIAkJCQk5QkRBNjREODFC
OTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlE
RTE3QjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291
cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE3RkVFQUQxNkE0RTc0QjAwNEMwQzMzIC8q
IEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBB
MDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODc5MSw2ICsyODgyMSw3IEBACiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNv
cmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3
QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0
QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEgLyogV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQwNUZFMEQwQjhCQTNDNjAw
OUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREVDOTgw
MzBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTY0Myw2ICsyOTY3NCw3IEBACiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMyODVGIC8qIENTU1Bh
cnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAyQTU0MDBFMDk5QzVBMDA0QjZEMkIgLyog
Q1NTUGFyc2VyVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkw
MEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDY2
OUQ2ODFEMjMzNjRCMDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4MEU2RDA1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYy
RDA1IC8qIENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyNzYs
NyArMzEzMDgsNyBAQAogCQkJCUM5NkY1RUM2MUI1ODcyMjYwMDkxRUE5RCAvKiBNZWRpYVNlc3Np
b25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5MEY2NTU1
MUIyMjUzQjEwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdFREMzRUUxQUFDQjc1
RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RDOEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyog
TWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMzgwLDYgKzMxNDEy
LDcgQEAKIAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNf
cnVudGltZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEOEFDQTg4MUQyMzdBQTIwMEVDQzU5RSAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQx
QTBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUNGNkJERkIwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29u
ZGl0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE4OCw2ICszMjIyMSw3IEBACiAJCQkJN0FB
M0E2OTkxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFGNzJCRjBBMTg3RkQ0NDkwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhh
bmRsZXJJT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2QTMxOTRCNUMyMjAwMUNCRDI0
IC8qIFRpbGVDb3ZlcmFnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4RTFEMjM5
NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QUEzQTY5QjE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDk4NzcwRjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29t
bWFuZExpc3RlbmVyLmNwcAppbmRleCA3YzU1NTNmNTdjNjE5NWQ1MDk3ZjNkOGE1NzgyN2E2ZTUx
NjA4MzljLi4wMzhkNzk0ZGU2NDc0Njc1ZDYyOWQ4NzNiNGUxNWMwODdmMTNiNjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAg
LTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKElP
UykKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oTUFDKQogc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAKaW5kZXggYzEwZTdkNGM3ZTA1NDAwYTQ3NTQwMjRkMjk3Njc5ZmE3ZDlmMzVhNS4u
OTcyNGJjNWI3Yjc3YmYwYTlhYmU5Nzk2NjQxMTUyYmRhNTI3MTE4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
I2lmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKE1BQykK
IHN0YXRpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIHBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlciA9IG51bGxwdHI7CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NjJmMTMwZTE2NDkxMzg5N2RiODI4NjhiNTc0MzJh
OTE2M2MyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVk
ZSAiQXVkaW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qgc2l6ZV90
IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAxMjg7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dl
clZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQoreworICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQp
LCBBdWRpbyglZCksIFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpW
aWRlbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgIGVsc2UgaWYg
KChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNl
c3Npb246OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVF
bmFibGVkKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcy
NT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKKyAgICAgICAgLy8gY2F1
c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KKworICAgICAgICBzaXplX3Qg
YnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQor
ICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7CisK
KyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShidWZmZXJTaXplKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFT
ZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGlmIChjYW5Qcm9kdWNlQXVk
aW8oKSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bjo6QW1iaWVudFNvdW5kKTsKKyAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisjZW5kaWYKK30KKworI2VuZGlm
IC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3NzMxYTYyMmViMjMxNDk2NTM4MDA3NTViYzMwNDEzM2I4Y2E4
ZjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKLQot
I2lmIFVTRShBVURJT19TRVNTSU9OKQotCi0jaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCi0jaW5j
bHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAx
Mjg7Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7
Ci0KLXZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUo
KQotewotICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRl
U2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1ZGlvKCVk
KSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50KFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykp
OwotCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQotICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtX
ZWJBdWRpb0J1ZmZlclNpemUpOwotICAgIGVsc2UgaWYgKChoYXMoUGxhdGZvcm1NZWRpYVNlc3Np
b246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYgU2V0dGlu
Z3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsKLSAgICAgICAgLy8g
RklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxp
bmcgdGhlIGNvZGUgYmVsb3cKLSAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRv
IGZhaWwgb24gMTAuOC4KLQotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsKLSAgICAgICAgaWYg
KG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRw
dXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9
IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVm
ZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNzaW9uOjpz
aGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKLSAgICB9
Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhcyhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVk
aW8pKSB7Ci0gICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKLSAgICAgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQ
bGF5YmFjayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVk
U2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKLSAgICB9
Ci0gICAgZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpCi0gICAg
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bjo6QW1iaWVudFNvdW5kKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJ
T04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9N
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmYjYxMWMxM2FjYjhiMzU1MDUw
ZmJkY2JkZTY4NzRkODUyODcxNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE3
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIkxv
Z2dpbmcuaCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oIgorCisjaW1wb3J0ICJNZWRpYVJlbW90ZVNvZnRMaW5rLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgPSBudWxscHRyOwor
CitQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXImIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpCit7CisgICAgaWYgKCFwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIpCisgICAgICAgIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciA9IG5ldyBNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjOworICAgIHJldHVybiAqcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwor
fQorCitQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOworfQorCitNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjKCkKKyAgICA6IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcigpCit7Cisg
ICAgcmVzZXRSZXN0cmljdGlvbnMoKTsKK30KKworTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6fk1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKQoreworfQorCitib29sIE1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWM6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKK3sKKyAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxC
ZWdpblBsYXliYWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMT0co
TWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2si
KTsKKyAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnJlbW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNl
c3Npb24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1v
dmVTZXNzaW9uKHNlc3Npb24pOworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWM6OnJlbW92ZVNlc3Npb24iKTsKKyAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZv
cm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKHNlc3Npb24pOworICAgIExPRyhNZWRpYSwgIk1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2siKTsKKyAgICB1cGRh
dGVOb3dQbGF5aW5nSW5mbygpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNs
aWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKQoreworICAg
IExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGlj
c0NoYW5nZWQiKTsKKyAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworfQorCitQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiogTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdpYmxlU2Vz
c2lvbigpCit7CisgICAgZm9yIChhdXRvIHNlc3Npb24gOiBzZXNzaW9ucygpKSB7CisgICAgICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSA9IHNlc3Npb24tPm1lZGlhVHlw
ZSgpOworICAgICAgICBpZiAodHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8gJiYg
dHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBpZiAoc2Vzc2lvbi0+Y2hhcmFjdGVyaXN0aWNzKCkgJiBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6SGFzQXVkaW8pCisgICAgICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9
CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
Ojp1cGRhdGVOb3dQbGF5aW5nSW5mbygpCit7CisjaWYgVVNFKE1FRElBUkVNT1RFKQorICAgIGlm
ICghaXNNZWRpYVJlbW90ZUZyYW1ld29ya0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIU1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbih0cnVl
KSkgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVO
b3dQbGF5aW5nSW5mbyAtIE1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlv
bih0cnVlKSBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IFBs
YXRmb3JtTWVkaWFTZXNzaW9uKiBjdXJyZW50U2Vzc2lvbiA9IHRoaXMtPm5vd1BsYXlpbmdFbGln
aWJsZVNlc3Npb24oKTsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6
OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gY3VycmVudFNlc3Npb24gPSAlcCIsIGN1cnJlbnRTZXNz
aW9uKTsKKworICAgIGlmICghY3VycmVudFNlc3Npb24pIHsKKyAgICAgICAgaWYgKG1fbm93UGxh
eWluZ0FjdGl2ZSkgeworICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBjbGVhcmluZyBub3cgcGxheWluZyBpbmZvIik7
CisgICAgICAgICAgICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0luZm8obnVsbHB0cik7Cisg
ICAgICAgICAgICBtX25vd1BsYXlpbmdBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIE1STWVk
aWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1S
TWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbigpLCBrTVJQbGF5YmFja1N0YXRlU3RvcHBlZCwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihNUk1lZGlhUmVtb3RlRXJyb3IgZXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVO
b3dQbGF5aW5nSW5mbyAtIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5
YmFja1N0YXRlRm9yT3JpZ2luKHN0b3BwZWQpIGZhaWxlZCB3aXRoIGVycm9yICV1ZCIsIGVycm9y
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFN0cmluZyB0aXRsZSA9IGN1cnJlbnRTZXNzaW9uLT50aXRsZSgpOworICAgIGRvdWJs
ZSBkdXJhdGlvbiA9IGN1cnJlbnRTZXNzaW9uLT5kdXJhdGlvbigpOworICAgIGRvdWJsZSByYXRl
ID0gY3VycmVudFNlc3Npb24tPnN0YXRlKCkgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlp
bmcgPyAxIDogMDsKKyAgICBpZiAobV9yZXBvcnRlZFRpdGxlID09IHRpdGxlICYmIG1fcmVwb3J0
ZWRSYXRlID09IHJhdGUgJiYgbV9yZXBvcnRlZER1cmF0aW9uID09IGR1cmF0aW9uKSB7CisgICAg
ICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJ
bmZvIC0gbm90aGluZyBuZXcgdG8gc2hvdyIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9yZXBvcnRlZFJhdGUgPSByYXRlOworICAgIG1fcmVwb3J0ZWREdXJhdGlvbiA9IGR1cmF0
aW9uOworICAgIG1fcmVwb3J0ZWRUaXRsZSA9IHRpdGxlOworCisgICAgYXV0byBjZkR1cmF0aW9u
ID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJE
b3VibGVUeXBlLCAmZHVyYXRpb24pKTsKKyAgICBhdXRvIGNmUmF0ZSA9IENGTnVtYmVyQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5cGUsICZyYXRlKTsKKworICAg
IGF1dG8gaW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCA0LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpCisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxh
eWluZ0luZm9UaXRsZSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgaWYgKHN0
ZDo6aXNmaW5pdGUoZHVyYXRpb24pICYmIGR1cmF0aW9uICE9IE1lZGlhUGxheWVyOjppbnZhbGlk
VGltZSgpKQorICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJNZWRp
YVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24sIGNmRHVyYXRpb24uZ2V0KCkpOworICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0lu
Zm9QbGF5YmFja1JhdGUsIGNmUmF0ZSk7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJy
ZW50U2Vzc2lvbi0+Y3VycmVudFRpbWUoKTsKKyAgICBhdXRvIGNmQ3VycmVudFRpbWUgPSBhZG9w
dENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5
cGUsICZjdXJyZW50VGltZSkpOworCisgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUp
ICYmIGN1cnJlbnRUaW1lICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQorICAgICAgICBD
RkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJ
bmZvRWxhcHNlZFRpbWUsIGNmQ3VycmVudFRpbWUuZ2V0KCkpOworCisgICAgTE9HKE1lZGlhLCAi
TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSB0aXRsZSA9IFwi
JXNcIiwgcmF0ZSA9ICVmLCBkdXJhdGlvbiA9ICVmLCBub3cgPSAlZiIsCisgICAgICAgIHRpdGxl
LnV0ZjgoKS5kYXRhKCksIHJhdGUsIGR1cmF0aW9uLCBjdXJyZW50VGltZSk7CisKKyAgICBtX25v
d1BsYXlpbmdBY3RpdmUgPSB0cnVlOworICAgIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBw
bGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdp
bigpLCBrTVJQbGF5YmFja1N0YXRlUGxheWluZywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
XihNUk1lZGlhUmVtb3RlRXJyb3IgZXJyb3IpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3RlU2V0
Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihwbGF5aW5nKSBmYWls
ZWQgd2l0aCBlcnJvciAldWQiLCBlcnJvcik7CisgICAgfSk7CisgICAgTVJNZWRpYVJlbW90ZVNl
dE5vd1BsYXlpbmdJbmZvKGluZm8uZ2V0KCkpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4IDgwMmZkZDEwZDA0NmZlZDYyZTE3YjQwMzRh
MjBkNmQxYmMwZWU2M2MuLmIxYTAzYzFjZWVlZDFiZjI1NWZjMWIzNzM5ODQzMmRlNTE0YjcwZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NvZnRMaW5raW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaApAQCAtMzI1
LDYgKzMyNSwyMiBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfUFJJVkFU
RV9GUkFNRVdPUktfRk9SX1NPVVJDRShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrKSBcCisg
ICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAorICAgIHZvaWQqIGZyYW1ld29yayMj
TGlicmFyeShib29sIGlzT3B0aW9uYWwgPSBmYWxzZSk7IFwKKyAgICB2b2lkKiBmcmFtZXdvcmsj
I0xpYnJhcnkoYm9vbCBpc09wdGlvbmFsKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyB2b2lk
KiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICBmcmFt
ZXdvcmtMaWJyYXJ5ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
IiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIgI2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAg
ICAgICAgICBpZiAoIWlzT3B0aW9uYWwpIFwKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9XSVRIX01FU1NBR0UoZnJhbWV3b3JrTGlicmFyeSwgIiVzIiwgZGxlcnJvcigpKTsgXAorICAg
ICAgICB9KTsgXAorICAgICAgICByZXR1cm4gZnJhbWV3b3JrTGlicmFyeTsgXAorICAgIH0gXAor
ICAgIH0KKwogI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVz
cGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKICAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCiAg
ICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5YWVl
MTM5MGRmNzU4M2QwZDBmYTU1OTJlZDBhMjViYTdmNWNiOGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0Uo
TUVESUFSRU1PVEUpCisKKyNpbmNsdWRlICJNZWRpYVJlbW90ZVNQSS5oIgorI2luY2x1ZGUgIlNv
ZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFKFdl
YkNvcmUsIE1lZGlhUmVtb3RlKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbiwgTVJPcmlnaW5SZWYs
ICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVt
b3RlLCBNUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkKiwgKE1S
TWVkaWFSZW1vdGVBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgYmxvY2spLCAoYmxvY2spKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFS
ZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIpLCAo
b2JzZXJ2ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFS
ZW1vdGUsIE1STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJyYXlS
ZWYgY29tbWFuZHMsIE1ST3JpZ2luUmVmIG9yaWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEs
IHZvaWQoXmNvbXBsZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRzLCBv
cmlnaW4sIHJlcGx5USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvQ3JlYXRlLCBN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAo
YWxsb2NhdG9yKSk7CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRp
YVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1STWVk
aWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1hbmQg
Y29tbWFuZCksIChjb21tYW5kSW5mbywgY29tbWFuZCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0
RW5hYmxlZCwgdm9pZCwgKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywg
Qm9vbGVhbiBlbmFibGVkKSwgKGNvbW1hbmRJbmZvLCBlbmFibGVkKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFu
ZEluZm9TZXRPcHRpb25zLCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1h
bmRJbmZvLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucyksIChjb21tYW5kSW5mbywgb3B0aW9ucykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJN
ZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uLCBCb29sZWFuLCAoQm9vbGVh
biBmbGFnKSwgKGZsYWcpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
TWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbywgdm9pZCwgKENGRGlj
dGlvbmFyeVJlZiBpbmZvKSwgKGluZm8pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRp
b25QbGF5YmFja1N0YXRlRm9yT3JpZ2luLCB2b2lkLCAoTVJPcmlnaW5SZWYgb3JpZ2luLCBNUlBs
YXliYWNrU3RhdGUgcGxheWJhY2tTdGF0ZSwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQo
XmNvbXBsZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvcikpLCAob3JpZ2luLCBwbGF5YmFja1N0YXRl
LCByZXBseVEsIGNvbXBsZXRpb24pKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSwgQ0ZT
dHJpbmdSZWYpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFS
ZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYp
OworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtN
Uk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYpOworU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlh
UmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUsIENGU3RyaW5nUmVmKTsKKworI2VuZGlm
IC8vIFVTRShNRURJQVJFTU9URSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
TWVkaWFSZW1vdGVTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNjAzNjM4ODczZTA1NzI3NzMxNTgy
NzQ4OTQ1OGRkMTMzZTVhZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShNRURJQVJFTU9URSkKKworI2luY2x1ZGUgIk1l
ZGlhUmVtb3RlU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5LX0ZS
QU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVHZXRMb2Nh
bE9yaWdpbiwgTVJPcmlnaW5SZWYsICgpLCAoKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUdldExv
Y2FsT3JpZ2luIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdp
bgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1S
TWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJNZWRpYVJl
bW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCisjZGVmaW5lIE1S
TWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgc29mdExpbmtfTWVkaWFSZW1v
dGVfTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVSZW1v
dmVDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIpLCAob2JzZXJ2ZXIp
KQorI2RlZmluZSBNUk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0TGlu
a19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jaworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFS
ZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJyYXlSZWYgY29tbWFuZHMsIE1S
T3JpZ2luUmVmIG9yaWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQoXmNvbXBsZXRp
b24pKE1STWVkaWFSZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRzLCBvcmlnaW4sIHJlcGx5USwg
Y29tcGxldGlvbikpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcyBz
b2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlh
UmVtb3RlQ29tbWFuZEluZm9DcmVhdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciksIChhbGxvY2F0b3IpKTsKKyNkZWZpbmUgTVJNZWRpYVJl
bW90ZUNvbW1hbmRJbmZvQ3JlYXRlIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVD
b21tYW5kSW5mb0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
TWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQsIHZvaWQsIChN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIE1STWVkaWFSZW1vdGVDb21t
YW5kIGNvbW1hbmQpLCAoY29tbWFuZEluZm8sIGNvbW1hbmQpKQorI2RlZmluZSBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9TZXRDb21tYW5kIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1NldENvbW1hbmQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkLCB2
b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBCb29sZWFuIGVu
YWJsZWQpLCAoY29tbWFuZEluZm8sIGVuYWJsZWQpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9TZXRFbmFibGVkIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVDb21t
YW5kSW5mb1NldEVuYWJsZWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRPcHRpb25zLCB2b2lkLCAo
TVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBDRkRpY3Rpb25hcnlSZWYg
b3B0aW9ucyksIChjb21tYW5kSW5mbywgb3B0aW9ucykpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1NldE9wdGlvbnMgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvU2V0T3B0aW9ucworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlv
biwgQm9vbGVhbiwgKEJvb2xlYW4gZmxhZyksIChmbGFnKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90
ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVk
aWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbgorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5
aW5nSW5mbywgdm9pZCwgKENGRGljdGlvbmFyeVJlZiBpbmZvKSwgKGluZm8pKQorI2RlZmluZSBN
Uk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0luZm8gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRp
YVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihX
ZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlv
blBsYXliYWNrU3RhdGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1SUGxh
eWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZChe
Y29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3RhdGUs
IHJlcGx5USwgY29tcGxldGlvbikpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5n
QXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luIHNvZnRMaW5rX01lZGlhUmVtb3RlX01S
TWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2lu
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01S
TWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIGtN
Uk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSBnZXRfTWVkaWFSZW1vdGVfa01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRp
b24sIENGU3RyaW5nUmVmKTsKKyNkZWZpbmUga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1
cmF0aW9uIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRp
b24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUs
IGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYpOwor
I2RlZmluZSBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRWxhcHNlZFRpbWUgZ2V0X01lZGlh
UmVtb3RlX2tNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1v
dGVOb3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBrTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlIGdldF9NZWRpYVJlbW90ZV9rTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlKCkKKworI2VuZGlmIC8vIFVTRShN
RURJQVJFTU9URSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQwODRlNjhiYTQyYzI3ZGRkMGRj
M2VjNjEwNTYzNzUyNGQxNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hY19oCisjZGVmaW5lIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hY19oCisKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kTGlzdGVu
ZXIuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYyA6IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIg
eworcHVibGljOgorICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYyhSZW1vdGVDb21tYW5kTGlz
dGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoKTsK
KworcHJvdGVjdGVkOgorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KworICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gbV93ZWFrUHRy
RmFjdG9yeSB7IHRoaXMgfTsKKyAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsgbnVsbHB0ciB9
OworfTsKKyAgICAKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2VuZGlmIC8vIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmIyNjcz
MzUxY2NjMGUxODBjOTYwYmM0YmI5ODJhNWI4NDBhMTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpAQCAt
MCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKKyNpbXBvcnQg
Ik1lZGlhUmVtb3RlU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNy
ZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+KGNsaWVudCk7Cit9CisK
K1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKFJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyKGNsaWVudCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKCFpc01lZGlhUmVt
b3RlRnJhbWV3b3JrQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBj
b25zdCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBzdXBwb3J0ZWRDb21tYW5kc1tdID0geworICAgICAg
ICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBsYXksCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
UGF1c2UsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xlUGxheVBhdXNlLAorICAg
ICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgICAgIE1STWVk
aWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kQmVnaW5SZXdpbmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAor
ICAgIH07CisKKyAgICBhdXRvIGNvbW1hbmRJbmZvQXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNpemVvZihzdXBwb3J0ZWRDb21tYW5kcykg
LyBzaXplb2YoTVJNZWRpYVJlbW90ZUNvbW1hbmQpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7
CisKKyAgICBmb3IgKGF1dG8gY29tbWFuZCA6IHN1cHBvcnRlZENvbW1hbmRzKSB7CisgICAgICAg
IGF1dG8gY29tbWFuZEluZm8gPSBhZG9wdENGKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb0NyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0KSk7CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kSW5m
b1NldENvbW1hbmQoY29tbWFuZEluZm8uZ2V0KCksIGNvbW1hbmQpOworICAgICAgICBNUk1lZGlh
UmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKGNvbW1hbmRJbmZvLmdldCgpLCB0cnVlKTsKKyAg
ICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCksIGNvbW1hbmRJ
bmZvLmdldCgpKTsKKyAgICB9CisKKyAgICBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFu
ZHMoY29tbWFuZEluZm9BcnJheS5nZXQoKSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luKCks
IG51bGxwdHIsIG51bGxwdHIpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIo
KTsKKyAgICBtX2NvbW1hbmRIYW5kbGVyID0gTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhh
bmRsZXJCbG9jayheKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJl
ZiBvcHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSkgeworICAgICAgICBVTlVT
RURfUEFSQU0ob3B0aW9ucyk7CisKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQgeyBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6Tm9Db21tYW5kIH07CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNh
c2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQbGF5OgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5k
ID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQYXVzZToKKyAgICAgICAgICAgIHBs
YXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQ7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVBs
YXlQYXVzZToKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpUb2dnbGVQbGF5UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3YXJkOgorICAgICAgICAgICAg
cGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0Zvcndh
cmRDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90
ZUNvbW1hbmRFbmRGYXN0Rm9yd2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kOgor
ICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2lu
U2Vla2luZ0JhY2t3YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kOgorICAgICAgICAgICAgcGxhdGZvcm1Db21t
YW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICB9OworCisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5tX2NsaWVudC5kaWRSZWNlaXZlUmVt
b3RlQ29udHJvbENvbW1hbmQocGxhdGZvcm1Db21tYW5kKTsKKyAgICAgICAgY29tcGxldGlvbihz
dGF0aWNfY2FzdDxDRkFycmF5UmVmPihAW0AwXSkpOworICAgIH0pOworI2VuZGlmIC8vIFVTRShN
RURJQVJFTU9URSkKK30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjp+UmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWFjKCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKG1fY29tbWFu
ZEhhbmRsZXIpCisgICAgICAgIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2Nr
KG1fY29tbWFuZEhhbmRsZXIpOworI2VuZGlmCit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDVkMTM4ZjMzODAxZGMwMWYzNjJjMjkwNjYzMDQxODY2MTdhNDJiZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTWVkaWFSZW1vdGVTUEkuaApAQCAt
MCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElB
UkVNT1RFKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPE1lZGlh
UmVtb3RlL01lZGlhUmVtb3RlLmg+CisKKyNlbHNlCisKK2VudW0geworICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kUGxheSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAorICAgIE1STWVk
aWFSZW1vdGVDb21tYW5kVG9nZ2xlUGxheVBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
U3RvcCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZE5leHRUcmFjaywKKyAgICBNUk1lZGlhUmVt
b3RlQ29tbWFuZFByZXZpb3VzVHJhY2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNl
U2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlUmVwZWF0TW9kZSwK
KyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgTVJNZWRpYVJl
bW90ZUNvbW1hbmRFbmRGYXN0Rm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2lu
UmV3aW5kLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kUmV3aW5kMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRmFz
dEZvcndhcmQxNVNlY29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRSZXdpbmQzMFNlY29u
ZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRGYXN0Rm9yd2FyZDMwU2Vjb25kcywKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVJlY29yZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZFNraXBGb3J3YXJkLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU2tpcEJhY2t3YXJkLAorICAg
IE1STWVkaWFSZW1vdGVDb21tYW5kQ2hhbmdlUGxheWJhY2tSYXRlLAorICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kUmF0ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kTGlrZVRyYWNrLAor
ICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRGlzbGlrZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVD
b21tYW5kQm9va21hcmtUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNlZWtUb1BsYXli
YWNrUG9zaXRpb24sCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRDaGFuZ2VSZXBlYXRNb2RlLAor
ICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQ2hhbmdlU2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJl
bW90ZUNvbW1hbmRFbmFibGVMYW5ndWFnZU9wdGlvbiwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZERpc2FibGVMYW5ndWFnZU9wdGlvbgorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJNZWRpYVJlbW90
ZUNvbW1hbmQ7CisKK2VudW0geworICAgIGtNUlBsYXliYWNrU3RhdGVVbmtub3duID0gMCwKKyAg
ICBrTVJQbGF5YmFja1N0YXRlUGxheWluZywKKyAgICBrTVJQbGF5YmFja1N0YXRlUGF1c2VkLAor
ICAgIGtNUlBsYXliYWNrU3RhdGVTdG9wcGVkLAorICAgIGtNUlBsYXliYWNrU3RhdGVJbnRlcnJ1
cHRlZAorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJQbGF5YmFja1N0YXRlOworCit0eXBlZGVmIHVp
bnQzMl90IE1STWVkaWFSZW1vdGVFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9NUk9yaWdpbiAqTVJP
cmlnaW5SZWY7Cit0eXBlZGVmIHN0cnVjdCBfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvICpNUk1l
ZGlhUmVtb3RlQ29tbWFuZEluZm9SZWY7Cit0eXBlZGVmIHZvaWQoXk1STWVkaWFSZW1vdGVBc3lu
Y0NvbW1hbmRIYW5kbGVyQmxvY2spKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGlj
dGlvbmFyeVJlZiBvcHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSk7CisKK1dU
Rl9FWFRFUk5fQ19CRUdJTgorCisjcHJhZ21hIG1hcmsgLSBNUlJlbW90ZUNvbnRyb2wKKwordm9p
ZCogTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhNUk1lZGlhUmVtb3Rl
QXN5bmNDb21tYW5kSGFuZGxlckJsb2NrKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVJlbW92ZUNvbW1h
bmRIYW5kbGVyQmxvY2sodm9pZCAqb2JzZXJ2ZXIpOwordm9pZCBNUk1lZGlhUmVtb3RlU2V0U3Vw
cG9ydGVkQ29tbWFuZHMoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5SZWYsIGRpc3BhdGNo
X3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IgZXJy
KSk7CisKKyNwcmFnbWEgbWFyayAtIE1ST3JpZ2luCisKK01ST3JpZ2luUmVmIE1STWVkaWFSZW1v
dGVHZXRMb2NhbE9yaWdpbigpOworCisjcHJhZ21hIG1hcmsgLSBNUkNvbW1hbmRJbmZvCisKK01S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUo
Q0ZBbGxvY2F0b3JSZWYpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5k
KE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgTVJNZWRpYVJlbW90ZUNvbW1hbmQpOwordm9p
ZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKE1STWVkaWFSZW1vdGVDb21tYW5k
SW5mb1JlZiwgQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlv
bnMoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmLCBDRkRpY3Rpb25hcnlSZWYpOworCisjcHJh
Z21hIG1hcmsgLSBNUk5vd1BsYXlpbmcKKworQm9vbGVhbiBNUk1lZGlhUmVtb3RlU2V0Q2FuQmVO
b3dQbGF5aW5nQXBwbGljYXRpb24oQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVTZXROb3dQ
bGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1ST3JpZ2luUmVmLCBNUlBs
YXliYWNrU3RhdGUsIGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShN
Uk1lZGlhUmVtb3RlRXJyb3IpKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZv
KENGRGljdGlvbmFyeVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpp
bmRleCBmMGUxZTFkNjM3MTc4MTc3MDg3MWJjZTkyZGM5Nzc1YWE4Mjc5ODlkLi5mN2JhMTJlZmZl
MGU0YzY3ZDEzMzM3MmZhMTk4MDQ2NWNjNWY3ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTIwMCw2ICsyMDAs
OSBAQAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5mbG93LWRpdmVydC10
b2tlbiIpCiAjZW5kaWYKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTIwMAorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQor
I2VuZGlmCiApCiAKIDs7IFNlY3VyaXR5IGZyYW1ld29yawo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282347</attachid>
            <date>2016-06-29 08:19:31 -0700</date>
            <delta_ts>2016-06-29 08:51:39 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-159250-20160629081911.patch</filename>
            <type>text/plain</type>
            <size>64490</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjQ1NmUwOTZkNmI4NDI2Mjg0OWE1MmYwMjY5M2I2Mjk5OWZmYWRl
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVVNFX01FRElBUkVNT1RFLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTYtMDYtMjggIFRvbWFzIFBvcGVsYSAg
PHRwb3BlbGFAcmVkaGF0LmNvbT4KIAogICAgICAgICBUSFVNQjIgc3VwcG9ydCBub3QgY29ycmVj
dGx5IGRldGVjdGVkIG9uIEZlZG9yYSB3aXRoIEdDQyA2LjEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmNDVl
Y2U5YjgzOTA1MDNlYWIzNzcxMjljYTA5ZGI2N2NiMTVmYS4uZTdlMWQ3NmYzNTk5MWU3YTgxNDBm
MWI5MmY1M2ZiNDkwOTJhZjQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA2
LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1l
ZGlhUmVtb3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU5MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRvcHQgTWVkaWFSZW1vdGUgYW5kIHVzZSB0aGUgZnJhbWV3b3JrIHRvIGltcGxlbWVudCBN
ZWRpYVNlc3Npb25NYW5hZ2VNYWMKKyAgICAgICAgYW5kIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcC4KKyAgICAgICAgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vz
c2lvblN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp+TWVkaWFTZXNzaW9u
TWFuYWdlck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6cmVtb3ZlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdp
YmxlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU29mdExpbmtp
bmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OmNyZWF0ZVdl
YWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
bW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9z
cGkvbWFjL01lZGlhUmVtb3RlU1BJLmg6IEFkZGVkLgorCiAyMDE2LTA2LTI3ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENyb3NzLWRvbWFpbiB2aWRlbyBsb2Fk
cyBkbyBub3QgcHJvbXB0IGZvciBhdXRob3JpemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1ZjA0MWRj
ODYyY2Q4OTgwYTFhYTk5ZWQwYWU2ZmJjZWM0NzdlNDguLjM0MzVkNTEzNTkyMjU4M2FjZTg3NmM3
NTE1ZGYyN2RjMzUwMjY3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNi0y
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRp
YVJlbW90ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1v
dGVkIFhQQyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxv
bmdlciBlbnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2Zl
ODhmNmYzOGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJl
ZWRjYmI4MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2Vu
ZGlmIC8qIFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGIzYjk1NDI4ZThlN2ZmMTgxYzVl
ZTBlM2UyM2UyNDE2NjQyN2RiYS4uYjRmZmI3ZDYxMTllMGEzMTc3MGY4ODY4ZDU5ZmVkMDJmMzNl
NDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcApAQCAtMTU4Niw3ICsxNTg2LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBQ
YXMKICAgICAgICAgaWYgKG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKQogICAgICAgICAgICAg
bV90aW1lc3RhbXBPZmZzZXQgPSBmcmFtZUVuZFRpbWVzdGFtcDsKIAotICAgICAgICBtX2J1ZmZl
cmVkLT5hZGQocHJlc2VudGF0aW9uVGltZXN0YW1wLnRvRG91YmxlKCksIChwcmVzZW50YXRpb25U
aW1lc3RhbXAgKyBmcmFtZUR1cmF0aW9uICsgbWljcm9zZWNvbmQpLnRvRG91YmxlKCkpOworICAg
ICAgICBtX2J1ZmZlcmVkLT5hZGQocHJlc2VudGF0aW9uVGltZXN0YW1wLnRvRG91YmxlKCksIChw
cmVzZW50YXRpb25UaW1lc3RhbXAgKyBmcmFtZUR1cmF0aW9uKS50b0RvdWJsZSgpKTsKICAgICAg
ICAgbV9idWZmZXJlZFNpbmNlTGFzdE1vbml0b3IgKz0gZnJhbWVEdXJhdGlvbi50b0RvdWJsZSgp
OwogICAgICAgICBzZXRCdWZmZXJlZERpcnR5KHRydWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBjMTY1YzU1NDkxOGMz
YTQzY2JiZmEwM2EyMDBhM2U0YzkxNzAyMy4uYzM4OWY1YzdhMTFkZWYyNDkyNGRiNTFhNDY5ZDEx
MmFjNjQ4MWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzE5LDcgKzMxOSw3IEBACiAJCTA3RTNERkQxMUE5RTc4NjUwMDc2
NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5
YmFja1RhcmdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3RTlFMTJFMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3RTlFMTJEMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1By
aXZhdGVBVkYuaCAqLzsgfTsKIAkJMDdFOUUxMzAxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLzsgfTsKLQkJMDdFREMzRUUxQUFDQjc1RDAw
OTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovOyB9OworCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNF
QjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjLm1tICovOyB9OwogCQkwN0VFNzZFQjFCRTk2REIwMDBGODkxMzMgLyog
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlLmNwcCAqLzsgfTsKIAkJMDdFRTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0VFNzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaCAqLzsgfTsKIAkJMDdFRTc2RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMuaCAqLzsgfTsKQEAgLTYxMjQsNiArNjEyNCw3IEBACiAJCUNENjQxRUI0MTgxOEY1
RUQwMEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291
cmNlQnVmZmVyUHJpdmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyog
TWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZv
dW5kYXRpb24uY3BwICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFU
aW1lQVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9u
LmggKi87IH07CisJCUNENjY5RDY4MUQyMzM2NEIwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5j
cHAgKi87IH07CiAJCUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEN0QzMzQxMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAq
LzsgfTsKIAkJQ0Q3RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0Qz
MzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CiAJ
CUNEN0QzMzQ3MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJG
MDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OwpAQCAtNjEzOSw2ICs2MTQw
LDExIEBACiAJCUNEODIwMzExMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMw
RjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovOyB9OwogCQlDRDhB
N0JCQjE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBN0JCOTE5Nzcz
NUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi87IH07CiAJCUNE
OEE3QkJDMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQkExOTc3
MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi87IH07CisJCUNE
OEFDQTg4MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NjFEMjM3
QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tICovOyB9OworCQlDRDhB
Q0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEy
MDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CisJCUNEOEFDQThC
MUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBOEExRDIzOTQ2NDAwRUNDNTlFIC8qIE1l
ZGlhUmVtb3RlU1BJLmggKi87IH07CisJCUNEOEFDQThFMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEOEFDQThDMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5r
LmNwcCAqLzsgfTsKKwkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29m
dExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
OEFDQThEMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJ
CUNEOEI1QTQyMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEOEI1QTQwMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSAqLzsgfTsKIAkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0Q4QjVBNDYxODBERkY0RTAw
OEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVv
VHJhY2tNZWRpYVNvdXJjZS5oICovOyB9OwpAQCAtNzc4Myw3ICs3Nzg5LDcgQEAKIAkJMDdFM0RG
RDAxQTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0VEQzNF
RDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAv
KiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3RUU3NkVBMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFRDFCRUE2
MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTc5LDYgKzE0MTg1LDggQEAKIAkJQ0Q2NDFFQkQx
ODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDY0MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EuY3BwOyBwYXRoID0gY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmNwcDsgcGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4
ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0
MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDb3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNDE5NSw2ICsxNDIwMywxMSBAQAogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYg
LyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViV2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QTdC
QkExOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEOEFDQTg3MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5k
TGlzdGVuZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThB
MUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVJlbW90ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDhBQ0E4QzFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlbW90ZVNvZnRMaW5r
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUND
NTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFSZW1vdGVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDhCNUE0MDE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEOEI1QTQ0MTgwREQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODA2Niw2ICsxODA3OSw4IEBACiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3
ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTA2RTgxRUVCMEFC
NURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi8sCiAJCQkJ
MTQwMjY0NUQwQUZEQzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8sCisJCQkJQ0Q4QUNB
OEMxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovLAorCQkJCUNE
OEFDQThEMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCiAJCQkJ
OTM1MDBGMzExM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJ
CQkJNTJGNTJFMTAxNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICov
LAogCQkJCTRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApA
QCAtMTgwODEsNiArMTgwOTYsOCBAQAogCQkJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQ
b3dlck9ic2VydmVyTWFjLmNwcCAqLywKIAkJCQk0NkRCQjY0RTFBQjhDOTZGMDBEOUE4MTMgLyog
UG93ZXJPYnNlcnZlck1hYy5oICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQ
dWJsaWNTdWZmaXhNYWMubW0gKi8sCisJCQkJQ0Q4QUNBODYxRDIzN0FBMjAwRUNDNTlFIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbSAqLywKKwkJCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1
OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURC
NzAwNENCMDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5
QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdG
MTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTkyMjUsNiArMTkyNDIs
NyBAQAogCQkJCTA3RjBCOTdCMUFDNURCNDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAq
LywKIAkJCQkyRDU5RjFCRTFBMDA0NEM2MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICov
LAogCQkJCTJENDEzRjYwMUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKKwkJCQlD
RDhBQ0E4QTFEMjM5NDY0MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLywKIAkJCQkyRDc3
QUMyNjFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi8sCiAJCQkJMkQ3
N0FDMjcxQkYyQjk4NjAwNzI0NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCAqLywKIAkJCQkyREI5
QzRBOTFCMzIzMUY0MDA3MEYyN0YgLyogTlNFdmVudFNQSS5oICovLApAQCAtMjMzMzQsNiArMjMz
NTIsMTQgQEAKIAkJCW5hbWUgPSBNZWRpYVNvdXJjZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q2NjlENjYxRDIzMkRGRjAw
NEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8sCisJCQkpOworCQkJbmFt
ZSA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q5QTM3RjUx
N0M3RDkzNjAwQzVGQTdBIC8qIG1lZGlhY29udHJvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjUwMzQsNiArMjUwNjAsNyBAQAogCQlGRDMxNjA0MDEy
QjAyNkEzMDBDMUEzNTkgLyogYXVkaW8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLywKIAkJ
CQlDRDBFRUUwRDE0NzQzRTQ4MDAzRUFGQTIgLyogaW9zICovLAogCQkJCUZEMzE2MEIwMTJCMDI3
MDcwMEMxQTM1OSAvKiBtYWMgKi8sCiAJCQkJRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvQXJyYXkuaCAqLywKQEAgLTI1MTM2LDcgKzI1MTYzLDggQEAKIAkJCQlDREM3MzQxMjE5Nzc4
OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKIAkJCQlDREM3MzQxMzE5Nzc4OTZD
MDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmggKi8sCiAJCQkJRkQzMTYwQkExMkIwMjcyQTAwQzFB
MzU5IC8qIEZGVEZyYW1lTWFjLmNwcCAqLywKLQkJCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUg
LyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8sCisJCQkJMDdFREMzRUQxQUFDQjc1RDAw
OTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gKi8sCisJCQkJQ0Q2NjlENjcxRDIz
MkUxMDAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDUyLDYgKzI2NDgw
LDcgQEAKIAkJCQk5M0YxOTlFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8q
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhBQ0E4RjFEMjM5
NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0MzRTUxMEExOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDcwLDYgKzI3MDk5LDcgQEAKIAkJCQk5QkRB
NjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDlERTE3QjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJl
bW90ZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8q
IEpTU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE3RkVFQUQxNkE0RTc0QjAwNEMw
QzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2
QTQ4NjBBMDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODc5MSw2ICsyODgyMSw3IEBACiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8q
IFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMx
MTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDNUI0QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExp
c3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEg
LyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQwNUZFMEQwQjhC
QTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
REVDOTgwMzBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTY0Myw2ICsyOTY3NCw3IEBACiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMyODVGIC8q
IENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAyQTU0MDBFMDk5QzVBMDA0QjZE
MkIgLyogQ1NTUGFyc2VyVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIy
ODgzRTkwMEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRDY2OUQ2ODFEMjMzNjRCMDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2RDA1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThE
RjAwQjYyRDA1IC8qIENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzEyNzYsNyArMzEzMDgsNyBAQAogCQkJCUM5NkY1RUM2MUI1ODcyMjYwMDkxRUE5RCAvKiBNZWRp
YVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5
MEY2NTU1MUIyMjUzQjEwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5h
Z2VySU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdFREMzRUUx
QUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0RDOEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJp
dmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAx
RUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMzgwLDYg
KzMxNDEyLDcgQEAKIAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2lu
c3RhbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8q
IG9iamNfcnVudGltZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEOEFDQTg4MUQyMzdBQTIwMEVD
QzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTU2OUQxQTBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUNGNkJERkIwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmls
dGVyQ29uZGl0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE4OCw2ICszMjIyMSw3IEBACiAJ
CQkJN0FBM0E2OTkxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFGNzJCRjBBMTg3RkQ0NDkwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1l
bW9yeUhhbmRsZXJJT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2QTMxOTRCNUMyMjAw
MUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4
RTFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QUEzQTY5QjE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDk4NzcwRjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVt
b3RlQ29tbWFuZExpc3RlbmVyLmNwcAppbmRleCA3YzU1NTNmNTdjNjE5NWQ1MDk3ZjNkOGE1Nzgy
N2E2ZTUxNjA4MzljLi4wMzhkNzk0ZGU2NDc0Njc1ZDYyOWQ4NzNiNGUxNWMwODdmMTNiNjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRG
T1JNKElPUykKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oTUFDKQogc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVh
dGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihjbGllbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKaW5kZXggYzEwZTdkNGM3ZTA1NDAwYTQ3NTQwMjRkMjk3Njc5ZmE3ZDlm
MzVhNS4uOTcyNGJjNWI3Yjc3YmYwYTlhYmU5Nzk2NjQxMTUyYmRhNTI3MTE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JN
KE1BQykKIHN0YXRpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIHBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlciA9IG51bGxwdHI7CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NjJmMTMwZTE2NDkxMzg5N2RiODI4Njhi
NTc0MzJhOTE2M2MyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0wLDAgKzEsNzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisj
aW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qg
c2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAxMjg7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtM
b3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQoreworICAgIExPRyhNZWRpYSwgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlk
ZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpWaWRlbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgIGVs
c2UgaWYgKChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1N
ZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZl
clNpemVFbmFibGVkKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9i
LzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKKyAgICAgICAg
Ly8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KKworICAgICAgICBz
aXplX3QgYnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYm
IG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9k
ZSgpKQorICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNp
emU7CisKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAg
aWYgKCFTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8
IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGlmIChjYW5Qcm9k
dWNlQXVkaW8oKSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNl
dENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlv
U2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKKyAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisjZW5kaWYKK30KKwor
I2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzMxYTYyMmViMjMxNDk2NTM4MDA3NTViYzMwNDEz
M2I4Y2E4ZjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aCIKLQotI2lmIFVTRShBVURJT19TRVNTSU9OKQotCi0jaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgi
Ci0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNp
emUgPSAxMjg7Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9
IDQwOTY7Ci0KLXZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9u
U3RhdGUoKQotewotICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6
dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1
ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50KFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJB
dWRpbykpOwotCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQot
ICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOwotICAgIGVsc2UgaWYgKChoYXMoUGxhdGZvcm1NZWRp
YVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYg
U2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsKLSAgICAg
ICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkg
ZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKLSAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRl
c3RzIHRvIGZhaWwgb24gMTAuOC4KLQotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsKLSAgICAg
ICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVy
LT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQotICAgICAgICAgICAgYnVmZmVy
U2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsK
LSAgICB9Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFTZXR0aW5nczo6c2hvdWxkTWFu
YWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhh
cyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6QXVkaW8pKSB7Ci0gICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKLSAgICAgICAgICAg
IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6
TWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsK
LSAgICB9Ci0gICAgZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykp
Ci0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlv
U2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gVVNFKEFVRElP
X1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
TWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzkzZWYzODI0NzIyNjU2
MjI1MDFhN2VlZDA0ZmRiNjBiOGUyZjc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaApAQCAtMCwwICsx
LDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgV2ViTWVkaWFTZXNzaW9uSGVscGVyOworCisjaWYg
ZGVmaW5lZChfX09CSkNfXykgJiYgX19PQkpDX18KK2V4dGVybiBOU1N0cmluZyogV2ViVUlBcHBs
aWNhdGlvbldpbGxSZXNpZ25BY3RpdmVOb3RpZmljYXRpb247CitleHRlcm4gTlNTdHJpbmcqIFdl
YlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uOworZXh0ZXJuIE5T
U3RyaW5nKiBXZWJVSUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uOworZXh0
ZXJuIE5TU3RyaW5nKiBXZWJVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0
aW9uOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTZXNzaW9u
TWFuYWdlck1hYyA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKTsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworCisgICAgTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYygpOworCisgICAgdm9pZCByZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVk
aWFTZXNzaW9uJikgb3ZlcnJpZGU7CisKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFj
ayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vzc2lvbldpbGxF
bmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xp
ZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRl
OworCisgICAgdm9pZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb24qIG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKKworICAgIGRvdWJsZSBtX3Jl
cG9ydGVkUmF0ZSB7IDAgfTsKKyAgICBkb3VibGUgbV9yZXBvcnRlZER1cmF0aW9uIHsgMCB9Owor
ICAgIFN0cmluZyBtX3JlcG9ydGVkVGl0bGU7CisgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmYjYxMWMxM2FjYjhiMzU1MDUwZmJkY2JkZTY4NzRk
ODUyODcxNzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNp
bXBvcnQgIk1lZGlhUGxheWVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgor
CisjaW1wb3J0ICJNZWRpYVJlbW90ZVNvZnRMaW5rLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgPSBudWxscHRyOworCitQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXImIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpCit7CisgICAgaWYgKCFwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIpCisgICAgICAg
IHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciA9IG5ldyBNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
OworICAgIHJldHVybiAqcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworfQorCitQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIqIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcklmRXhpc3RzKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOworfQorCitNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
KCkKKyAgICA6IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcigpCit7CisgICAgcmVzZXRSZXN0
cmljdGlvbnMoKTsKK30KKworTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6fk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMoKQoreworfQorCitib29sIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnNlc3Npb25X
aWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBp
ZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNr
KHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMT0coTWVkaWEsICJNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2siKTsKKyAgICB1cGRh
dGVOb3dQbGF5aW5nSW5mbygpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWM6OnJlbW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Np
b24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVTZXNzaW9uKHNl
c3Npb24pOworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnJlbW92ZVNl
c3Npb24iKTsKKyAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Np
b24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrKHNlc3Npb24pOworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2siKTsKKyAgICB1cGRhdGVOb3dQbGF5aW5n
SW5mbygpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKQoreworICAgIExPRyhNZWRpYSwg
Ik1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQiKTsK
KyAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworfQorCitQbGF0Zm9ybU1lZGlhU2Vzc2lvbiog
TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpCit7Cisg
ICAgZm9yIChhdXRvIHNlc3Npb24gOiBzZXNzaW9ucygpKSB7CisgICAgICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSA9IHNlc3Npb24tPm1lZGlhVHlwZSgpOworICAgICAg
ICBpZiAodHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8gJiYgdHlwZSAhPSBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICBpZiAoc2Vzc2lvbi0+Y2hhcmFjdGVyaXN0aWNzKCkgJiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
SGFzQXVkaW8pCisgICAgICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9CisKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQ
bGF5aW5nSW5mbygpCit7CisjaWYgVVNFKE1FRElBUkVNT1RFKQorICAgIGlmICghaXNNZWRpYVJl
bW90ZUZyYW1ld29ya0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIU1S
TWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbih0cnVlKSkgeworICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5m
byAtIE1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbih0cnVlKSBmYWls
ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uKiBjdXJyZW50U2Vzc2lvbiA9IHRoaXMtPm5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24o
KTsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1Bs
YXlpbmdJbmZvIC0gY3VycmVudFNlc3Npb24gPSAlcCIsIGN1cnJlbnRTZXNzaW9uKTsKKworICAg
IGlmICghY3VycmVudFNlc3Npb24pIHsKKyAgICAgICAgaWYgKG1fbm93UGxheWluZ0FjdGl2ZSkg
eworICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRl
Tm93UGxheWluZ0luZm8gLSBjbGVhcmluZyBub3cgcGxheWluZyBpbmZvIik7CisgICAgICAgICAg
ICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0luZm8obnVsbHB0cik7CisgICAgICAgICAgICBt
X25vd1BsYXlpbmdBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIE1STWVkaWFSZW1vdGVTZXRO
b3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1STWVkaWFSZW1vdGVH
ZXRMb2NhbE9yaWdpbigpLCBrTVJQbGF5YmFja1N0YXRlU3RvcHBlZCwgZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgXihNUk1lZGlhUmVtb3RlRXJyb3IgZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5m
byAtIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9y
T3JpZ2luKHN0b3BwZWQpIGZhaWxlZCB3aXRoIGVycm9yICV1ZCIsIGVycm9yKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmlu
ZyB0aXRsZSA9IGN1cnJlbnRTZXNzaW9uLT50aXRsZSgpOworICAgIGRvdWJsZSBkdXJhdGlvbiA9
IGN1cnJlbnRTZXNzaW9uLT5kdXJhdGlvbigpOworICAgIGRvdWJsZSByYXRlID0gY3VycmVudFNl
c3Npb24tPnN0YXRlKCkgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlpbmcgPyAxIDogMDsK
KyAgICBpZiAobV9yZXBvcnRlZFRpdGxlID09IHRpdGxlICYmIG1fcmVwb3J0ZWRSYXRlID09IHJh
dGUgJiYgbV9yZXBvcnRlZER1cmF0aW9uID09IGR1cmF0aW9uKSB7CisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gbm90aGlu
ZyBuZXcgdG8gc2hvdyIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9yZXBvcnRl
ZFJhdGUgPSByYXRlOworICAgIG1fcmVwb3J0ZWREdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIG1f
cmVwb3J0ZWRUaXRsZSA9IHRpdGxlOworCisgICAgYXV0byBjZkR1cmF0aW9uID0gYWRvcHRDRihD
Rk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJEb3VibGVUeXBlLCAm
ZHVyYXRpb24pKTsKKyAgICBhdXRvIGNmUmF0ZSA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5cGUsICZyYXRlKTsKKworICAgIGF1dG8gaW5mbyA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCA0
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CisgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpCisgICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRs
ZSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgaWYgKHN0ZDo6aXNmaW5pdGUo
ZHVyYXRpb24pICYmIGR1cmF0aW9uICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQorICAg
ICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJNZWRpYVJlbW90ZU5vd1Bs
YXlpbmdJbmZvRHVyYXRpb24sIGNmRHVyYXRpb24uZ2V0KCkpOworICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1Jh
dGUsIGNmUmF0ZSk7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJyZW50U2Vzc2lvbi0+
Y3VycmVudFRpbWUoKTsKKyAgICBhdXRvIGNmQ3VycmVudFRpbWUgPSBhZG9wdENGKENGTnVtYmVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5cGUsICZjdXJyZW50
VGltZSkpOworCisgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUpICYmIGN1cnJlbnRU
aW1lICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQorICAgICAgICBDRkRpY3Rpb25hcnlT
ZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRWxhcHNlZFRp
bWUsIGNmQ3VycmVudFRpbWUuZ2V0KCkpOworCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSB0aXRsZSA9IFwiJXNcIiwgcmF0ZSA9
ICVmLCBkdXJhdGlvbiA9ICVmLCBub3cgPSAlZiIsCisgICAgICAgIHRpdGxlLnV0ZjgoKS5kYXRh
KCksIHJhdGUsIGR1cmF0aW9uLCBjdXJyZW50VGltZSk7CisKKyAgICBtX25vd1BsYXlpbmdBY3Rp
dmUgPSB0cnVlOworICAgIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5
YmFja1N0YXRlRm9yT3JpZ2luKE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbigpLCBrTVJQbGF5
YmFja1N0YXRlUGxheWluZywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihNUk1lZGlhUmVt
b3RlRXJyb3IgZXJyb3IpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0Fw
cGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihwbGF5aW5nKSBmYWlsZWQgd2l0aCBlcnJv
ciAldWQiLCBlcnJvcik7CisgICAgfSk7CisgICAgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJ
bmZvKGluZm8uZ2V0KCkpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
b2Z0TGlua2luZy5oCmluZGV4IDgwMmZkZDEwZDA0NmZlZDYyZTE3YjQwMzRhMjBkNmQxYmMwZWU2
M2MuLmIxYTAzYzFjZWVlZDFiZjI1NWZjMWIzNzM5ODQzMmRlNTE0YjcwZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NvZnRMaW5raW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaApAQCAtMzI1LDYgKzMyNSwyMiBA
QAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktf
Rk9SX1NPVVJDRShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrKSBcCisgICAgbmFtZXNwYWNl
IGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAorICAgIHZvaWQqIGZyYW1ld29yayMjTGlicmFyeShib29s
IGlzT3B0aW9uYWwgPSBmYWxzZSk7IFwKKyAgICB2b2lkKiBmcmFtZXdvcmsjI0xpYnJhcnkoYm9v
bCBpc09wdGlvbmFsKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyB2b2lkKiBmcmFtZXdvcmtM
aWJyYXJ5OyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsgXAorICAgICAg
ICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICBmcmFtZXdvcmtMaWJyYXJ5
ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvIiAjZnJhbWV3b3Jr
ICIuZnJhbWV3b3JrLyIgI2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAgICAgICAgICBpZiAo
IWlzT3B0aW9uYWwpIFwKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NB
R0UoZnJhbWV3b3JrTGlicmFyeSwgIiVzIiwgZGxlcnJvcigpKTsgXAorICAgICAgICB9KTsgXAor
ICAgICAgICByZXR1cm4gZnJhbWV3b3JrTGlicmFyeTsgXAorICAgIH0gXAorICAgIH0KKwogI2Rl
ZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3
b3JrLCBjbGFzc05hbWUpIFwKICAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCiAgICAgbmFtZXNwYWNl
IGZ1bmN0aW9uTmFtZXNwYWNlIHsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5YWVlMTM5MGRmNzU4M2Qw
ZDBmYTU1OTJlZDBhMjViYTdmNWNiOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoTUVESUFSRU1PVEUp
CisKKyNpbmNsdWRlICJNZWRpYVJlbW90ZVNQSS5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgi
CisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlh
UmVtb3RlKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1v
dGUsIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbiwgTVJPcmlnaW5SZWYsICgpLCAoKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlh
UmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkKiwgKE1STWVkaWFSZW1vdGVB
c3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgYmxvY2spLCAoYmxvY2spKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVSZW1vdmVD
b21tYW5kSGFuZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIpLCAob2JzZXJ2ZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVk
aWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJyYXlSZWYgY29tbWFuZHMs
IE1ST3JpZ2luUmVmIG9yaWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQoXmNvbXBs
ZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRzLCBvcmlnaW4sIHJlcGx5
USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvQ3JlYXRlLCBNUk1lZGlhUmVtb3Rl
Q29tbWFuZEluZm9SZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAoYWxsb2NhdG9yKSk7
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJN
ZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1STWVkaWFSZW1vdGVDb21t
YW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1hbmQgY29tbWFuZCksIChj
b21tYW5kSW5mbywgY29tbWFuZCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJD
b3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0RW5hYmxlZCwgdm9p
ZCwgKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgQm9vbGVhbiBlbmFi
bGVkKSwgKGNvbW1hbmRJbmZvLCBlbmFibGVkKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRPcHRp
b25zLCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBDRkRp
Y3Rpb25hcnlSZWYgb3B0aW9ucyksIChjb21tYW5kSW5mbywgb3B0aW9ucykpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNl
dENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uLCBCb29sZWFuLCAoQm9vbGVhbiBmbGFnKSwgKGZs
YWcpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUs
IE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbywgdm9pZCwgKENGRGljdGlvbmFyeVJlZiBp
bmZvKSwgKGluZm8pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVk
aWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0
YXRlRm9yT3JpZ2luLCB2b2lkLCAoTVJPcmlnaW5SZWYgb3JpZ2luLCBNUlBsYXliYWNrU3RhdGUg
cGxheWJhY2tTdGF0ZSwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQoXmNvbXBsZXRpb24p
KE1STWVkaWFSZW1vdGVFcnJvcikpLCAob3JpZ2luLCBwbGF5YmFja1N0YXRlLCByZXBseVEsIGNv
bXBsZXRpb24pKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFS
ZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSwgQ0ZTdHJpbmdSZWYpOwor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpOworU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3Rl
Tm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYpOworU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxh
eWluZ0luZm9QbGF5YmFja1JhdGUsIENGU3RyaW5nUmVmKTsKKworI2VuZGlmIC8vIFVTRShNRURJ
QVJFTU9URSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZWRpYVJl
bW90ZVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVT
b2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNjAzNjM4ODczZTA1NzI3NzMxNTgyNzQ4OTQ1OGRkMTMz
ZTVhZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVk
aWFSZW1vdGVTb2Z0TGluay5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIFVTRShNRURJQVJFTU9URSkKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlU1BJ
LmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1Jf
SEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbiwgTVJP
cmlnaW5SZWYsICgpLCAoKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luIHNv
ZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbgorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVB
ZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJNZWRpYVJlbW90ZUFzeW5jQ29t
bWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVB
ZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFu
ZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIpLCAob2JzZXJ2ZXIpKQorI2RlZmluZSBN
Uk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0TGlua19NZWRpYVJlbW90
ZV9NUk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jaworU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXRTdXBw
b3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJyYXlSZWYgY29tbWFuZHMsIE1ST3JpZ2luUmVmIG9y
aWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQoXmNvbXBsZXRpb24pKE1STWVkaWFS
ZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRzLCBvcmlnaW4sIHJlcGx5USwgY29tcGxldGlvbikp
CisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcyBzb2Z0TGlua19NZWRp
YVJlbW90ZV9NUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFu
ZEluZm9DcmVhdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciksIChhbGxvY2F0b3IpKTsKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUNvbW1hbmRJ
bmZvQ3JlYXRlIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVDb21tYW5kSW5mb0Ny
ZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUs
IE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQsIHZvaWQsIChNUk1lZGlhUmVtb3Rl
Q29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQp
LCAoY29tbWFuZEluZm8sIGNvbW1hbmQpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlQ29tbWFuZElu
Zm9TZXRDb21tYW5kIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVDb21tYW5kSW5m
b1NldENvbW1hbmQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlh
UmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkLCB2b2lkLCAoTVJNZWRp
YVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBCb29sZWFuIGVuYWJsZWQpLCAoY29t
bWFuZEluZm8sIGVuYWJsZWQpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRF
bmFibGVkIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldEVu
YWJsZWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3Rl
LCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRPcHRpb25zLCB2b2lkLCAoTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucyksIChj
b21tYW5kSW5mbywgb3B0aW9ucykpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1Nl
dE9wdGlvbnMgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0
T3B0aW9ucworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1v
dGUsIE1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbiwgQm9vbGVhbiwg
KEJvb2xlYW4gZmxhZyksIChmbGFnKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldENhbkJlTm93
UGxheWluZ0FwcGxpY2F0aW9uIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVTZXRD
YW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
V2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbywgdm9p
ZCwgKENGRGljdGlvbmFyeVJlZiBpbmZvKSwgKGluZm8pKQorI2RlZmluZSBNUk1lZGlhUmVtb3Rl
U2V0Tm93UGxheWluZ0luZm8gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZVNldE5v
d1BsYXlpbmdJbmZvCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRp
YVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXliYWNrU3Rh
dGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1SUGxheWJhY2tTdGF0ZSBw
bGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxldGlvbiko
TVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3RhdGUsIHJlcGx5USwgY29t
cGxldGlvbikpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25Q
bGF5YmFja1N0YXRlRm9yT3JpZ2luIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVT
ZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVO
b3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIGtNUk1lZGlhUmVtb3Rl
Tm93UGxheWluZ0luZm9UaXRsZSBnZXRfTWVkaWFSZW1vdGVfa01STWVkaWFSZW1vdGVOb3dQbGF5
aW5nSW5mb1RpdGxlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1l
ZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24sIENGU3RyaW5n
UmVmKTsKKyNkZWZpbmUga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1cmF0aW9uIGdldF9N
ZWRpYVJlbW90ZV9rTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24oKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVt
b3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBrTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRWxhcHNlZFRpbWUgZ2V0X01lZGlhUmVtb3RlX2tNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5n
SW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBrTVJNZWRpYVJlbW90ZU5v
d1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJlbW90ZU5v
d1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlKCkKKworI2VuZGlmIC8vIFVTRShNRURJQVJFTU9URSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQwODRlNjhiYTQyYzI3ZGRkMGRjM2VjNjEwNTYzNzUy
NGQxNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Jl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hY19oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hY19oCisKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKKworI2lm
IFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYyA6IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgor
ICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQm
KTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoKTsKKworcHJvdGVjdGVk
OgorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKworICAgIFdlYWtQ
dHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gbV93ZWFrUHRyRmFjdG9yeSB7IHRo
aXMgfTsKKyAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsgbnVsbHB0ciB9OworfTsKKyAgICAK
K30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2VuZGlmIC8vIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVt
b3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Jl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmIyNjczMzUxY2NjMGUxODBj
OTYwYmM0YmI5ODJhNWI4NDBhMTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpAQCAtMCwwICsxLDEyMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIkxvZ2dp
bmcuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKKyNpbXBvcnQgIk1lZGlhUmVtb3Rl
U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVD
b21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+KGNsaWVudCk7Cit9CisKK1JlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKFJlbW90ZUNvbW1hbmRMaXN0
ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkK
K3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKCFpc01lZGlhUmVtb3RlRnJhbWV3b3Jr
QXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBNUk1lZGlh
UmVtb3RlQ29tbWFuZCBzdXBwb3J0ZWRDb21tYW5kc1tdID0geworICAgICAgICBNUk1lZGlhUmVt
b3RlQ29tbWFuZFBsYXksCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUGF1c2UsCisgICAg
ICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xlUGxheVBhdXNlLAorICAgICAgICBNUk1lZGlh
UmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kRW5kRmFzdEZvcndhcmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQmVnaW5SZXdp
bmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAgIH07CisKKyAg
ICBhdXRvIGNvbW1hbmRJbmZvQXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHNpemVvZihzdXBwb3J0ZWRDb21tYW5kcykgLyBzaXplb2YoTVJN
ZWRpYVJlbW90ZUNvbW1hbmQpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisKKyAgICBmb3Ig
KGF1dG8gY29tbWFuZCA6IHN1cHBvcnRlZENvbW1hbmRzKSB7CisgICAgICAgIGF1dG8gY29tbWFu
ZEluZm8gPSBhZG9wdENGKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb0NyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0KSk7CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQo
Y29tbWFuZEluZm8uZ2V0KCksIGNvbW1hbmQpOworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZEluZm9TZXRFbmFibGVkKGNvbW1hbmRJbmZvLmdldCgpLCB0cnVlKTsKKyAgICAgICAgQ0ZBcnJh
eUFwcGVuZFZhbHVlKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCksIGNvbW1hbmRJbmZvLmdldCgpKTsK
KyAgICB9CisKKyAgICBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMoY29tbWFuZElu
Zm9BcnJheS5nZXQoKSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luKCksIG51bGxwdHIsIG51
bGxwdHIpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2Nv
bW1hbmRIYW5kbGVyID0gTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhe
KE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBvcHRpb25zLCB2
b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSkgeworICAgICAgICBVTlVTRURfUEFSQU0ob3B0
aW9ucyk7CisKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQgeyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Tm9Db21tYW5k
IH07CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNhc2UgTVJNZWRpYVJl
bW90ZUNvbW1hbmRQbGF5OgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlBsYXlDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQYXVzZToKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFu
ZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVBsYXlQYXVzZToKKyAg
ICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpUb2dnbGVQ
bGF5UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRp
YVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3YXJkOgorICAgICAgICAgICAgcGxhdGZvcm1Db21t
YW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRFbmRG
YXN0Rm9yd2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kOgorICAgICAgICAgICAg
cGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0JhY2t3
YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1STWVkaWFSZW1v
dGVDb21tYW5kRW5kUmV3aW5kOgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9OworCisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIHdlYWtUaGlzLT5tX2NsaWVudC5kaWRSZWNlaXZlUmVtb3RlQ29udHJvbENv
bW1hbmQocGxhdGZvcm1Db21tYW5kKTsKKyAgICAgICAgY29tcGxldGlvbihzdGF0aWNfY2FzdDxD
RkFycmF5UmVmPihAW0AwXSkpOworICAgIH0pOworI2VuZGlmIC8vIFVTRShNRURJQVJFTU9URSkK
K30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
KCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKG1fY29tbWFuZEhhbmRsZXIpCisg
ICAgICAgIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrKG1fY29tbWFuZEhh
bmRsZXIpOworI2VuZGlmCit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVkMTM4ZjMzODAx
ZGMwMWYzNjJjMjkwNjYzMDQxODY2MTdhNDJiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTWVkaWFSZW1vdGVTUEkuaApAQCAtMCwwICsxLDExMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPE1lZGlhUmVtb3RlL01lZGlh
UmVtb3RlLmg+CisKKyNlbHNlCisKK2VudW0geworICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUGxh
eSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kVG9nZ2xlUGxheVBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU3RvcCwKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZE5leHRUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBy
ZXZpb3VzVHJhY2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlU2h1ZmZsZU1vZGUs
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlUmVwZWF0TW9kZSwKKyAgICBNUk1lZGlh
UmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmRGYXN0Rm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kLAorICAg
IE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
UmV3aW5kMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRmFzdEZvcndhcmQxNVNl
Y29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRSZXdpbmQzMFNlY29uZHMsCisgICAgTVJN
ZWRpYVJlbW90ZUNvbW1hbmRGYXN0Rm9yd2FyZDMwU2Vjb25kcywKKyAgICBNUk1lZGlhUmVtb3Rl
Q29tbWFuZFRvZ2dsZVJlY29yZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNraXBGb3J3YXJk
LAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU2tpcEJhY2t3YXJkLAorICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kQ2hhbmdlUGxheWJhY2tSYXRlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUmF0
ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kTGlrZVRyYWNrLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kRGlzbGlrZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQm9va21h
cmtUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNlZWtUb1BsYXliYWNrUG9zaXRpb24s
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRDaGFuZ2VSZXBlYXRNb2RlLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kQ2hhbmdlU2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmFibGVMYW5ndWFnZU9wdGlvbiwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZERpc2FibGVMYW5n
dWFnZU9wdGlvbgorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJNZWRpYVJlbW90ZUNvbW1hbmQ7CisK
K2VudW0geworICAgIGtNUlBsYXliYWNrU3RhdGVVbmtub3duID0gMCwKKyAgICBrTVJQbGF5YmFj
a1N0YXRlUGxheWluZywKKyAgICBrTVJQbGF5YmFja1N0YXRlUGF1c2VkLAorICAgIGtNUlBsYXli
YWNrU3RhdGVTdG9wcGVkLAorICAgIGtNUlBsYXliYWNrU3RhdGVJbnRlcnJ1cHRlZAorfTsKK3R5
cGVkZWYgdWludDMyX3QgTVJQbGF5YmFja1N0YXRlOworCit0eXBlZGVmIHVpbnQzMl90IE1STWVk
aWFSZW1vdGVFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9NUk9yaWdpbiAqTVJPcmlnaW5SZWY7Cit0
eXBlZGVmIHN0cnVjdCBfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvICpNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9SZWY7Cit0eXBlZGVmIHZvaWQoXk1STWVkaWFSZW1vdGVBc3luY0NvbW1hbmRIYW5k
bGVyQmxvY2spKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBv
cHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSk7CisKK1dURl9FWFRFUk5fQ19C
RUdJTgorCisjcHJhZ21hIG1hcmsgLSBNUlJlbW90ZUNvbnRyb2wKKwordm9pZCogTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhNUk1lZGlhUmVtb3RlQXN5bmNDb21tYW5k
SGFuZGxlckJsb2NrKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVJlbW92ZUNvbW1hbmRIYW5kbGVyQmxv
Y2sodm9pZCAqb2JzZXJ2ZXIpOwordm9pZCBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFu
ZHMoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5SZWYsIGRpc3BhdGNoX3F1ZXVlX3QgcmVw
bHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IgZXJyKSk7CisKKyNwcmFn
bWEgbWFyayAtIE1ST3JpZ2luCisKK01ST3JpZ2luUmVmIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9y
aWdpbigpOworCisjcHJhZ21hIG1hcmsgLSBNUkNvbW1hbmRJbmZvCisKK01STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1JlZiBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUoQ0ZBbGxvY2F0b3JS
ZWYpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kKE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1JlZiwgTVJNZWRpYVJlbW90ZUNvbW1hbmQpOwordm9pZCBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgQm9v
bGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMoTVJNZWRpYVJl
bW90ZUNvbW1hbmRJbmZvUmVmLCBDRkRpY3Rpb25hcnlSZWYpOworCisjcHJhZ21hIG1hcmsgLSBN
Uk5vd1BsYXlpbmcKKworQm9vbGVhbiBNUk1lZGlhUmVtb3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBw
bGljYXRpb24oQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGlj
YXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1ST3JpZ2luUmVmLCBNUlBsYXliYWNrU3RhdGUs
IGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3Rl
RXJyb3IpKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvKENGRGljdGlvbmFy
eVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBmMGUxZTFk
NjM3MTc4MTc3MDg3MWJjZTkyZGM5Nzc1YWE4Mjc5ODlkLi5mN2JhMTJlZmZlMGU0YzY3ZDEzMzM3
MmZhMTk4MDQ2NWNjNWY3ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTIwMCw2ICsyMDAsOSBAQAogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5mbG93LWRpdmVydC10b2tlbiIpCiAjZW5k
aWYKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQorI2VuZGlmCiApCiAK
IDs7IFNlY3VyaXR5IGZyYW1ld29yawo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282348</attachid>
            <date>2016-06-29 08:49:51 -0700</date>
            <delta_ts>2016-06-29 08:51:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159250-20160629084932.patch</filename>
            <type>text/plain</type>
            <size>63521</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjQ1NmUwOTZkNmI4NDI2Mjg0OWE1MmYwMjY5M2I2Mjk5OWZmYWRl
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVVNFX01FRElBUkVNT1RFLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTYtMDYtMjggIFRvbWFzIFBvcGVsYSAg
PHRwb3BlbGFAcmVkaGF0LmNvbT4KIAogICAgICAgICBUSFVNQjIgc3VwcG9ydCBub3QgY29ycmVj
dGx5IGRldGVjdGVkIG9uIEZlZG9yYSB3aXRoIEdDQyA2LjEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmNDVl
Y2U5YjgzOTA1MDNlYWIzNzcxMjljYTA5ZGI2N2NiMTVmYS4uZTdlMWQ3NmYzNTk5MWU3YTgxNDBm
MWI5MmY1M2ZiNDkwOTJhZjQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA2
LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1l
ZGlhUmVtb3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU5MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRvcHQgTWVkaWFSZW1vdGUgYW5kIHVzZSB0aGUgZnJhbWV3b3JrIHRvIGltcGxlbWVudCBN
ZWRpYVNlc3Npb25NYW5hZ2VNYWMKKyAgICAgICAgYW5kIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcC4KKyAgICAgICAgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vz
c2lvblN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp+TWVkaWFTZXNzaW9u
TWFuYWdlck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6cmVtb3ZlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdp
YmxlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU29mdExpbmtp
bmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OmNyZWF0ZVdl
YWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
bW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9z
cGkvbWFjL01lZGlhUmVtb3RlU1BJLmg6IEFkZGVkLgorCiAyMDE2LTA2LTI3ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENyb3NzLWRvbWFpbiB2aWRlbyBsb2Fk
cyBkbyBub3QgcHJvbXB0IGZvciBhdXRob3JpemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1ZjA0MWRj
ODYyY2Q4OTgwYTFhYTk5ZWQwYWU2ZmJjZWM0NzdlNDguLjM0MzVkNTEzNTkyMjU4M2FjZTg3NmM3
NTE1ZGYyN2RjMzUwMjY3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNi0y
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRp
YVJlbW90ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1v
dGVkIFhQQyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxv
bmdlciBlbnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2Zl
ODhmNmYzOGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJl
ZWRjYmI4MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2Vu
ZGlmIC8qIFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBjMTY1YzU1NDkxOGMzYTQzY2JiZmEwM2Ey
MDBhM2U0YzkxNzAyMy4uYzM4OWY1YzdhMTFkZWYyNDkyNGRiNTFhNDY5ZDExMmFjNjQ4MWQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzE5LDcgKzMxOSw3IEBACiAJCTA3RTNERkQxMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRp
YVBsYXliYWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3RTlF
MTJFMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RTlFMTJE
MThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCAq
LzsgfTsKIAkJMDdFOUUxMzAxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAqLzsgfTsKLQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwICovOyB9OworCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLm1tICovOyB9OwogCQkwN0VFNzZFQjFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcCAqLzsgfTsKIAkJMDdFRTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0VFNzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCAq
LzsgfTsKIAkJMDdFRTc2RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
N0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAq
LzsgfTsKQEAgLTYxMjQsNiArNjEyNCw3IEBACiAJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJp
dmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3Bw
ICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0
MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CisJ
CUNENjY5RDY4MUQyMzM2NEIwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NjlENjYx
RDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi87IH07CiAJ
CUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQxMUM3
QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsgfTsKIAkJQ0Q3
RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQyMUM3QTEyM0Yw
MDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CiAJCUNEN0QzMzQ3MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OwpAQCAtNjEzOSw2ICs2MTQwLDExIEBACiAJCUNE
ODIwMzExMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRjEzOTVBQ0U3MDBG
OTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovOyB9OwogCQlDRDhBN0JCQjE5NzczNUZF
MDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMg
LyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi87IH07CiAJCUNEOEE3QkJDMTk3NzM1
RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQz
IC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi87IH07CisJCUNEOEFDQTg4MUQyMzdB
QTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NjFEMjM3QUEyMDBFQ0M1OUUg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tICovOyB9OworCQlDRDhBQ0E4OTFEMjM3QUEy
MDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CisJCUNEOEFDQThCMUQyMzk0NjQwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q4QUNBOEExRDIzOTQ2NDAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU1BJ
LmggKi87IH07CisJCUNEOEFDQThFMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRM
aW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
OEFDQThDMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcCAqLzsgfTsK
KwkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgw
RDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgw
RDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAq
LzsgfTsKIAkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZp
ZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNv
dXJjZS5oICovOyB9OwpAQCAtNzc4Myw3ICs3Nzg5LDcgQEAKIAkJMDdFM0RGRDAxQTlFNzg2NTAw
NzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0VEQzNFRDFBQUNCNzVEMDA5
ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3RUU3NkVBMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMg
LyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MTc5LDYgKzE0MTg1LDggQEAKIAkJQ0Q2NDFFQkQxODE5QjM1OTAwRUU0
QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVRpbWVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0
MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlE
NjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
Y3BwOyBwYXRoID0gY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0
MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDsg
cGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3Jl
VmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDE5
NSw2ICsxNDIwMywxMSBAQAogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93
QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
V2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhBN0JC
OTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QTdCQkExOTc3MzVGRTAw
Q0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEOEFDQTg3MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThBMUQyMzk0NjQwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVJlbW90ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhBQ0E4
QzFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlh
UmVtb3RlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFS
ZW1vdGVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0MDE4
MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4
QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1
QTQ0MTgwREQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZp
ZGVvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODA2Niw2ICsxODA3OSw4IEBACiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTA2RTgxRUVCMEFCNURBOTcwMEM4Nzgz
NyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi8sCiAJCQkJMTQwMjY0NUQwQUZE
QzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8sCisJCQkJQ0Q4QUNBOEMxRDIzOTcxOTAw
RUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovLAorCQkJCUNEOEFDQThEMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCiAJCQkJOTM1MDBGMzExM0ZE
RTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJCQkJNTJGNTJFMTAx
NEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovLAogCQkJCTRCMjcw
OTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApAQCAtMTgwODEsNiAr
MTgwOTYsOCBAQAogCQkJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVy
TWFjLmNwcCAqLywKIAkJCQk0NkRCQjY0RTFBQjhDOTZGMDBEOUE4MTMgLyogUG93ZXJPYnNlcnZl
ck1hYy5oICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhN
YWMubW0gKi8sCisJCQkJQ0Q4QUNBODYxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hYy5tbSAqLywKKwkJCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVyTWFjLmggKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAv
KiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTkyMjUsNiArMTkyNDIsNyBAQAogCQkJCTA3
RjBCOTdCMUFDNURCNDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAqLywKIAkJCQkyRDU5
RjFCRTFBMDA0NEM2MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJCTJENDEz
RjYwMUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKKwkJCQlDRDhBQ0E4QTFEMjM5
NDY0MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLywKIAkJCQkyRDc3QUMyNjFCRjJCOTg2
MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi8sCiAJCQkJMkQ3N0FDMjcxQkYyQjk4
NjAwNzI0NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCAqLywKIAkJCQkyREI5QzRBOTFCMzIzMUY0
MDA3MEYyN0YgLyogTlNFdmVudFNQSS5oICovLApAQCAtMjMzMzQsNiArMjMzNTIsMTQgQEAKIAkJ
CW5hbWUgPSBNZWRpYVNvdXJjZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q5QTM3RjUxN0M3RDkzNjAwQzVG
QTdBIC8qIG1lZGlhY29udHJvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtMjUwMzQsNiArMjUwNjAsNyBAQAogCQlGRDMxNjA0MDEyQjAyNkEzMDBDMUEz
NTkgLyogYXVkaW8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLywKIAkJCQlDRDBFRUUwRDE0
NzQzRTQ4MDAzRUFGQTIgLyogaW9zICovLAogCQkJCUZEMzE2MEIwMTJCMDI3MDcwMEMxQTM1OSAv
KiBtYWMgKi8sCiAJCQkJRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAq
LywKQEAgLTI1MTM2LDcgKzI1MTYzLDggQEAKIAkJCQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUg
LyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKIAkJCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJGQzUgLyog
Q0FSaW5nQnVmZmVyLmggKi8sCiAJCQkJRkQzMTYwQkExMkIwMjcyQTAwQzFBMzU5IC8qIEZGVEZy
YW1lTWFjLmNwcCAqLywKLQkJCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5jcHAgKi8sCisJCQkJMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gKi8sCisJCQkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDUyLDYgKzI2NDgwLDcgQEAKIAkJCQk5
M0YxOTlFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBFQ0M1OUUg
LyogTWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzRTUxMEExOERG
OEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTIw
QzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI3MDcwLDYgKzI3MDk5LDcgQEAKIAkJCQk5QkRBNjREODFCOTc1Q0Yy
MDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3QjE3
QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
OURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE3RkVFQUQxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzZB
MjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc5MSw2
ICsyODgyMSw3IEBACiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vy
cm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkg
LyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1
MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5T
VVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZF
IC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREVDOTgwMzBBRUQ3
RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTY0Myw2
ICsyOTY3NCw3IEBACiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMyODVGIC8qIENTU1BhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAyQTU0MDBFMDk5QzVBMDA0QjZEMkIgLyogQ1NTUGFy
c2VyVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZG
OCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDY2OUQ2ODFE
MjMzNjRCMDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MEU2RDA1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJv
cGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYyRDA1IC8q
IENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyNzYsNyArMzEz
MDgsNyBAQAogCQkJCUM5NkY1RUM2MUI1ODcyMjYwMDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRl
cnJ1cHRpb25Qcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5MEY2NTU1MUIyMjUz
QjEwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgz
RUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDNB
NDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RDOEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFT
b3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMzgwLDYgKzMxNDEyLDcgQEAK
IAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGlt
ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEOEFDQTg4MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxQTBEN0Uy
QjgyMDA3QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNGNkJE
RkIwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE4OCw2ICszMjIyMSw3IEBACiAJCQkJN0FBM0E2OTkx
OTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFGNzJCRjBBMTg3RkQ0NDkwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJ
T1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2QTMxOTRCNUMyMjAwMUNCRDI0IC8qIFRp
bGVDb3ZlcmFnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4RTFEMjM5NzE5MDBF
Q0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEz
QTY5QjE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk4NzcwRjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21t
YW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExp
c3RlbmVyLmNwcAppbmRleCA3YzU1NTNmNTdjNjE5NWQ1MDk3ZjNkOGE1NzgyN2E2ZTUxNjA4Mzlj
Li4wMzhkNzk0ZGU2NDc0Njc1ZDYyOWQ4NzNiNGUxNWMwODdmMTNiNjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAgLTI4LDcg
KzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNp
ZiAhUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oTUFDKQogc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29t
bWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKaW5kZXggYzEwZTdkNGM3ZTA1NDAwYTQ3NTQwMjRkMjk3Njc5ZmE3ZDlmMzVhNS4uOTcyNGJj
NWI3Yjc3YmYwYTlhYmU5Nzk2NjQxMTUyYmRhNTI3MTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQ
TEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKE1BQykKIHN0YXRp
YyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ciA9IG51bGxwdHI7CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM0NjJmMTMwZTE2NDkxMzg5N2RiODI4NjhiNTc0MzJhOTE2M2My
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJB
dWRpb0J1ZmZlclNpemUgPSAxMjg7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVv
QnVmZmVyU2l6ZSA9IDQwOTY7CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQoreworICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRp
byglZCksIFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyks
IGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpXZWJBdWRpbykpOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgIGVsc2UgaWYgKChoYXMo
UGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246
OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVk
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmln
dXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKKyAgICAgICAgLy8gY2F1c2VzIG1l
ZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KKworICAgICAgICBzaXplX3QgYnVmZmVy
U2l6ZTsKKyAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJk
d2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQorICAgICAg
ICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7CisKKyAgICAg
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShi
dWZmZXJTaXplKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFTZXR0aW5n
czo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkK
KyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1
ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKTsKKyAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2Vi
QXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29y
eShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisjZW5kaWYKK30KKworI2VuZGlmIC8vIFVT
RShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3NzMxYTYyMmViMjMxNDk2NTM4MDA3NTViYzMwNDEzM2I4Y2E4ZjExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKLQotI2lmIFVT
RShBVURJT19TRVNTSU9OKQotCi0jaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAxMjg7Ci1z
dGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7Ci0KLXZv
aWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQotewot
ICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lv
blN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1ZGlvKCVkKSIsIGNv
dW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpOwotCi0g
ICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQotICAgICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRp
b0J1ZmZlclNpemUpOwotICAgIGVsc2UgaWYgKChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZp
ZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxv
d1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhl
IGNvZGUgYmVsb3cKLSAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwg
b24gMTAuOC4KLQotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsKLSAgICAgICAgaWYgKG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZp
Y2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQ
b3dlclZpZGVvQnVmZmVyU2l6ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyU2l6
ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKLSAgICB9Ci0KLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7
Ci0gICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lv
bjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFj
ayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKLSAgICB9Ci0gICAg
ZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpCi0gICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzkzZWYzODI0NzIyNjU2MjI1MDFhN2VlZDA0
ZmRiNjBiOGUyZjc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK09CSkNfQ0xBU1MgV2ViTWVkaWFTZXNzaW9uSGVscGVyOworCisjaWYgZGVmaW5lZChfX09C
SkNfXykgJiYgX19PQkpDX18KK2V4dGVybiBOU1N0cmluZyogV2ViVUlBcHBsaWNhdGlvbldpbGxS
ZXNpZ25BY3RpdmVOb3RpZmljYXRpb247CitleHRlcm4gTlNTdHJpbmcqIFdlYlVJQXBwbGljYXRp
b25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uOworZXh0ZXJuIE5TU3RyaW5nKiBXZWJV
SUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uOworZXh0ZXJuIE5TU3RyaW5n
KiBXZWJVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uOworI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyA6
IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xh
c3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworCisgICAgTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYygpOworCisgICAgdm9pZCByZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikg
b3ZlcnJpZGU7CisKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworCisgICAgdm9p
ZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIG5v
d1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKKworICAgIGRvdWJsZSBtX3JlcG9ydGVkUmF0ZSB7
IDAgfTsKKyAgICBkb3VibGUgbV9yZXBvcnRlZER1cmF0aW9uIHsgMCB9OworICAgIFN0cmluZyBt
X3JlcG9ydGVkVGl0bGU7CisgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZiZTJkYzcxM2YzMmZhNzQ3YjZlNDcwNDlkZWYyODNkZDY1NjM1YTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oIgorCisjaWYg
UExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
ci5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKworI2ltcG9ydCAiTWVkaWFS
ZW1vdGVTb2Z0TGluay5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyogcGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyID0gbnVsbHB0cjsKKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
JiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQoreworICAgIGlm
ICghcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKQorICAgICAgICBwbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIgPSBuZXcgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzsKKyAgICByZXR1cm4gKnBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygp
Cit7CisgICAgcmV0dXJuIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYygpCisgICAgOiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJlc2V0UmVzdHJpY3Rpb25zKCk7Cit9CisK
K01lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6On5NZWRpYVNlc3Npb25NYW5hZ2VyTWFjKCkKK3sKK30K
KworYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2so
UGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYgKCFQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhzZXNzaW9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8o
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpy
ZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpyZW1vdmVTZXNzaW9uIik7CisgICAgdXBk
YXRlTm93UGxheWluZ0luZm8oKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpz
ZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQorewor
ICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhz
ZXNzaW9uKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKK30KKwordm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJikKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkIik7CisgICAgdXBkYXRlTm93UGxh
eWluZ0luZm8oKTsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb24qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWM6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQoreworICAgIGZvciAoYXV0byBzZXNz
aW9uIDogc2Vzc2lvbnMoKSkgeworICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlIHR5cGUgPSBzZXNzaW9uLT5tZWRpYVR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGxh
dGZvcm1NZWRpYVNlc3Npb246OlZpZGVvICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246
OkF1ZGlvKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHNlc3Npb24tPmNo
YXJhY3RlcmlzdGljcygpICYgUGxhdGZvcm1NZWRpYVNlc3Npb246Okhhc0F1ZGlvKQorICAgICAg
ICAgICAgcmV0dXJuIHNlc3Npb247CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8oKQorewor
I2lmIFVTRShNRURJQVJFTU9URSkKKyAgICBpZiAoIWlzTWVkaWFSZW1vdGVGcmFtZXdvcmtBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFNUk1lZGlhUmVtb3RlU2V0Q2Fu
QmVOb3dQbGF5aW5nQXBwbGljYXRpb24odHJ1ZSkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3Rl
U2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24odHJ1ZSkgZmFpbGVkIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogY3VycmVudFNl
c3Npb24gPSB0aGlzLT5ub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisKKyAgICBMT0coTWVk
aWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIGN1cnJl
bnRTZXNzaW9uID0gJXAiLCBjdXJyZW50U2Vzc2lvbik7CisKKyAgICBpZiAoIWN1cnJlbnRTZXNz
aW9uKSB7CisgICAgICAgIGlmIChtX25vd1BsYXlpbmdBY3RpdmUpIHsKKyAgICAgICAgICAgIExP
RyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0g
Y2xlYXJpbmcgbm93IHBsYXlpbmcgaW5mbyIpOworICAgICAgICAgICAgTVJNZWRpYVJlbW90ZVNl
dE5vd1BsYXlpbmdJbmZvKG51bGxwdHIpOworICAgICAgICAgICAgbV9ub3dQbGF5aW5nQWN0aXZl
ID0gZmFsc2U7CisgICAgICAgICAgICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0
aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihNUk1lZGlhUmVtb3RlR2V0TG9jYWxPcmlnaW4oKSwg
a01SUGxheWJhY2tTdGF0ZVN0b3BwZWQsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oTVJN
ZWRpYVJlbW90ZUVycm9yIGVycm9yKSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3Rl
U2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihzdG9wcGVkKSBm
YWlsZWQgd2l0aCBlcnJvciAldWQiLCBlcnJvcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgdGl0bGUgPSBjdXJyZW50
U2Vzc2lvbi0+dGl0bGUoKTsKKyAgICBkb3VibGUgZHVyYXRpb24gPSBjdXJyZW50U2Vzc2lvbi0+
ZHVyYXRpb24oKTsKKyAgICBkb3VibGUgcmF0ZSA9IGN1cnJlbnRTZXNzaW9uLT5zdGF0ZSgpID09
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQbGF5aW5nID8gMSA6IDA7CisgICAgaWYgKG1fcmVwb3J0
ZWRUaXRsZSA9PSB0aXRsZSAmJiBtX3JlcG9ydGVkUmF0ZSA9PSByYXRlICYmIG1fcmVwb3J0ZWRE
dXJhdGlvbiA9PSBkdXJhdGlvbikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIG5vdGhpbmcgbmV3IHRvIHNob3ciKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVwb3J0ZWRSYXRlID0gcmF0ZTsKKyAg
ICBtX3JlcG9ydGVkRHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBtX3JlcG9ydGVkVGl0bGUgPSB0
aXRsZTsKKworICAgIGF1dG8gaW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJs
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCA0LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICBpZiAoIXRpdGxlLmlz
RW1wdHkoKSkKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVk
aWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KTsKKworICAgIGlmIChzdGQ6OmlzZmluaXRlKGR1cmF0aW9uKSAmJiBkdXJhdGlvbiAhPSBNZWRp
YVBsYXllcjo6aW52YWxpZFRpbWUoKSkgeworICAgICAgICBhdXRvIGNmRHVyYXRpb24gPSBhZG9w
dENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5
cGUsICZkdXJhdGlvbikpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgp
LCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24sIGNmRHVyYXRpb24uZ2V0KCkp
OworICAgIH0KKworICAgIGF1dG8gY2ZSYXRlID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwga0NGTnVtYmVyRG91YmxlVHlwZSwgJnJhdGUpOworICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1Jh
dGUsIGNmUmF0ZSk7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJyZW50U2Vzc2lvbi0+
Y3VycmVudFRpbWUoKTsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3Vy
cmVudFRpbWUgIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpIHsKKyAgICAgICAgYXV0byBj
ZkN1cnJlbnRUaW1lID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBrQ0ZOdW1iZXJEb3VibGVUeXBlLCAmY3VycmVudFRpbWUpKTsKKyAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBz
ZWRUaW1lLCBjZkN1cnJlbnRUaW1lLmdldCgpKTsKKyAgICB9CisKKyAgICBMT0coTWVkaWEsICJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIHRpdGxlID0gXCIl
c1wiLCByYXRlID0gJWYsIGR1cmF0aW9uID0gJWYsIG5vdyA9ICVmIiwKKyAgICAgICAgdGl0bGUu
dXRmOCgpLmRhdGEoKSwgcmF0ZSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lKTsKKworICAgIG1fbm93
UGxheWluZ0FjdGl2ZSA9IHRydWU7CisgICAgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBs
aWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4oTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
KCksIGtNUlBsYXliYWNrU3RhdGVQbGF5aW5nLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
KE1STWVkaWFSZW1vdGVFcnJvciBlcnJvcikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIE1STWVkaWFSZW1vdGVTZXRO
b3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKHBsYXlpbmcpIGZhaWxl
ZCB3aXRoIGVycm9yICV1ZCIsIGVycm9yKTsKKyAgICB9KTsKKyAgICBNUk1lZGlhUmVtb3RlU2V0
Tm93UGxheWluZ0luZm8oaW5mby5nZXQoKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NvZnRMaW5raW5nLmgKaW5kZXggODAyZmRkMTBkMDQ2ZmVkNjJlMTdiNDAzNGEy
MGQ2ZDFiYzBlZTYzYy4uYjFhMDNjMWNlZWVkMWJmMjU1ZmMxYjM3Mzk4NDMyZGU1MTRiNzBkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5oCkBAIC0zMjUs
NiArMzI1LDIyIEBACiAgICAgfSBcCiAgICAgfQogCisjZGVmaW5lIFNPRlRfTElOS19QUklWQVRF
X0ZSQU1FV09SS19GT1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmspIFwKKyAg
ICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgdm9pZCogZnJhbWV3b3JrIyNM
aWJyYXJ5KGJvb2wgaXNPcHRpb25hbCA9IGZhbHNlKTsgXAorICAgIHZvaWQqIGZyYW1ld29yayMj
TGlicmFyeShib29sIGlzT3B0aW9uYWwpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIHZvaWQq
IGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNl
OyBcCisgICAgICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZyYW1l
d29ya0xpYnJhcnkgPSBkbG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy8i
ICNmcmFtZXdvcmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAg
ICAgICAgIGlmICghaXNPcHRpb25hbCkgXAorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X1dJVEhfTUVTU0FHRShmcmFtZXdvcmtMaWJyYXJ5LCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAg
ICAgIH0pOyBcCisgICAgICAgIHJldHVybiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgfSBcCisg
ICAgfQorCiAjZGVmaW5lIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKGZ1bmN0aW9uTmFtZXNw
YWNlLCBmcmFtZXdvcmssIGNsYXNzTmFtZSkgXAogICAgIEBjbGFzcyBjbGFzc05hbWU7IFwKICAg
ICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlhZWUx
MzkwZGY3NTgzZDBkMGZhNTU5MmVkMGEyNWJhN2Y1Y2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmNwcApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShN
RURJQVJFTU9URSkKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlU1BJLmgiCisjaW5jbHVkZSAiU29m
dExpbmtpbmcuaCIKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luLCBNUk9yaWdpblJlZiwg
KCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1v
dGUsIE1STWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJN
ZWRpYVJlbW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJl
bW90ZVJlbW92ZUNvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChv
YnNlcnZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJl
bW90ZSwgTVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJl
ZiBjb21tYW5kcywgTVJPcmlnaW5SZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwg
dm9pZCheY29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9y
aWdpbiwgcmVwbHlRLCBjb21wbGV0aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUsIE1S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksIChh
bGxvY2F0b3IpKTsKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlh
UmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kLCB2b2lkLCAoTVJNZWRp
YVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBj
b21tYW5kKSwgKGNvbW1hbmRJbmZvLCBjb21tYW5kKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRF
bmFibGVkLCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBC
b29sZWFuIGVuYWJsZWQpLCAoY29tbWFuZEluZm8sIGVuYWJsZWQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5k
SW5mb1NldE9wdGlvbnMsIHZvaWQsIChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFu
ZEluZm8sIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1l
ZGlhUmVtb3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24sIEJvb2xlYW4sIChCb29sZWFu
IGZsYWcpLCAoZmxhZykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvLCB2b2lkLCAoQ0ZEaWN0
aW9uYXJ5UmVmIGluZm8pLCAoaW5mbykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlv
blBsYXliYWNrU3RhdGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1SUGxh
eWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZChe
Y29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3RhdGUs
IHJlcGx5USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJD
b3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0
cmluZ1JlZik7CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJl
bW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1cmF0aW9uLCBDRlN0cmluZ1JlZik7
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01S
TWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7CitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworCisjZW5kaWYg
Ly8gVVNFKE1FRElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01lZGlhUmVtb3RlU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9N
ZWRpYVJlbW90ZVNvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE2MDM2Mzg4NzNlMDU3Mjc3MzE1ODI3
NDg5NDU4ZGQxMzNlNWFlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisjaW5jbHVkZSAiTWVk
aWFSZW1vdGVTUEkuaCIKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorCitTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2Fs
T3JpZ2luLCBNUk9yaWdpblJlZiwgKCksICgpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlR2V0TG9j
YWxPcmlnaW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJN
ZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaywgdm9pZCosIChNUk1lZGlhUmVt
b3RlQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrIGJsb2NrKSwgKGJsb2NrKSkKKyNkZWZpbmUgTVJN
ZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0TGlua19NZWRpYVJlbW90
ZV9NUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVJlbW92
ZUNvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChvYnNlcnZlcikp
CisjZGVmaW5lIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrIHNvZnRMaW5r
X01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJl
bW90ZVNldFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJP
cmlnaW5SZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxldGlv
bikoTVJNZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9yaWdpbiwgcmVwbHlRLCBj
b21wbGV0aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzIHNv
ZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFS
ZW1vdGVDb21tYW5kSW5mb0NyZWF0ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKGFsbG9jYXRvcikpOworI2RlZmluZSBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9DcmVhdGUgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1h
bmQgY29tbWFuZCksIChjb21tYW5kSW5mbywgY29tbWFuZCkpCisjZGVmaW5lIE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1NldENvbW1hbmQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldEVuYWJsZWQsIHZv
aWQsIChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIEJvb2xlYW4gZW5h
YmxlZCksIChjb21tYW5kSW5mbywgZW5hYmxlZCkpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVDb21t
YW5kSW5mb1NldEVuYWJsZWQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1h
bmRJbmZvU2V0RW5hYmxlZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
TWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMsIHZvaWQsIChN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIENGRGljdGlvbmFyeVJlZiBv
cHRpb25zKSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvU2V0T3B0aW9ucyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9TZXRPcHRpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9u
LCBCb29sZWFuLCAoQm9vbGVhbiBmbGFnKSwgKGZsYWcpKQorI2RlZmluZSBNUk1lZGlhUmVtb3Rl
U2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRp
YVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlp
bmdJbmZvLCB2b2lkLCAoQ0ZEaWN0aW9uYXJ5UmVmIGluZm8pLCAoaW5mbykpCisjZGVmaW5lIE1S
TWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlh
UmVtb3RlU2V0Tm93UGxheWluZ0luZm8KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0aW9u
UGxheWJhY2tTdGF0ZUZvck9yaWdpbiwgdm9pZCwgKE1ST3JpZ2luUmVmIG9yaWdpbiwgTVJQbGF5
YmFja1N0YXRlIHBsYXliYWNrU3RhdGUsIGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5j
b21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IpKSwgKG9yaWdpbiwgcGxheWJhY2tTdGF0ZSwg
cmVwbHlRLCBjb21wbGV0aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdB
cHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJN
ZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4K
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvVGl0bGUsIENGU3RyaW5nUmVmKTsKKyNkZWZpbmUga01S
TWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJl
bW90ZU5vd1BsYXlpbmdJbmZvVGl0bGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
V2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlv
biwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVy
YXRpb24gZ2V0X01lZGlhUmVtb3RlX2tNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlv
bigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
a01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7Cisj
ZGVmaW5lIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSBnZXRfTWVkaWFS
ZW1vdGVfa01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lKCkKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90
ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIGtNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUgZ2V0X01lZGlhUmVtb3RlX2tNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUoKQorCisjZW5kaWYgLy8gVVNFKE1F
RElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOTM4ZmI5YWQ5MGRiNTJlMDVlYWEx
ZTI5ZDhlNWQxOTU5YmYwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgOiBwdWJsaWMgUmVtb3RlQ29tbWFuZExpc3RlbmVyIHsK
K3B1YmxpYzoKKyAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoUmVtb3RlQ29tbWFuZExpc3Rl
bmVyQ2xpZW50Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKCk7CisK
K3Byb3RlY3RlZDoKKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisK
KyAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZh
Y3RvcnkgeyB0aGlzIH07CisgICAgdm9pZCogbV9jb21tYW5kSGFuZGxlciB7IG51bGxwdHIgfTsK
K307CisgICAgCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MWRhMTRlZTQ2ZWI5MWI4YzBlNzVjYmJjN2U3ODUwNzRmYmIxYjZhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYy5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgiCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisKKyNpbXBvcnQgIk1lZGlhUmVtb3RlU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21t
YW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkK
K3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+
KGNsaWVudCk7Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFuZExp
c3RlbmVyTWFjKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVt
b3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAg
aWYgKCFpc01lZGlhUmVtb3RlRnJhbWV3b3JrQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHN0YXRpYyBjb25zdCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBzdXBwb3J0ZWRDb21tYW5k
c1tdID0geworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBsYXksCisgICAgICAgIE1STWVk
aWFSZW1vdGVDb21tYW5kUGF1c2UsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xl
UGxheVBhdXNlLAorICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQs
CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQsCisgICAgICAgIE1S
TWVkaWFSZW1vdGVDb21tYW5kQmVnaW5SZXdpbmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kRW5kUmV3aW5kLAorICAgIH07CisKKyAgICBhdXRvIGNvbW1hbmRJbmZvQXJyYXkgPSBhZG9w
dENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIEFSUkFZX1NJWkUo
c3VwcG9ydGVkQ29tbWFuZHMpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisKKyAgICBmb3Ig
KGF1dG8gY29tbWFuZCA6IHN1cHBvcnRlZENvbW1hbmRzKSB7CisgICAgICAgIGF1dG8gY29tbWFu
ZEluZm8gPSBhZG9wdENGKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb0NyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0KSk7CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQo
Y29tbWFuZEluZm8uZ2V0KCksIGNvbW1hbmQpOworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZEluZm9TZXRFbmFibGVkKGNvbW1hbmRJbmZvLmdldCgpLCB0cnVlKTsKKyAgICAgICAgQ0ZBcnJh
eUFwcGVuZFZhbHVlKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCksIGNvbW1hbmRJbmZvLmdldCgpKTsK
KyAgICB9CisKKyAgICBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMoY29tbWFuZElu
Zm9BcnJheS5nZXQoKSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luKCksIG51bGxwdHIsIG51
bGxwdHIpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2Nv
bW1hbmRIYW5kbGVyID0gTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhe
KE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBvcHRpb25zLCB2
b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSkgeworICAgICAgICBVTlVTRURfUEFSQU0ob3B0
aW9ucyk7CisKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQgeyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Tm9Db21tYW5k
IH07CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNhc2UgTVJNZWRpYVJl
bW90ZUNvbW1hbmRQbGF5OgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlBsYXlDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQYXVzZToKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFu
ZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVBsYXlQYXVzZToKKyAg
ICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpUb2dnbGVQ
bGF5UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRp
YVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3YXJkOgorICAgICAgICAgICAgcGxhdGZvcm1Db21t
YW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRFbmRG
YXN0Rm9yd2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kOgorICAgICAgICAgICAg
cGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0JhY2t3
YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1STWVkaWFSZW1v
dGVDb21tYW5kRW5kUmV3aW5kOgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9OworCisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIHdlYWtUaGlzLT5tX2NsaWVudC5kaWRSZWNlaXZlUmVtb3RlQ29udHJvbENv
bW1hbmQocGxhdGZvcm1Db21tYW5kKTsKKyAgICAgICAgY29tcGxldGlvbihzdGF0aWNfY2FzdDxD
RkFycmF5UmVmPihAW0AwXSkpOworICAgIH0pOworI2VuZGlmIC8vIFVTRShNRURJQVJFTU9URSkK
K30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
KCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKG1fY29tbWFuZEhhbmRsZXIpCisg
ICAgICAgIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrKG1fY29tbWFuZEhh
bmRsZXIpOworI2VuZGlmCit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVkMTM4ZjMzODAx
ZGMwMWYzNjJjMjkwNjYzMDQxODY2MTdhNDJiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTWVkaWFSZW1vdGVTUEkuaApAQCAtMCwwICsxLDExMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPE1lZGlhUmVtb3RlL01lZGlh
UmVtb3RlLmg+CisKKyNlbHNlCisKK2VudW0geworICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUGxh
eSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kVG9nZ2xlUGxheVBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU3RvcCwKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZE5leHRUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBy
ZXZpb3VzVHJhY2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlU2h1ZmZsZU1vZGUs
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlUmVwZWF0TW9kZSwKKyAgICBNUk1lZGlh
UmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmRGYXN0Rm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kLAorICAg
IE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
UmV3aW5kMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRmFzdEZvcndhcmQxNVNl
Y29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRSZXdpbmQzMFNlY29uZHMsCisgICAgTVJN
ZWRpYVJlbW90ZUNvbW1hbmRGYXN0Rm9yd2FyZDMwU2Vjb25kcywKKyAgICBNUk1lZGlhUmVtb3Rl
Q29tbWFuZFRvZ2dsZVJlY29yZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNraXBGb3J3YXJk
LAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU2tpcEJhY2t3YXJkLAorICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kQ2hhbmdlUGxheWJhY2tSYXRlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUmF0
ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kTGlrZVRyYWNrLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kRGlzbGlrZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQm9va21h
cmtUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNlZWtUb1BsYXliYWNrUG9zaXRpb24s
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRDaGFuZ2VSZXBlYXRNb2RlLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kQ2hhbmdlU2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmFibGVMYW5ndWFnZU9wdGlvbiwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZERpc2FibGVMYW5n
dWFnZU9wdGlvbgorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJNZWRpYVJlbW90ZUNvbW1hbmQ7CisK
K2VudW0geworICAgIGtNUlBsYXliYWNrU3RhdGVVbmtub3duID0gMCwKKyAgICBrTVJQbGF5YmFj
a1N0YXRlUGxheWluZywKKyAgICBrTVJQbGF5YmFja1N0YXRlUGF1c2VkLAorICAgIGtNUlBsYXli
YWNrU3RhdGVTdG9wcGVkLAorICAgIGtNUlBsYXliYWNrU3RhdGVJbnRlcnJ1cHRlZAorfTsKK3R5
cGVkZWYgdWludDMyX3QgTVJQbGF5YmFja1N0YXRlOworCit0eXBlZGVmIHVpbnQzMl90IE1STWVk
aWFSZW1vdGVFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9NUk9yaWdpbiAqTVJPcmlnaW5SZWY7Cit0
eXBlZGVmIHN0cnVjdCBfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvICpNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9SZWY7Cit0eXBlZGVmIHZvaWQoXk1STWVkaWFSZW1vdGVBc3luY0NvbW1hbmRIYW5k
bGVyQmxvY2spKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBv
cHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSk7CisKK1dURl9FWFRFUk5fQ19C
RUdJTgorCisjcHJhZ21hIG1hcmsgLSBNUlJlbW90ZUNvbnRyb2wKKwordm9pZCogTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhNUk1lZGlhUmVtb3RlQXN5bmNDb21tYW5k
SGFuZGxlckJsb2NrKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVJlbW92ZUNvbW1hbmRIYW5kbGVyQmxv
Y2sodm9pZCAqb2JzZXJ2ZXIpOwordm9pZCBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFu
ZHMoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5SZWYsIGRpc3BhdGNoX3F1ZXVlX3QgcmVw
bHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IgZXJyKSk7CisKKyNwcmFn
bWEgbWFyayAtIE1ST3JpZ2luCisKK01ST3JpZ2luUmVmIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9y
aWdpbigpOworCisjcHJhZ21hIG1hcmsgLSBNUkNvbW1hbmRJbmZvCisKK01STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1JlZiBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUoQ0ZBbGxvY2F0b3JS
ZWYpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kKE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1JlZiwgTVJNZWRpYVJlbW90ZUNvbW1hbmQpOwordm9pZCBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgQm9v
bGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMoTVJNZWRpYVJl
bW90ZUNvbW1hbmRJbmZvUmVmLCBDRkRpY3Rpb25hcnlSZWYpOworCisjcHJhZ21hIG1hcmsgLSBN
Uk5vd1BsYXlpbmcKKworQm9vbGVhbiBNUk1lZGlhUmVtb3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBw
bGljYXRpb24oQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGlj
YXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1ST3JpZ2luUmVmLCBNUlBsYXliYWNrU3RhdGUs
IGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3Rl
RXJyb3IpKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvKENGRGljdGlvbmFy
eVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBmMGUxZTFk
NjM3MTc4MTc3MDg3MWJjZTkyZGM5Nzc1YWE4Mjc5ODlkLi5mN2JhMTJlZmZlMGU0YzY3ZDEzMzM3
MmZhMTk4MDQ2NWNjNWY3ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTIwMCw2ICsyMDAsOSBAQAogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5mbG93LWRpdmVydC10b2tlbiIpCiAjZW5k
aWYKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQorI2VuZGlmCiApCiAK
IDs7IFNlY3VyaXR5IGZyYW1ld29yawo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282349</attachid>
            <date>2016-06-29 08:51:36 -0700</date>
            <delta_ts>2016-06-29 08:56:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159250-20160629085116.patch</filename>
            <type>text/plain</type>
            <size>63179</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjQ1NmUwOTZkNmI4NDI2Mjg0OWE1MmYwMjY5M2I2Mjk5OWZmYWRl
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVVNFX01FRElBUkVNT1RFLgor
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTYtMDYtMjggIFRvbWFzIFBvcGVsYSAg
PHRwb3BlbGFAcmVkaGF0LmNvbT4KIAogICAgICAgICBUSFVNQjIgc3VwcG9ydCBub3QgY29ycmVj
dGx5IGRldGVjdGVkIG9uIEZlZG9yYSB3aXRoIEdDQyA2LjEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmNDVl
Y2U5YjgzOTA1MDNlYWIzNzcxMjljYTA5ZGI2N2NiMTVmYS4uZTdlMWQ3NmYzNTk5MWU3YTgxNDBm
MWI5MmY1M2ZiNDkwOTJhZjQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA2
LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1l
ZGlhUmVtb3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU5MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRvcHQgTWVkaWFSZW1vdGUgYW5kIHVzZSB0aGUgZnJhbWV3b3JrIHRvIGltcGxlbWVudCBN
ZWRpYVNlc3Npb25NYW5hZ2VNYWMKKyAgICAgICAgYW5kIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcC4KKyAgICAgICAgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vz
c2lvblN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp+TWVkaWFTZXNzaW9u
TWFuYWdlck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6cmVtb3ZlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6bm93UGxheWluZ0VsaWdp
YmxlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU29mdExpbmtp
bmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OmNyZWF0ZVdl
YWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
bW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9z
cGkvbWFjL01lZGlhUmVtb3RlU1BJLmg6IEFkZGVkLgorCiAyMDE2LTA2LTI3ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENyb3NzLWRvbWFpbiB2aWRlbyBsb2Fk
cyBkbyBub3QgcHJvbXB0IGZvciBhdXRob3JpemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1ZjA0MWRj
ODYyY2Q4OTgwYTFhYTk5ZWQwYWU2ZmJjZWM0NzdlNDguLjM0MzVkNTEzNTkyMjU4M2FjZTg3NmM3
NTE1ZGYyN2RjMzUwMjY3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNi0y
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRp
YVJlbW90ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1v
dGVkIFhQQyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxv
bmdlciBlbnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2Zl
ODhmNmYzOGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJl
ZWRjYmI4MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2Vu
ZGlmIC8qIFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBjMTY1YzU1NDkxOGMzYTQzY2JiZmEwM2Ey
MDBhM2U0YzkxNzAyMy4uYzM4OWY1YzdhMTFkZWYyNDkyNGRiNTFhNDY5ZDExMmFjNjQ4MWQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzE5LDcgKzMxOSw3IEBACiAJCTA3RTNERkQxMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRp
YVBsYXliYWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3RTlF
MTJFMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RTlFMTJE
MThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCAq
LzsgfTsKIAkJMDdFOUUxMzAxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAqLzsgfTsKLQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwICovOyB9OworCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLm1tICovOyB9OwogCQkwN0VFNzZFQjFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcCAqLzsgfTsKIAkJMDdFRTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0VFNzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCAq
LzsgfTsKIAkJMDdFRTc2RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
N0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAq
LzsgfTsKQEAgLTYxMjQsNiArNjEyNCw3IEBACiAJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJp
dmF0ZS5oICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3Bw
ICovOyB9OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0
MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CisJ
CUNENjY5RDY4MUQyMzM2NEIwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NjlENjYx
RDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi87IH07CiAJ
CUNEN0QzMzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQxMUM3
QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsgfTsKIAkJQ0Q3
RDMzNDQxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQyMUM3QTEyM0Yw
MDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CiAJCUNEN0QzMzQ3MUM3
QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuY3BwICovOyB9OwpAQCAtNjEzOSw2ICs2MTQwLDExIEBACiAJCUNE
ODIwMzExMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRjEzOTVBQ0U3MDBG
OTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovOyB9OwogCQlDRDhBN0JCQjE5NzczNUZF
MDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMg
LyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi87IH07CiAJCUNEOEE3QkJDMTk3NzM1
RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQz
IC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi87IH07CisJCUNEOEFDQTg4MUQyMzdB
QTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NjFEMjM3QUEyMDBFQ0M1OUUg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tICovOyB9OworCQlDRDhBQ0E4OTFEMjM3QUEy
MDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CisJCUNEOEFDQThCMUQyMzk0NjQwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q4QUNBOEExRDIzOTQ2NDAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU1BJ
LmggKi87IH07CisJCUNEOEFDQThFMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRM
aW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
OEFDQThDMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcCAqLzsgfTsK
KwkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgw
RDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgw
RDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAq
LzsgfTsKIAkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZp
ZGVvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNv
dXJjZS5oICovOyB9OwpAQCAtNzc4Myw3ICs3Nzg5LDcgQEAKIAkJMDdFM0RGRDAxQTlFNzg2NTAw
NzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0VEQzNFRDFBQUNCNzVEMDA5
ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3RUU3NkVBMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMg
LyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MTc5LDYgKzE0MTg1LDggQEAKIAkJQ0Q2NDFFQkQxODE5QjM1OTAwRUU0
QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVRpbWVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0
MUVCRTE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlE
NjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
Y3BwOyBwYXRoID0gY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0
MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDsg
cGF0aCA9IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3Jl
VmlkZW9Tb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b3JlVmlkZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDE5
NSw2ICsxNDIwMywxMSBAQAogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93
QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
V2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhBN0JC
OTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QTdCQkExOTc3MzVGRTAw
Q0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEOEFDQTg3MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThBMUQyMzk0NjQwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVJlbW90ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhBQ0E4
QzFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlh
UmVtb3RlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFS
ZW1vdGVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0MDE4
MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4
QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1
QTQ0MTgwREQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZp
ZGVvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODA2Niw2ICsxODA3OSw4IEBACiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTA2RTgxRUVCMEFCNURBOTcwMEM4Nzgz
NyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi8sCiAJCQkJMTQwMjY0NUQwQUZE
QzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8sCisJCQkJQ0Q4QUNBOEMxRDIzOTcxOTAw
RUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovLAorCQkJCUNEOEFDQThEMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCiAJCQkJOTM1MDBGMzExM0ZE
RTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJCQkJNTJGNTJFMTAx
NEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovLAogCQkJCTRCMjcw
OTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApAQCAtMTgwODEsNiAr
MTgwOTYsOCBAQAogCQkJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVy
TWFjLmNwcCAqLywKIAkJCQk0NkRCQjY0RTFBQjhDOTZGMDBEOUE4MTMgLyogUG93ZXJPYnNlcnZl
ck1hYy5oICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhN
YWMubW0gKi8sCisJCQkJQ0Q4QUNBODYxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hYy5tbSAqLywKKwkJCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVyTWFjLmggKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8q
IFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAv
KiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTkyMjUsNiArMTkyNDIsNyBAQAogCQkJCTA3
RjBCOTdCMUFDNURCNDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAqLywKIAkJCQkyRDU5
RjFCRTFBMDA0NEM2MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJCTJENDEz
RjYwMUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKKwkJCQlDRDhBQ0E4QTFEMjM5
NDY0MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLywKIAkJCQkyRDc3QUMyNjFCRjJCOTg2
MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi8sCiAJCQkJMkQ3N0FDMjcxQkYyQjk4
NjAwNzI0NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCAqLywKIAkJCQkyREI5QzRBOTFCMzIzMUY0
MDA3MEYyN0YgLyogTlNFdmVudFNQSS5oICovLApAQCAtMjMzMzQsNiArMjMzNTIsMTQgQEAKIAkJ
CW5hbWUgPSBNZWRpYVNvdXJjZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q5QTM3RjUxN0M3RDkzNjAwQzVG
QTdBIC8qIG1lZGlhY29udHJvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtMjUwMzQsNiArMjUwNjAsNyBAQAogCQlGRDMxNjA0MDEyQjAyNkEzMDBDMUEz
NTkgLyogYXVkaW8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUNENjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLywKIAkJCQlDRDBFRUUwRDE0
NzQzRTQ4MDAzRUFGQTIgLyogaW9zICovLAogCQkJCUZEMzE2MEIwMTJCMDI3MDcwMEMxQTM1OSAv
KiBtYWMgKi8sCiAJCQkJRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAq
LywKQEAgLTI1MTM2LDcgKzI1MTYzLDggQEAKIAkJCQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUg
LyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKIAkJCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJGQzUgLyog
Q0FSaW5nQnVmZmVyLmggKi8sCiAJCQkJRkQzMTYwQkExMkIwMjcyQTAwQzFBMzU5IC8qIEZGVEZy
YW1lTWFjLmNwcCAqLywKLQkJCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5jcHAgKi8sCisJCQkJMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gKi8sCisJCQkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2
IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDUyLDYgKzI2NDgwLDcgQEAKIAkJCQk5
M0YxOTlFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBFQ0M1OUUg
LyogTWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzRTUxMEExOERG
OEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTIw
QzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI3MDcwLDYgKzI3MDk5LDcgQEAKIAkJCQk5QkRBNjREODFCOTc1Q0Yy
MDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3QjE3
QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
OURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE3RkVFQUQxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzZB
MjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc5MSw2
ICsyODgyMSw3IEBACiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vy
cm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkg
LyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1
MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5T
VVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZF
IC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREVDOTgwMzBBRUQ3
RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTY0Myw2
ICsyOTY3NCw3IEBACiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMyODVGIC8qIENTU1BhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAyQTU0MDBFMDk5QzVBMDA0QjZEMkIgLyogQ1NTUGFy
c2VyVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZG
OCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDY2OUQ2ODFE
MjMzNjRCMDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MEU2RDA1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJv
cGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYyRDA1IC8q
IENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyNzYsNyArMzEz
MDgsNyBAQAogCQkJCUM5NkY1RUM2MUI1ODcyMjYwMDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRl
cnJ1cHRpb25Qcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5MEY2NTU1MUIyMjUz
QjEwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgz
RUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDNB
NDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RDOEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFT
b3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMzgwLDYgKzMxNDEyLDcgQEAK
IAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGlt
ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEOEFDQTg4MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxQTBEN0Uy
QjgyMDA3QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNGNkJE
RkIwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE4OCw2ICszMjIyMSw3IEBACiAJCQkJN0FBM0E2OTkx
OTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFGNzJCRjBBMTg3RkQ0NDkwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJ
T1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2QTMxOTRCNUMyMjAwMUNCRDI0IC8qIFRp
bGVDb3ZlcmFnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4RTFEMjM5NzE5MDBF
Q0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEz
QTY5QjE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk4NzcwRjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21t
YW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExp
c3RlbmVyLmNwcAppbmRleCA3YzU1NTNmNTdjNjE5NWQ1MDk3ZjNkOGE1NzgyN2E2ZTUxNjA4Mzlj
Li4wMzhkNzk0ZGU2NDc0Njc1ZDYyOWQ4NzNiNGUxNWMwODdmMTNiNjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAgLTI4LDcg
KzI4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNp
ZiAhUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oTUFDKQogc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29t
bWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKaW5kZXggYzEwZTdkNGM3ZTA1NDAwYTQ3NTQwMjRkMjk3Njc5ZmE3ZDlmMzVhNS4uOTcyNGJj
NWI3Yjc3YmYwYTlhYmU5Nzk2NjQxMTUyYmRhNTI3MTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQ
TEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKE1BQykKIHN0YXRp
YyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ciA9IG51bGxwdHI7CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM0NjJmMTMwZTE2NDkxMzg5N2RiODI4NjhiNTc0MzJhOTE2M2My
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJB
dWRpb0J1ZmZlclNpemUgPSAxMjg7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVv
QnVmZmVyU2l6ZSA9IDQwOTY7CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQoreworICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRp
byglZCksIFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyks
IGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpXZWJBdWRpbykpOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
V2ViQXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgIGVsc2UgaWYgKChoYXMo
UGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246
OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVk
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmln
dXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKKyAgICAgICAgLy8gY2F1c2VzIG1l
ZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KKworICAgICAgICBzaXplX3QgYnVmZmVy
U2l6ZTsKKyAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJk
d2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQorICAgICAg
ICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7CisKKyAgICAg
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShi
dWZmZXJTaXplKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFTZXR0aW5n
czo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkK
KyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1
ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKTsKKyAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2Vi
QXVkaW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29y
eShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisjZW5kaWYKK30KKworI2VuZGlmIC8vIFVT
RShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3NzMxYTYyMmViMjMxNDk2NTM4MDA3NTViYzMwNDEzM2I4Y2E4ZjExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKLQotI2lmIFVT
RShBVURJT19TRVNTSU9OKQotCi0jaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAxMjg7Ci1z
dGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7Ci0KLXZv
aWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQotewot
ICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lv
blN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1ZGlvKCVkKSIsIGNv
dW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpOwotCi0g
ICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQotICAgICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRp
b0J1ZmZlclNpemUpOwotICAgIGVsc2UgaWYgKChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZp
ZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxv
d1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhl
IGNvZGUgYmVsb3cKLSAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwg
b24gMTAuOC4KLQotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsKLSAgICAgICAgaWYgKG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZp
Y2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQ
b3dlclZpZGVvQnVmZmVyU2l6ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyU2l6
ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKLSAgICB9Ci0KLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7
Ci0gICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lv
bjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFj
ayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKLSAgICB9Ci0gICAg
ZWxzZSBpZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpCi0gICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTUyMTJiMDQ1MzNlZjJlNTVkZTkyODNkMTY2
OTZiMjU2Mjk3ZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaApAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyA6
IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xh
c3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworCisgICAgTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYygpOworCisgICAgdm9pZCByZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikg
b3ZlcnJpZGU7CisKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworCisgICAgdm9p
ZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIG5v
d1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKKworICAgIGRvdWJsZSBtX3JlcG9ydGVkUmF0ZSB7
IDAgfTsKKyAgICBkb3VibGUgbV9yZXBvcnRlZER1cmF0aW9uIHsgMCB9OworICAgIFN0cmluZyBt
X3JlcG9ydGVkVGl0bGU7CisgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZiZTJkYzcxM2YzMmZhNzQ3YjZlNDcwNDlkZWYyODNkZDY1NjM1YTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oIgorCisjaWYg
UExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
ci5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKworI2ltcG9ydCAiTWVkaWFS
ZW1vdGVTb2Z0TGluay5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyogcGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyID0gbnVsbHB0cjsKKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
JiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQoreworICAgIGlm
ICghcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKQorICAgICAgICBwbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIgPSBuZXcgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzsKKyAgICByZXR1cm4gKnBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygp
Cit7CisgICAgcmV0dXJuIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYygpCisgICAgOiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJlc2V0UmVzdHJpY3Rpb25zKCk7Cit9CisK
K01lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6On5NZWRpYVNlc3Npb25NYW5hZ2VyTWFjKCkKK3sKK30K
KworYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2so
UGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYgKCFQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhzZXNzaW9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8o
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpy
ZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpyZW1vdmVTZXNzaW9uIik7CisgICAgdXBk
YXRlTm93UGxheWluZ0luZm8oKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpz
ZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQorewor
ICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhz
ZXNzaW9uKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKK30KKwordm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJikKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkIik7CisgICAgdXBkYXRlTm93UGxh
eWluZ0luZm8oKTsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb24qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWM6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQoreworICAgIGZvciAoYXV0byBzZXNz
aW9uIDogc2Vzc2lvbnMoKSkgeworICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlIHR5cGUgPSBzZXNzaW9uLT5tZWRpYVR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGxh
dGZvcm1NZWRpYVNlc3Npb246OlZpZGVvICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246
OkF1ZGlvKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHNlc3Npb24tPmNo
YXJhY3RlcmlzdGljcygpICYgUGxhdGZvcm1NZWRpYVNlc3Npb246Okhhc0F1ZGlvKQorICAgICAg
ICAgICAgcmV0dXJuIHNlc3Npb247CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8oKQorewor
I2lmIFVTRShNRURJQVJFTU9URSkKKyAgICBpZiAoIWlzTWVkaWFSZW1vdGVGcmFtZXdvcmtBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFNUk1lZGlhUmVtb3RlU2V0Q2Fu
QmVOb3dQbGF5aW5nQXBwbGljYXRpb24odHJ1ZSkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3Rl
U2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24odHJ1ZSkgZmFpbGVkIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogY3VycmVudFNl
c3Npb24gPSB0aGlzLT5ub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisKKyAgICBMT0coTWVk
aWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIGN1cnJl
bnRTZXNzaW9uID0gJXAiLCBjdXJyZW50U2Vzc2lvbik7CisKKyAgICBpZiAoIWN1cnJlbnRTZXNz
aW9uKSB7CisgICAgICAgIGlmIChtX25vd1BsYXlpbmdBY3RpdmUpIHsKKyAgICAgICAgICAgIExP
RyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0g
Y2xlYXJpbmcgbm93IHBsYXlpbmcgaW5mbyIpOworICAgICAgICAgICAgTVJNZWRpYVJlbW90ZVNl
dE5vd1BsYXlpbmdJbmZvKG51bGxwdHIpOworICAgICAgICAgICAgbV9ub3dQbGF5aW5nQWN0aXZl
ID0gZmFsc2U7CisgICAgICAgICAgICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0
aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihNUk1lZGlhUmVtb3RlR2V0TG9jYWxPcmlnaW4oKSwg
a01SUGxheWJhY2tTdGF0ZVN0b3BwZWQsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oTVJN
ZWRpYVJlbW90ZUVycm9yIGVycm9yKSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3Rl
U2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihzdG9wcGVkKSBm
YWlsZWQgd2l0aCBlcnJvciAldWQiLCBlcnJvcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgdGl0bGUgPSBjdXJyZW50
U2Vzc2lvbi0+dGl0bGUoKTsKKyAgICBkb3VibGUgZHVyYXRpb24gPSBjdXJyZW50U2Vzc2lvbi0+
ZHVyYXRpb24oKTsKKyAgICBkb3VibGUgcmF0ZSA9IGN1cnJlbnRTZXNzaW9uLT5zdGF0ZSgpID09
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQbGF5aW5nID8gMSA6IDA7CisgICAgaWYgKG1fcmVwb3J0
ZWRUaXRsZSA9PSB0aXRsZSAmJiBtX3JlcG9ydGVkUmF0ZSA9PSByYXRlICYmIG1fcmVwb3J0ZWRE
dXJhdGlvbiA9PSBkdXJhdGlvbikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIG5vdGhpbmcgbmV3IHRvIHNob3ciKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVwb3J0ZWRSYXRlID0gcmF0ZTsKKyAg
ICBtX3JlcG9ydGVkRHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBtX3JlcG9ydGVkVGl0bGUgPSB0
aXRsZTsKKworICAgIGF1dG8gaW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJs
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCA0LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICBpZiAoIXRpdGxlLmlz
RW1wdHkoKSkKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVk
aWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KTsKKworICAgIGlmIChzdGQ6OmlzZmluaXRlKGR1cmF0aW9uKSAmJiBkdXJhdGlvbiAhPSBNZWRp
YVBsYXllcjo6aW52YWxpZFRpbWUoKSkgeworICAgICAgICBhdXRvIGNmRHVyYXRpb24gPSBhZG9w
dENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5
cGUsICZkdXJhdGlvbikpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgp
LCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24sIGNmRHVyYXRpb24uZ2V0KCkp
OworICAgIH0KKworICAgIGF1dG8gY2ZSYXRlID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwga0NGTnVtYmVyRG91YmxlVHlwZSwgJnJhdGUpOworICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1Jh
dGUsIGNmUmF0ZSk7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJyZW50U2Vzc2lvbi0+
Y3VycmVudFRpbWUoKTsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3Vy
cmVudFRpbWUgIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpIHsKKyAgICAgICAgYXV0byBj
ZkN1cnJlbnRUaW1lID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBrQ0ZOdW1iZXJEb3VibGVUeXBlLCAmY3VycmVudFRpbWUpKTsKKyAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBz
ZWRUaW1lLCBjZkN1cnJlbnRUaW1lLmdldCgpKTsKKyAgICB9CisKKyAgICBMT0coTWVkaWEsICJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIHRpdGxlID0gXCIl
c1wiLCByYXRlID0gJWYsIGR1cmF0aW9uID0gJWYsIG5vdyA9ICVmIiwKKyAgICAgICAgdGl0bGUu
dXRmOCgpLmRhdGEoKSwgcmF0ZSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lKTsKKworICAgIG1fbm93
UGxheWluZ0FjdGl2ZSA9IHRydWU7CisgICAgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBs
aWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4oTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
KCksIGtNUlBsYXliYWNrU3RhdGVQbGF5aW5nLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
KE1STWVkaWFSZW1vdGVFcnJvciBlcnJvcikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIE1STWVkaWFSZW1vdGVTZXRO
b3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKHBsYXlpbmcpIGZhaWxl
ZCB3aXRoIGVycm9yICV1ZCIsIGVycm9yKTsKKyAgICB9KTsKKyAgICBNUk1lZGlhUmVtb3RlU2V0
Tm93UGxheWluZ0luZm8oaW5mby5nZXQoKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NvZnRMaW5raW5nLmgKaW5kZXggODAyZmRkMTBkMDQ2ZmVkNjJlMTdiNDAzNGEy
MGQ2ZDFiYzBlZTYzYy4uYjFhMDNjMWNlZWVkMWJmMjU1ZmMxYjM3Mzk4NDMyZGU1MTRiNzBkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5oCkBAIC0zMjUs
NiArMzI1LDIyIEBACiAgICAgfSBcCiAgICAgfQogCisjZGVmaW5lIFNPRlRfTElOS19QUklWQVRF
X0ZSQU1FV09SS19GT1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmspIFwKKyAg
ICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgdm9pZCogZnJhbWV3b3JrIyNM
aWJyYXJ5KGJvb2wgaXNPcHRpb25hbCA9IGZhbHNlKTsgXAorICAgIHZvaWQqIGZyYW1ld29yayMj
TGlicmFyeShib29sIGlzT3B0aW9uYWwpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIHZvaWQq
IGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNl
OyBcCisgICAgICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZyYW1l
d29ya0xpYnJhcnkgPSBkbG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy8i
ICNmcmFtZXdvcmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAg
ICAgICAgIGlmICghaXNPcHRpb25hbCkgXAorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X1dJVEhfTUVTU0FHRShmcmFtZXdvcmtMaWJyYXJ5LCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAg
ICAgIH0pOyBcCisgICAgICAgIHJldHVybiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgfSBcCisg
ICAgfQorCiAjZGVmaW5lIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKGZ1bmN0aW9uTmFtZXNw
YWNlLCBmcmFtZXdvcmssIGNsYXNzTmFtZSkgXAogICAgIEBjbGFzcyBjbGFzc05hbWU7IFwKICAg
ICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlhZWUx
MzkwZGY3NTgzZDBkMGZhNTU5MmVkMGEyNWJhN2Y1Y2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmNwcApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShN
RURJQVJFTU9URSkKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlU1BJLmgiCisjaW5jbHVkZSAiU29m
dExpbmtpbmcuaCIKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luLCBNUk9yaWdpblJlZiwg
KCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1v
dGUsIE1STWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJN
ZWRpYVJlbW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJl
bW90ZVJlbW92ZUNvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChv
YnNlcnZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJl
bW90ZSwgTVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJl
ZiBjb21tYW5kcywgTVJPcmlnaW5SZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwg
dm9pZCheY29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9y
aWdpbiwgcmVwbHlRLCBjb21wbGV0aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUsIE1S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksIChh
bGxvY2F0b3IpKTsKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlh
UmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kLCB2b2lkLCAoTVJNZWRp
YVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBj
b21tYW5kKSwgKGNvbW1hbmRJbmZvLCBjb21tYW5kKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRF
bmFibGVkLCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBC
b29sZWFuIGVuYWJsZWQpLCAoY29tbWFuZEluZm8sIGVuYWJsZWQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5k
SW5mb1NldE9wdGlvbnMsIHZvaWQsIChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFu
ZEluZm8sIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1l
ZGlhUmVtb3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24sIEJvb2xlYW4sIChCb29sZWFu
IGZsYWcpLCAoZmxhZykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvLCB2b2lkLCAoQ0ZEaWN0
aW9uYXJ5UmVmIGluZm8pLCAoaW5mbykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlv
blBsYXliYWNrU3RhdGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1SUGxh
eWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZChe
Y29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3RhdGUs
IHJlcGx5USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJD
b3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0
cmluZ1JlZik7CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJl
bW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1cmF0aW9uLCBDRlN0cmluZ1JlZik7
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01S
TWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7CitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworCisjZW5kaWYg
Ly8gVVNFKE1FRElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01lZGlhUmVtb3RlU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9N
ZWRpYVJlbW90ZVNvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE2MDM2Mzg4NzNlMDU3Mjc3MzE1ODI3
NDg5NDU4ZGQxMzNlNWFlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisjaW5jbHVkZSAiTWVk
aWFSZW1vdGVTUEkuaCIKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorCitTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2Fs
T3JpZ2luLCBNUk9yaWdpblJlZiwgKCksICgpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlR2V0TG9j
YWxPcmlnaW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJN
ZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaywgdm9pZCosIChNUk1lZGlhUmVt
b3RlQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrIGJsb2NrKSwgKGJsb2NrKSkKKyNkZWZpbmUgTVJN
ZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0TGlua19NZWRpYVJlbW90
ZV9NUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVJlbW92
ZUNvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChvYnNlcnZlcikp
CisjZGVmaW5lIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrIHNvZnRMaW5r
X01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJl
bW90ZVNldFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJP
cmlnaW5SZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxldGlv
bikoTVJNZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9yaWdpbiwgcmVwbHlRLCBj
b21wbGV0aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzIHNv
ZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFS
ZW1vdGVDb21tYW5kSW5mb0NyZWF0ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKGFsbG9jYXRvcikpOworI2RlZmluZSBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9DcmVhdGUgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1h
bmQgY29tbWFuZCksIChjb21tYW5kSW5mbywgY29tbWFuZCkpCisjZGVmaW5lIE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1NldENvbW1hbmQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldEVuYWJsZWQsIHZv
aWQsIChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIEJvb2xlYW4gZW5h
YmxlZCksIChjb21tYW5kSW5mbywgZW5hYmxlZCkpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVDb21t
YW5kSW5mb1NldEVuYWJsZWQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1h
bmRJbmZvU2V0RW5hYmxlZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
TWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMsIHZvaWQsIChN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIENGRGljdGlvbmFyeVJlZiBv
cHRpb25zKSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvU2V0T3B0aW9ucyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9TZXRPcHRpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9u
LCBCb29sZWFuLCAoQm9vbGVhbiBmbGFnKSwgKGZsYWcpKQorI2RlZmluZSBNUk1lZGlhUmVtb3Rl
U2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRp
YVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlp
bmdJbmZvLCB2b2lkLCAoQ0ZEaWN0aW9uYXJ5UmVmIGluZm8pLCAoaW5mbykpCisjZGVmaW5lIE1S
TWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlh
UmVtb3RlU2V0Tm93UGxheWluZ0luZm8KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdl
YkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0aW9u
UGxheWJhY2tTdGF0ZUZvck9yaWdpbiwgdm9pZCwgKE1ST3JpZ2luUmVmIG9yaWdpbiwgTVJQbGF5
YmFja1N0YXRlIHBsYXliYWNrU3RhdGUsIGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5j
b21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IpKSwgKG9yaWdpbiwgcGxheWJhY2tTdGF0ZSwg
cmVwbHlRLCBjb21wbGV0aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdB
cHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJN
ZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4K
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvVGl0bGUsIENGU3RyaW5nUmVmKTsKKyNkZWZpbmUga01S
TWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJl
bW90ZU5vd1BsYXlpbmdJbmZvVGl0bGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
V2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlv
biwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVy
YXRpb24gZ2V0X01lZGlhUmVtb3RlX2tNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlv
bigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
a01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7Cisj
ZGVmaW5lIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSBnZXRfTWVkaWFS
ZW1vdGVfa01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lKCkKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90
ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIGtNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUgZ2V0X01lZGlhUmVtb3RlX2tNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUoKQorCisjZW5kaWYgLy8gVVNFKE1F
RElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOTM4ZmI5YWQ5MGRiNTJlMDVlYWEx
ZTI5ZDhlNWQxOTU5YmYwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgOiBwdWJsaWMgUmVtb3RlQ29tbWFuZExpc3RlbmVyIHsK
K3B1YmxpYzoKKyAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoUmVtb3RlQ29tbWFuZExpc3Rl
bmVyQ2xpZW50Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKCk7CisK
K3Byb3RlY3RlZDoKKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisK
KyAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZh
Y3RvcnkgeyB0aGlzIH07CisgICAgdm9pZCogbV9jb21tYW5kSGFuZGxlciB7IG51bGxwdHIgfTsK
K307CisgICAgCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MWRhMTRlZTQ2ZWI5MWI4YzBlNzVjYmJjN2U3ODUwNzRmYmIxYjZhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYy5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgiCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisKKyNpbXBvcnQgIk1lZGlhUmVtb3RlU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21t
YW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkK
K3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+
KGNsaWVudCk7Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFuZExp
c3RlbmVyTWFjKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVt
b3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAg
aWYgKCFpc01lZGlhUmVtb3RlRnJhbWV3b3JrQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHN0YXRpYyBjb25zdCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBzdXBwb3J0ZWRDb21tYW5k
c1tdID0geworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBsYXksCisgICAgICAgIE1STWVk
aWFSZW1vdGVDb21tYW5kUGF1c2UsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xl
UGxheVBhdXNlLAorICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQs
CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQsCisgICAgICAgIE1S
TWVkaWFSZW1vdGVDb21tYW5kQmVnaW5SZXdpbmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kRW5kUmV3aW5kLAorICAgIH07CisKKyAgICBhdXRvIGNvbW1hbmRJbmZvQXJyYXkgPSBhZG9w
dENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIEFSUkFZX1NJWkUo
c3VwcG9ydGVkQ29tbWFuZHMpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisKKyAgICBmb3Ig
KGF1dG8gY29tbWFuZCA6IHN1cHBvcnRlZENvbW1hbmRzKSB7CisgICAgICAgIGF1dG8gY29tbWFu
ZEluZm8gPSBhZG9wdENGKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb0NyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0KSk7CisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQo
Y29tbWFuZEluZm8uZ2V0KCksIGNvbW1hbmQpOworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZEluZm9TZXRFbmFibGVkKGNvbW1hbmRJbmZvLmdldCgpLCB0cnVlKTsKKyAgICAgICAgQ0ZBcnJh
eUFwcGVuZFZhbHVlKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCksIGNvbW1hbmRJbmZvLmdldCgpKTsK
KyAgICB9CisKKyAgICBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMoY29tbWFuZElu
Zm9BcnJheS5nZXQoKSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luKCksIG51bGxwdHIsIG51
bGxwdHIpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2Nv
bW1hbmRIYW5kbGVyID0gTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhe
KE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBvcHRpb25zLCB2
b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSkgeworICAgICAgICBVTlVTRURfUEFSQU0ob3B0
aW9ucyk7CisKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQgeyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Tm9Db21tYW5k
IH07CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNhc2UgTVJNZWRpYVJl
bW90ZUNvbW1hbmRQbGF5OgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlBsYXlDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQYXVzZToKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFu
ZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVBsYXlQYXVzZToKKyAg
ICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpUb2dnbGVQ
bGF5UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRp
YVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3YXJkOgorICAgICAgICAgICAgcGxhdGZvcm1Db21t
YW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRFbmRG
YXN0Rm9yd2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kOgorICAgICAgICAgICAg
cGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0JhY2t3
YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1STWVkaWFSZW1v
dGVDb21tYW5kRW5kUmV3aW5kOgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9OworCisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIHdlYWtUaGlzLT5tX2NsaWVudC5kaWRSZWNlaXZlUmVtb3RlQ29udHJvbENv
bW1hbmQocGxhdGZvcm1Db21tYW5kKTsKKyAgICAgICAgY29tcGxldGlvbihzdGF0aWNfY2FzdDxD
RkFycmF5UmVmPihAW0AwXSkpOworICAgIH0pOworI2VuZGlmIC8vIFVTRShNRURJQVJFTU9URSkK
K30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
KCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKG1fY29tbWFuZEhhbmRsZXIpCisg
ICAgICAgIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrKG1fY29tbWFuZEhh
bmRsZXIpOworI2VuZGlmCit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVkMTM4ZjMzODAx
ZGMwMWYzNjJjMjkwNjYzMDQxODY2MTdhNDJiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTWVkaWFSZW1vdGVTUEkuaApAQCAtMCwwICsxLDExMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPE1lZGlhUmVtb3RlL01lZGlh
UmVtb3RlLmg+CisKKyNlbHNlCisKK2VudW0geworICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUGxh
eSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21t
YW5kVG9nZ2xlUGxheVBhdXNlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU3RvcCwKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZE5leHRUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBy
ZXZpb3VzVHJhY2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlU2h1ZmZsZU1vZGUs
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlUmVwZWF0TW9kZSwKKyAgICBNUk1lZGlh
UmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmRGYXN0Rm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kLAorICAg
IE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
UmV3aW5kMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRmFzdEZvcndhcmQxNVNl
Y29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRSZXdpbmQzMFNlY29uZHMsCisgICAgTVJN
ZWRpYVJlbW90ZUNvbW1hbmRGYXN0Rm9yd2FyZDMwU2Vjb25kcywKKyAgICBNUk1lZGlhUmVtb3Rl
Q29tbWFuZFRvZ2dsZVJlY29yZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNraXBGb3J3YXJk
LAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU2tpcEJhY2t3YXJkLAorICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kQ2hhbmdlUGxheWJhY2tSYXRlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kUmF0
ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kTGlrZVRyYWNrLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kRGlzbGlrZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQm9va21h
cmtUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNlZWtUb1BsYXliYWNrUG9zaXRpb24s
CisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRDaGFuZ2VSZXBlYXRNb2RlLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kQ2hhbmdlU2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRF
bmFibGVMYW5ndWFnZU9wdGlvbiwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZERpc2FibGVMYW5n
dWFnZU9wdGlvbgorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJNZWRpYVJlbW90ZUNvbW1hbmQ7CisK
K2VudW0geworICAgIGtNUlBsYXliYWNrU3RhdGVVbmtub3duID0gMCwKKyAgICBrTVJQbGF5YmFj
a1N0YXRlUGxheWluZywKKyAgICBrTVJQbGF5YmFja1N0YXRlUGF1c2VkLAorICAgIGtNUlBsYXli
YWNrU3RhdGVTdG9wcGVkLAorICAgIGtNUlBsYXliYWNrU3RhdGVJbnRlcnJ1cHRlZAorfTsKK3R5
cGVkZWYgdWludDMyX3QgTVJQbGF5YmFja1N0YXRlOworCit0eXBlZGVmIHVpbnQzMl90IE1STWVk
aWFSZW1vdGVFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9NUk9yaWdpbiAqTVJPcmlnaW5SZWY7Cit0
eXBlZGVmIHN0cnVjdCBfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvICpNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9SZWY7Cit0eXBlZGVmIHZvaWQoXk1STWVkaWFSZW1vdGVBc3luY0NvbW1hbmRIYW5k
bGVyQmxvY2spKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGljdGlvbmFyeVJlZiBv
cHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSk7CisKK1dURl9FWFRFUk5fQ19C
RUdJTgorCisjcHJhZ21hIG1hcmsgLSBNUlJlbW90ZUNvbnRyb2wKKwordm9pZCogTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhNUk1lZGlhUmVtb3RlQXN5bmNDb21tYW5k
SGFuZGxlckJsb2NrKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVJlbW92ZUNvbW1hbmRIYW5kbGVyQmxv
Y2sodm9pZCAqb2JzZXJ2ZXIpOwordm9pZCBNUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFu
ZHMoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5SZWYsIGRpc3BhdGNoX3F1ZXVlX3QgcmVw
bHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IgZXJyKSk7CisKKyNwcmFn
bWEgbWFyayAtIE1ST3JpZ2luCisKK01ST3JpZ2luUmVmIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9y
aWdpbigpOworCisjcHJhZ21hIG1hcmsgLSBNUkNvbW1hbmRJbmZvCisKK01STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1JlZiBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUoQ0ZBbGxvY2F0b3JS
ZWYpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kKE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1JlZiwgTVJNZWRpYVJlbW90ZUNvbW1hbmQpOwordm9pZCBNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgQm9v
bGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMoTVJNZWRpYVJl
bW90ZUNvbW1hbmRJbmZvUmVmLCBDRkRpY3Rpb25hcnlSZWYpOworCisjcHJhZ21hIG1hcmsgLSBN
Uk5vd1BsYXlpbmcKKworQm9vbGVhbiBNUk1lZGlhUmVtb3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBw
bGljYXRpb24oQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGlj
YXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1ST3JpZ2luUmVmLCBNUlBsYXliYWNrU3RhdGUs
IGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3Rl
RXJyb3IpKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvKENGRGljdGlvbmFy
eVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBmMGUxZTFk
NjM3MTc4MTc3MDg3MWJjZTkyZGM5Nzc1YWE4Mjc5ODlkLi5mN2JhMTJlZmZlMGU0YzY3ZDEzMzM3
MmZhMTk4MDQ2NWNjNWY3ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTIwMCw2ICsyMDAsOSBAQAogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5mbG93LWRpdmVydC10b2tlbiIpCiAjZW5k
aWYKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQorI2VuZGlmCiApCiAK
IDs7IFNlY3VyaXR5IGZyYW1ld29yawo=
</data>
<flag name="review"
          id="306167"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282351</attachid>
            <date>2016-06-29 09:34:12 -0700</date>
            <delta_ts>2016-06-29 09:36:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-159250-20160629093353.patch</filename>
            <type>text/plain</type>
            <size>64749</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjBiZTJhNGYxY2FkY2NhZjVhMzlmYmYzYmMyOWJiOGVkYWJlNGNi
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIFVTRV9NRURJQVJFTU9URS4KKwor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE2LTA2LTI4ICBUb21hcyBQb3BlbGEgIDx0
cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgVEhVTUIyIHN1cHBvcnQgbm90IGNvcnJlY3Rs
eSBkZXRlY3RlZCBvbiBGZWRvcmEgd2l0aCBHQ0MgNi4xLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkZjQ1ZWNl
OWI4MzkwNTAzZWFiMzc3MTI5Y2EwOWRiNjdjYjE1ZmEuLjUzYjY0NDE5NjdlYzM2ZGE3YTVlYzhh
MGEwZGE4YWIwNDYzZTk4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNi0wNi0y
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRp
YVJlbW90ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBB
ZG9wdCBNZWRpYVJlbW90ZSBhbmQgdXNlIHRoZSBmcmFtZXdvcmsgdG8gaW1wbGVtZW50IE1lZGlh
U2Vzc2lvbk1hbmFnZU1hYworICAgICAgICBhbmQgUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMu
Y3BwLgorICAgICAgICAoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9u
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6On5NZWRpYVNlc3Npb25NYW5h
Z2VyTWFjKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpub3dQbGF5aW5nRWxpZ2libGVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0
ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6Y3JlYXRlV2Vha1B0
cik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OlJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJN
YWM6On5SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMpOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9t
YWMvTWVkaWFSZW1vdGVTUEkuaDogQWRkZWQuCisKIDIwMTYtMDYtMjcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jvc3MtZG9tYWluIHZpZGVvIGxvYWRzIGRv
IG5vdCBwcm9tcHQgZm9yIGF1dGhvcml6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTVmMDQxZGM4NjJj
ZDg5ODBhMWFhOTllZDBhZTZmYmNlYzQ3N2U0OC4uNzhlNzJhYjhkYmYyOTY4ZmJiNjM0NmI3N2Fk
ZGVmYWExMWJlZGVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA2LTI5ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1lZGlhUmVt
b3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBh
IHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1vdGVkIFhQ
QyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxvbmdlciBl
bnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2ZlODhmNmYz
OGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJlZWRjYmI4
MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2VuZGlmIC8q
IFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGIzYjk1NDI4ZThlN2ZmMTgxYzVlZTBlM2Uy
M2UyNDE2NjQyN2RiYS4uNDRlY2ZlNmRhOTZiMWZjZWU4YzZiYTJhMTUzNTc0MWVkNjVlODUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcApAQCAtNjgwLDkgKzY4MCw5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IHJlbW92ZVNhbXBsZXNGcm9tVHJhY2tCdWZmZXIoY29uc3QgRGVjb2RlT3JkZXJTYW1wCiAgICAg
ICAgIC8vIEFsc28gcmVtb3ZlIHRoZSBlcmFzZWQgc2FtcGxlcyBmcm9tIHRoZSBUcmFja0J1ZmZl
ciBkZWNvZGVRdWV1ZS4KICAgICAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuZXJhc2UoZGVj
b2RlS2V5KTsKIAotICAgICAgICBkb3VibGUgc3RhcnRUaW1lID0gc2FtcGxlLT5wcmVzZW50YXRp
b25UaW1lKCkudG9Eb3VibGUoKTsKLSAgICAgICAgZG91YmxlIGVuZFRpbWUgPSBzdGFydFRpbWUg
KyAoc2FtcGxlLT5kdXJhdGlvbigpICsgbWljcm9zZWNvbmQpLnRvRG91YmxlKCk7Ci0gICAgICAg
IGVyYXNlZFJhbmdlcy0+YWRkKHN0YXJ0VGltZSwgZW5kVGltZSk7CisgICAgICAgIGF1dG8gc3Rh
cnRUaW1lID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGlt
ZSA9IHN0YXJ0VGltZSArIHNhbXBsZS0+ZHVyYXRpb24oKTsKKyAgICAgICAgZXJhc2VkUmFuZ2Vz
LT5yYW5nZXMoKS5hZGQoc3RhcnRUaW1lLCBlbmRUaW1lKTsKIAogI2lmICFMT0dfRElTQUJMRUQK
ICAgICAgICAgYnl0ZXNSZW1vdmVkICs9IHN0YXJ0QnVmZmVyU2l6ZSAtIHRyYWNrQnVmZmVyLnNh
bXBsZXMuc2l6ZUluQnl0ZXMoKTsKQEAgLTE1ODYsNyArMTU4Niw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgUGFzCiAgICAgICAgIGlmIChtX3Nob3VsZEdlbmVyYXRlVGltZXN0YW1wcykKICAgICAg
ICAgICAgIG1fdGltZXN0YW1wT2Zmc2V0ID0gZnJhbWVFbmRUaW1lc3RhbXA7CiAKLSAgICAgICAg
bV9idWZmZXJlZC0+YWRkKHByZXNlbnRhdGlvblRpbWVzdGFtcC50b0RvdWJsZSgpLCAocHJlc2Vu
dGF0aW9uVGltZXN0YW1wICsgZnJhbWVEdXJhdGlvbiArIG1pY3Jvc2Vjb25kKS50b0RvdWJsZSgp
KTsKKyAgICAgICAgbV9idWZmZXJlZC0+cmFuZ2VzKCkuYWRkKHByZXNlbnRhdGlvblRpbWVzdGFt
cCwgcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZnJhbWVEdXJhdGlvbik7CiAgICAgICAgIG1fYnVm
ZmVyZWRTaW5jZUxhc3RNb25pdG9yICs9IGZyYW1lRHVyYXRpb24udG9Eb3VibGUoKTsKICAgICAg
ICAgc2V0QnVmZmVyZWREaXJ0eSh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIwYzE2NWM1NTQ5MThjM2E0M2NiYmZh
MDNhMjAwYTNlNGM5MTcwMjMuLmMzODlmNWM3YTExZGVmMjQ5MjRkYjUxYTQ2OWQxMTJhYzY0ODFk
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTMxOSw3ICszMTksNyBAQAogCQkwN0UzREZEMTFBOUU3ODY1MDA3NjRDQTggLyog
TWVkaWFQbGF5YmFja1RhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdFM0RGRDAxQTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJn
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
N0U5RTEyRTE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0U5
RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
LmggKi87IH07CiAJCTA3RTlFMTMwMThGNjJCMzcwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUFWRi5jcHAgKi87IH07Ci0JCTA3RURDM0VFMUFBQ0I3NUQwMDk4M0VCNSAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjLmNwcCAqLzsgfTsKKwkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5tbSAqLzsgfTsKIAkJMDdFRTc2RUIxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAgKi87IH07CiAJCTA3RUU3NkVDMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDdFRTc2RUExQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
LmggKi87IH07CiAJCTA3RUU3NkVGMUJFQTYxOTgwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDdFRTc2RUQxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
LmggKi87IH07CkBAIC02MTI0LDYgKzYxMjQsNyBAQAogCQlDRDY0MUVCNDE4MThGNUVEMDBFRTRD
NDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGUuaCAqLzsgfTsKIAkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGlt
ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDY0MUVCRDE4MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9u
LmNwcCAqLzsgfTsKIAkJQ0Q2NDFFQzAxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91
bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICovOyB9
OworCQlDRDY2OUQ2ODFEMjMzNjRCMDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjY5
RDY2MUQyMzJERkYwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwICovOyB9
OwogCQlDRDdEMzM0MzFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0
MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi87IH07CiAJ
CUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0MjFDN0Ex
MjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oICovOyB9OwogCQlDRDdEMzM0
NzFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZpZGVvU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RDMzNDUxQzdBMTZCRjAwMDQxMjkz
IC8qIENvcmVWaWRlb1NvZnRMaW5rLmNwcCAqLzsgfTsKQEAgLTYxMzksNiArNjE0MCwxMSBAQAog
CQlDRDgyMDMxMTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMEYxMzk1QUNF
NzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLzsgfTsKIAkJQ0Q4QTdCQkIxOTc3
MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQjkxOTc3MzVGRTAwQ0JE
NjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tICovOyB9OwogCQlDRDhBN0JCQzE5
NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENC
RDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovOyB9OworCQlDRDhBQ0E4ODFE
MjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBODYxRDIzN0FBMjAwRUND
NTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbSAqLzsgfTsKKwkJQ0Q4QUNBODkxRDIz
N0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBODcxRDIzN0FBMjAwRUNDNTlF
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oICovOyB9OworCQlDRDhBQ0E4QjFEMjM5NDY0
MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThBMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90
ZVNQSS5oICovOyB9OworCQlDRDhBQ0E4RTFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVT
b2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhBQ0E4QzFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgKi87
IH07CisJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4RDFE
MjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oICovOyB9OwogCQlDRDhCNUE0
MjE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0
MDE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0gKi87IH07CiAJCUNEOEI1QTQzMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07CiAJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAv
KiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEOEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVk
aWFTb3VyY2UuaCAqLzsgfTsKQEAgLTc3ODMsNyArNzc4OSw3IEBACiAJCTA3RTNERkQwMUE5RTc4
NjUwMDc2NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUFWRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFREMzRUQxQUFDQjc1
RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFOTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0VFNzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFRTc2RUQxQkVBNjE5ODAwRjg5
MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNDE3OSw2ICsxNDE4NSw4IEBACiAJCUNENjQxRUJEMTgxOUIzNTkw
MEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q2NDFFQkUxODE5QjM1OTAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NjY5RDY2MUQyMzJERkYwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hLmNwcDsgcGF0aCA9IGNvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjY5RDY3MUQyMzJFMTAwMDREMTg2NiAvKiBNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3
RDMzNDExQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5j
cHA7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oOyBwYXRoID0gLi4vY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29yZVZpZGVvU29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQxOTUsNiArMTQyMDMsMTEgQEAKIAkJQ0Q4MjAzMEYxMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldp
bmRvd0FuaW1hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYldpbmRvd0FuaW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4
QTdCQjkxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEE3QkJBMTk3NzM1
RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDhBQ0E4NjFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhBQ0E4QTFEMjM5NDY0
MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFSZW1vdGVTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4
QUNBOEMxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZW1vdGVTb2Z0TGluay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThEMUQyMzk3MTkwMEVDQzU5RSAvKiBN
ZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhUmVtb3RlU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVB
NDAxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDhCNUE0NDE4MEREOEQ2MDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291cmNlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTgwNjYsNiArMTgwNzksOCBAQAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkwNkU4MUVFQjBBQjVEQTk3MDBD
ODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tICovLAogCQkJCTE0MDI2NDVE
MEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tICovLAorCQkJCUNEOEFDQThDMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcCAqLywKKwkJCQlDRDhBQ0E4RDFE
MjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oICovLAogCQkJCTkzNTAwRjMx
MTNGREUzQkUwMDk5RUMyNCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oICovLAogCQkJCTUyRjUy
RTEwMTRBMDEzNEYwMEFDQzM5NyAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5tbSAqLywKIAkJCQk0
QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLywKQEAgLTE4MDgx
LDYgKzE4MDk2LDggQEAKIAkJCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNl
cnZlck1hYy5jcHAgKi8sCiAJCQkJNDZEQkI2NEUxQUI4Qzk2RjAwRDlBODEzIC8qIFBvd2VyT2Jz
ZXJ2ZXJNYWMuaCAqLywKIAkJCQkwMDgxRkVGRTE2QjBBMkI2MDA4QUFBN0EgLyogUHVibGljU3Vm
Zml4TWFjLm1tICovLAorCQkJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMubW0gKi8sCisJCQkJQ0Q4QUNBODcxRDIzN0FBMjAwRUNDNTlFIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oICovLAogCQkJCUJDQUUxRkE1MTI5MzlEQjcwMDRDQjAy
NiAvKiBTY3JvbGxBbmltYXRvck1hYy5oICovLAogCQkJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1
NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSAqLywKIAkJCQlCQzhCODUzQzBFN0M3RjExMDBBQjY5
ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCAqLywKQEAgLTE5MjI1LDYgKzE5MjQyLDcgQEAKIAkJ
CQkwN0YwQjk3QjFBQzVEQjQ2MDBFNTM1RDkgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJ
MkQ1OUYxQkUxQTAwNDRDNjAwMUYzRDI5IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKIAkJCQky
RDQxM0Y2MDFBMTg3QTNGMDA0MUE1MjEgLyogTG9va3VwU1BJLmggKi8sCisJCQkJQ0Q4QUNBOEEx
RDIzOTQ2NDAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU1BJLmggKi8sCiAJCQkJMkQ3N0FDMjYxQkYy
Qjk4NjAwNzI0NzBBIC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovLAogCQkJCTJENzdBQzI3MUJG
MkI5ODYwMDcyNDcwQSAvKiBOU0FwcGxpY2F0aW9uU1BJLmggKi8sCiAJCQkJMkRCOUM0QTkxQjMy
MzFGNDAwNzBGMjdGIC8qIE5TRXZlbnRTUEkuaCAqLywKQEAgLTIzMzM0LDYgKzIzMzUyLDE0IEBA
CiAJCQluYW1lID0gTWVkaWFTb3VyY2U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQlDRDY2OUQ2NTFEMjMyREY0MDA0RDE4NjYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENjY5RDY2MUQyMzJERkYwMDREMTg2NiAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSBjb2Nv
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUNEOUEzN0Y1MTdDN0Q5MzYw
MEM1RkE3QSAvKiBtZWRpYWNvbnRyb2xzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTI1MDM0LDYgKzI1MDYwLDcgQEAKIAkJRkQzMTYwNDAxMkIwMjZBMzAw
QzFBMzU5IC8qIGF1ZGlvICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlDRDY2OUQ2NTFEMjMyREY0MDA0RDE4NjYgLyogY29jb2EgKi8sCiAJCQkJQ0QwRUVF
MEQxNDc0M0U0ODAwM0VBRkEyIC8qIGlvcyAqLywKIAkJCQlGRDMxNjBCMDEyQjAyNzA3MDBDMUEz
NTkgLyogbWFjICovLAogCQkJCUZEMzE2MDQ0MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5
LmggKi8sCkBAIC0yNTEzNiw3ICsyNTE2Myw4IEBACiAJCQkJQ0RDNzM0MTIxOTc3ODk2QzAwNDZC
RkM1IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8sCiAJCQkJQ0RDNzM0MTMxOTc3ODk2QzAwNDZCRkM1
IC8qIENBUmluZ0J1ZmZlci5oICovLAogCQkJCUZEMzE2MEJBMTJCMDI3MkEwMEMxQTM1OSAvKiBG
RlRGcmFtZU1hYy5jcHAgKi8sCi0JCQkJMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovLAorCQkJCTA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tICovLAorCQkJCUNENjY5RDY3MUQyMzJFMTAwMDRE
MTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1h
YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjQ1Miw2ICsyNjQ4MCw3IEBACiAJ
CQkJOTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29u
c3RydWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUND
NTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDM0U1MTBB
MThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
MzEyMEM3MTFDNTZGM0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzA3MCw2ICsyNzA5OSw3IEBACiAJCQkJOUJEQTY0RDgxQjk3
NUNGMjAwOUM0Mzg3IC8qIEpTU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUx
N0IxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDlERTE3RDE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDhBQ0E4QjFEMjM5NDY0MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjMwNkUxMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJj
ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUFBN0ZFRUFEMTZBNEU3NEIwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAw
OTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjg3
OTEsNiArMjg4MjEsNyBAQAogCQkJCUNEQzk3OUY1MUM0OThDMDkwMERCNTBENCAvKiBXZWJDb3Jl
TlNFcnJvckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0
MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCNEMy
NEQxNTA5MjM2QzAwQTZFRjM3IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q4QUNBODkxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNv
cmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUREMDVGRTBEMEI4QkEzQzYwMDlB
Q0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRURFQzk4MDMw
QUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCBpbiBIZWFkZXJzICovLApAQCAtMjk2
NDMsNiArMjk2NzQsNyBAQAogCQkJCUJDNzcyQjNEMEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NQYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMkE1NDAwRTA5OUM1QTAwNEI2RDJCIC8qIENT
U1BhcnNlclZhbHVlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzg2MjEyMjg4M0U5MDBC
ODFGRjggLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2NjlE
NjgxRDIzMzY0QjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODBFNkQwNTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjcwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc4RDAyQkM1MTU0QTE4REYwMEI2MkQw
NSAvKiBDU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMjc2LDcg
KzMxMzA4LDcgQEAKIAkJCQlDOTZGNUVDNjFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9u
SW50ZXJydXB0aW9uUHJvdmlkZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDOTBGNjU1NTFC
MjI1M0IxMDAyMTYzQTEgLyogTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTA3RURDM0VFMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3RURDM0VFMUFBQ0I3NUQw
MDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0QzQTQ5NUUxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNEQzhCNUE2MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1l
ZGlhU291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTM4MCw2ICszMTQxMiw3
IEBACiAJCQkJMUE1NjlEMTMwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfY2xhc3MubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTU2OUQxNjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19pbnN0YW5jZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE4MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX3J1
bnRpbWUubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4ODFEMjM3QUEyMDBFQ0M1OUUgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMUEw
RDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfdXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFD
RjZCREZCMEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFDRjZCRTE0MEU5QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRlckNvbmRp
dGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMzIxODgsNiArMzIyMjEsNyBAQAogCQkJCTdBQTNB
Njk5MTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxRjcyQkYwQTE4N0ZENDQ5MDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5k
bGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTNBNkEzMTk0QjVDMjIwMDFDQkQyNCAv
KiBUaWxlQ292ZXJhZ2VNYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4QUNBOEUxRDIzOTcx
OTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0FBM0E2OUIxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5ODc3MEYyMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY1NUIzRERCMTI1MUYxMkQwMDNFRjI2OSAvKiBUaW1lSW5wdXRUeXBlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3Rl
Q29tbWFuZExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lci5jcHAKaW5kZXggN2M1NTUzZjU3YzYxOTVkNTA5N2YzZDhhNTc4MjdhNmU1MTYw
ODM5Yy4uMDM4ZDc5NGRlNjQ3NDY3NWQ2MjlkODczYjRlMTVjMDg3ZjEzYjYxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCkBAIC0y
OCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQTEFURk9STShJT1Mp
CisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKE1BQykKIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVDb21tYW5kTGlzdGVuZXI+IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKFJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQogewogICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4oY2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCmluZGV4IGMxMGU3ZDRjN2UwNTQwMGE0NzU0MDI0ZDI5NzY3OWZhN2Q5ZjM1YTUuLjk3
MjRiYzViN2I3N2JmMGE5YWJlOTc5NjY0MTE1MmJkYTUyNzExODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
ZiAhUExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShJT1MpICYmICFQTEFURk9STShNQUMpCiBz
dGF0aWMgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIgPSBudWxscHRyOwogCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXImIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDYyZjEzMGUxNjQ5MTM4OTdkYjgyODY4YjU3NDMyYTkx
NjNjMjdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcApAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmgiCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBr
V2ViQXVkaW9CdWZmZXJTaXplID0gMTI4Oworc3RhdGljIGNvbnN0IHNpemVfdCBrTG93UG93ZXJW
aWRlb0J1ZmZlclNpemUgPSA0MDk2OworCit2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKK3sKKyAgICBMT0coTWVkaWEsICJQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpIC0gdHlwZXM6IFZpZGVvKCVkKSwg
QXVkaW8oJWQpLCBXZWJBdWRpbyglZCkiLCBjb3VudChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Vmlk
ZW8pLCBjb3VudChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pLCBjb3VudChQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKTsKKworICAgIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Np
b246OldlYkF1ZGlvKSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShrV2ViQXVkaW9CdWZmZXJTaXplKTsKKyAgICBlbHNlIGlmICgo
aGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbykgfHwgaGFzKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpBdWRpbykpICYmIFNldHRpbmdzOjpsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5h
YmxlZCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTY3MjU+
IEZpZ3VyZSBvdXQgd2h5IGVuYWJsaW5nIHRoZSBjb2RlIGJlbG93CisgICAgICAgIC8vIGNhdXNl
cyBtZWRpYSBMYXlvdXRUZXN0cyB0byBmYWlsIG9uIDEwLjguCisKKyAgICAgICAgc2l6ZV90IGJ1
ZmZlclNpemU7CisgICAgICAgIGlmIChtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5lciAmJiBtX2F1ZGlv
SGFyZHdhcmVMaXN0ZW5lci0+b3V0cHV0RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoKSkKKyAg
ICAgICAgICAgIGJ1ZmZlclNpemUgPSBrTG93UG93ZXJWaWRlb0J1ZmZlclNpemU7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGJ1ZmZlclNpemUgPSBrV2ViQXVkaW9CdWZmZXJTaXplOworCisg
ICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNp
emUoYnVmZmVyU2l6ZSk7CisgICAgfQorCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGlmICghU2V0
dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxh
dGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgeworICAgICAgICBpZiAoY2FuUHJvZHVjZUF1ZGlv
KCkpCisgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29y
eShBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2spOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246
OkFtYmllbnRTb3VuZCk7CisgICAgfSBlbHNlIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246
OldlYkF1ZGlvKSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnkoQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpOworI2VuZGlmCit9CisKKyNlbmRpZiAv
LyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzczMWE2MjJlYjIzMTQ5NjUzODAwNzU1YmMzMDQxMzNiOGNhOGYx
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCi0KLSNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKLQotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotc3RhdGljIGNvbnN0IHNpemVfdCBrV2ViQXVkaW9CdWZmZXJTaXplID0gMTI4
Owotc3RhdGljIGNvbnN0IHNpemVfdCBrTG93UG93ZXJWaWRlb0J1ZmZlclNpemUgPSA0MDk2Owot
Ci12b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkK
LXsKLSAgICBMT0coTWVkaWEsICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNl
c3Npb25TdGF0ZSgpIC0gdHlwZXM6IFZpZGVvKCVkKSwgQXVkaW8oJWQpLCBXZWJBdWRpbyglZCki
LCBjb3VudChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pLCBjb3VudChQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6QXVkaW8pLCBjb3VudChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKTsK
LQotICAgIGlmIChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OldlYkF1ZGlvKSkKLSAgICAgICAg
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShrV2Vi
QXVkaW9CdWZmZXJTaXplKTsKLSAgICBlbHNlIGlmICgoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpWaWRlbykgfHwgaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbykpICYmIFNldHRpbmdz
Ojpsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTY3MjU+IEZpZ3VyZSBvdXQgd2h5IGVuYWJsaW5n
IHRoZSBjb2RlIGJlbG93Ci0gICAgICAgIC8vIGNhdXNlcyBtZWRpYSBMYXlvdXRUZXN0cyB0byBm
YWlsIG9uIDEwLjguCi0KLSAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemU7Ci0gICAgICAgIGlmICht
X2F1ZGlvSGFyZHdhcmVMaXN0ZW5lciAmJiBtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5lci0+b3V0cHV0
RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoKSkKLSAgICAgICAgICAgIGJ1ZmZlclNpemUgPSBr
TG93UG93ZXJWaWRlb0J1ZmZlclNpemU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1ZmZl
clNpemUgPSBrV2ViQXVkaW9CdWZmZXJTaXplOwotCi0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7Ci0gICAgfQot
Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmICghU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXMoUGxhdGZv
cm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlv
KSkgewotICAgICAgICBpZiAoY2FuUHJvZHVjZUF1ZGlvKCkpCi0gICAgICAgICAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246Ok1lZGlhUGxh
eWJhY2spOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCk7Ci0gICAgfQot
ICAgIGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQotICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246
OkFtYmllbnRTb3VuZCk7Ci0jZW5kaWYKLX0KLQotI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9O
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRp
YVNlc3Npb25NYW5hZ2VyTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk1MjEyYjA0NTMzZWYyZTU1ZGU5Mjgz
ZDE2Njk2YjI1NjI5N2QyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5NZWRpYVNlc3Npb25NYW5hZ2VyTWFjKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKKworICAgIE1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMoKTsKKworICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYpIG92ZXJyaWRlOworCisgICAgYm9vbCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZv
cm1NZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJh
Y2soUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsaWVudENoYXJh
Y3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKKworICAg
IHZvaWQgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKKworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
KiBub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisKKyAgICBkb3VibGUgbV9yZXBvcnRlZFJh
dGUgeyAwIH07CisgICAgZG91YmxlIG1fcmVwb3J0ZWREdXJhdGlvbiB7IDAgfTsKKyAgICBTdHJp
bmcgbV9yZXBvcnRlZFRpdGxlOworICAgIGJvb2wgbV9ub3dQbGF5aW5nQWN0aXZlIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNJbkJhY2tncm91bmQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYmUyZGM3MTNmMzJmYTc0N2I2ZTQ3MDQ5ZGVmMjgzZGQ2NTYzNWEx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0KQEAgLTAsMCArMSwxODEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCIKKwor
I2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiTWVkaWFQ
bGF5ZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCisKKyNpbXBvcnQgIk1l
ZGlhUmVtb3RlU29mdExpbmsuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RhdGljIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMqIHBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlciA9IG51bGxwdHI7CisKK1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlciYgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKK3sKKyAg
ICBpZiAoIXBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcikKKyAgICAgICAgcGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyID0gbmV3IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM7CisgICAgcmV0dXJu
ICpwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7Cit9CisKK1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlciogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlz
dHMoKQoreworICAgIHJldHVybiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7Cit9CisKK01l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWM6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKQorICAgIDogUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkKK3sKKyAgICByZXNldFJlc3RyaWN0aW9ucygpOwor
fQorCitNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp+TWVkaWFTZXNzaW9uTWFuYWdlck1hYygpCit7
Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIGlmICghUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWM6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayIpOworICAgIHVwZGF0ZU5vd1BsYXlpbmdJ
bmZvKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yzo6cmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24oc2Vzc2lvbik7CisgICAg
TE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6cmVtb3ZlU2Vzc2lvbiIpOworICAg
IHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yzo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikK
K3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsRW5kUGxheWJh
Y2soc2Vzc2lvbik7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6c2Vz
c2lvbldpbGxFbmRQbGF5YmFjayIpOworICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdl
ZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpCit7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCIpOworICAgIHVwZGF0ZU5v
d1BsYXlpbmdJbmZvKCk7Cit9CisKK1BsYXRmb3JtTWVkaWFTZXNzaW9uKiBNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjOjpub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCkKK3sKKyAgICBmb3IgKGF1dG8g
c2Vzc2lvbiA6IHNlc3Npb25zKCkpIHsKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1l
ZGlhVHlwZSB0eXBlID0gc2Vzc2lvbi0+bWVkaWFUeXBlKCk7CisgICAgICAgIGlmICh0eXBlICE9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyAmJiB0eXBlICE9IFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpBdWRpbykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChzZXNzaW9u
LT5jaGFyYWN0ZXJpc3RpY3MoKSAmIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpIYXNBdWRpbykKKyAg
ICAgICAgICAgIHJldHVybiBzZXNzaW9uOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOwor
fQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkK
K3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKCFpc01lZGlhUmVtb3RlRnJhbWV3b3Jr
QXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghTVJNZWRpYVJlbW90ZVNl
dENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uKHRydWUpKSB7CisgICAgICAgIExPRyhNZWRpYSwg
Ik1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gTVJNZWRpYVJl
bW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uKHRydWUpIGZhaWxlZCIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24qIGN1cnJl
bnRTZXNzaW9uID0gdGhpcy0+bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpOworCisgICAgTE9H
KE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBj
dXJyZW50U2Vzc2lvbiA9ICVwIiwgY3VycmVudFNlc3Npb24pOworCisgICAgaWYgKCFjdXJyZW50
U2Vzc2lvbikgeworICAgICAgICBpZiAobV9ub3dQbGF5aW5nQWN0aXZlKSB7CisgICAgICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5m
byAtIGNsZWFyaW5nIG5vdyBwbGF5aW5nIGluZm8iKTsKKyAgICAgICAgICAgIE1STWVkaWFSZW1v
dGVTZXROb3dQbGF5aW5nSW5mbyhudWxscHRyKTsKKyAgICAgICAgICAgIG1fbm93UGxheWluZ0Fj
dGl2ZSA9IGZhbHNlOworICAgICAgICAgICAgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBs
aWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4oTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
KCksIGtNUlBsYXliYWNrU3RhdGVTdG9wcGVkLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
KE1STWVkaWFSZW1vdGVFcnJvciBlcnJvcikgeworICAgICAgICAgICAgICAgIExPRyhNZWRpYSwg
Ik1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gTVJNZWRpYVJl
bW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4oc3RvcHBl
ZCkgZmFpbGVkIHdpdGggZXJyb3IgJXVkIiwgZXJyb3IpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIHRpdGxlID0gY3Vy
cmVudFNlc3Npb24tPnRpdGxlKCk7CisgICAgZG91YmxlIGR1cmF0aW9uID0gY3VycmVudFNlc3Np
b24tPmR1cmF0aW9uKCk7CisgICAgZG91YmxlIHJhdGUgPSBjdXJyZW50U2Vzc2lvbi0+c3RhdGUo
KSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZyA/IDEgOiAwOworICAgIGlmIChtX3Jl
cG9ydGVkVGl0bGUgPT0gdGl0bGUgJiYgbV9yZXBvcnRlZFJhdGUgPT0gcmF0ZSAmJiBtX3JlcG9y
dGVkRHVyYXRpb24gPT0gZHVyYXRpb24pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNz
aW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBub3RoaW5nIG5ldyB0byBzaG93
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3JlcG9ydGVkUmF0ZSA9IHJhdGU7
CisgICAgbV9yZXBvcnRlZER1cmF0aW9uID0gZHVyYXRpb247CisgICAgbV9yZXBvcnRlZFRpdGxl
ID0gdGl0bGU7CisKKyAgICBhdXRvIGluZm8gPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11
dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgNCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJh
Y2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworCisgICAgaWYgKCF0aXRs
ZS5pc0VtcHR5KCkpCisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGluZm8uZ2V0KCksIGtN
Uk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSk7CisKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShkdXJhdGlvbikgJiYgZHVyYXRpb24gIT0g
TWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpIHsKKyAgICAgICAgYXV0byBjZkR1cmF0aW9uID0g
YWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJEb3Vi
bGVUeXBlLCAmZHVyYXRpb24pKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoaW5mby5n
ZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1cmF0aW9uLCBjZkR1cmF0aW9uLmdl
dCgpKTsKKyAgICB9CisKKyAgICBhdXRvIGNmUmF0ZSA9IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5cGUsICZyYXRlKTsKKyAgICBDRkRpY3Rpb25h
cnlTZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvUGxheWJh
Y2tSYXRlLCBjZlJhdGUpOworCisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gY3VycmVudFNlc3Np
b24tPmN1cnJlbnRUaW1lKCk7CisgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUpICYm
IGN1cnJlbnRUaW1lICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKSB7CisgICAgICAgIGF1
dG8gY2ZDdXJyZW50VGltZSA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwga0NGTnVtYmVyRG91YmxlVHlwZSwgJmN1cnJlbnRUaW1lKSk7CisgICAgICAgIENGRGlj
dGlvbmFyeVNldFZhbHVlKGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9F
bGFwc2VkVGltZSwgY2ZDdXJyZW50VGltZS5nZXQoKSk7CisgICAgfQorCisgICAgTE9HKE1lZGlh
LCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSB0aXRsZSA9
IFwiJXNcIiwgcmF0ZSA9ICVmLCBkdXJhdGlvbiA9ICVmLCBub3cgPSAlZiIsCisgICAgICAgIHRp
dGxlLnV0ZjgoKS5kYXRhKCksIHJhdGUsIGR1cmF0aW9uLCBjdXJyZW50VGltZSk7CisKKyAgICBt
X25vd1BsYXlpbmdBY3RpdmUgPSB0cnVlOworICAgIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5n
QXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1STWVkaWFSZW1vdGVHZXRMb2NhbE9y
aWdpbigpLCBrTVJQbGF5YmFja1N0YXRlUGxheWluZywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgXihNUk1lZGlhUmVtb3RlRXJyb3IgZXJyb3IpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3Rl
U2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihwbGF5aW5nKSBm
YWlsZWQgd2l0aCBlcnJvciAldWQiLCBlcnJvcik7CisgICAgfSk7CisgICAgTVJNZWRpYVJlbW90
ZVNldE5vd1BsYXlpbmdJbmZvKGluZm8uZ2V0KCkpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4IDgwMmZkZDEwZDA0NmZlZDYyZTE3YjQw
MzRhMjBkNmQxYmMwZWU2M2MuLmIxYTAzYzFjZWVlZDFiZjI1NWZjMWIzNzM5ODQzMmRlNTE0Yjcw
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NvZnRMaW5raW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaApAQCAt
MzI1LDYgKzMyNSwyMiBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfUFJJ
VkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrKSBc
CisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAorICAgIHZvaWQqIGZyYW1ld29y
ayMjTGlicmFyeShib29sIGlzT3B0aW9uYWwgPSBmYWxzZSk7IFwKKyAgICB2b2lkKiBmcmFtZXdv
cmsjI0xpYnJhcnkoYm9vbCBpc09wdGlvbmFsKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyB2
b2lkKiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qg
b25jZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICBm
cmFtZXdvcmtMaWJyYXJ5ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIgI2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisg
ICAgICAgICAgICBpZiAoIWlzT3B0aW9uYWwpIFwKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9XSVRIX01FU1NBR0UoZnJhbWV3b3JrTGlicmFyeSwgIiVzIiwgZGxlcnJvcigpKTsgXAor
ICAgICAgICB9KTsgXAorICAgICAgICByZXR1cm4gZnJhbWV3b3JrTGlicmFyeTsgXAorICAgIH0g
XAorICAgIH0KKwogI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5h
bWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKICAgICBAY2xhc3MgY2xhc3NOYW1lOyBc
CiAgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5
YWVlMTM5MGRmNzU4M2QwZDBmYTU1OTJlZDBhMjViYTdmNWNiOGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBV
U0UoTUVESUFSRU1PVEUpCisKKyNpbmNsdWRlICJNZWRpYVJlbW90ZVNQSS5oIgorI2luY2x1ZGUg
IlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNF
KFdlYkNvcmUsIE1lZGlhUmVtb3RlKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbiwgTVJPcmlnaW5S
ZWYsICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlh
UmVtb3RlLCBNUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkKiwg
KE1STWVkaWFSZW1vdGVBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgYmxvY2spLCAoYmxvY2spKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVk
aWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIp
LCAob2JzZXJ2ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVk
aWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJy
YXlSZWYgY29tbWFuZHMsIE1ST3JpZ2luUmVmIG9yaWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBs
eVEsIHZvaWQoXmNvbXBsZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRz
LCBvcmlnaW4sIHJlcGx5USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvQ3JlYXRl
LCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Ip
LCAoYWxsb2NhdG9yKSk7CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1S
TWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1h
bmQgY29tbWFuZCksIChjb21tYW5kSW5mbywgY29tbWFuZCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZv
U2V0RW5hYmxlZCwgdm9pZCwgKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5m
bywgQm9vbGVhbiBlbmFibGVkKSwgKGNvbW1hbmRJbmZvLCBlbmFibGVkKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9TZXRPcHRpb25zLCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNv
bW1hbmRJbmZvLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucyksIChjb21tYW5kSW5mbywgb3B0aW9u
cykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
TVJNZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uLCBCb29sZWFuLCAoQm9v
bGVhbiBmbGFnKSwgKGZsYWcpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nSW5mbywgdm9pZCwgKENG
RGljdGlvbmFyeVJlZiBpbmZvKSwgKGluZm8pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGlj
YXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luLCB2b2lkLCAoTVJPcmlnaW5SZWYgb3JpZ2luLCBN
UlBsYXliYWNrU3RhdGUgcGxheWJhY2tTdGF0ZSwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZv
aWQoXmNvbXBsZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvcikpLCAob3JpZ2luLCBwbGF5YmFja1N0
YXRlLCByZXBseVEsIGNvbXBsZXRpb24pKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSwg
Q0ZTdHJpbmdSZWYpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVk
aWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlvbiwgQ0ZTdHJpbmdS
ZWYpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUs
IGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYpOwor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIGtNUk1l
ZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUsIENGU3RyaW5nUmVmKTsKKworI2Vu
ZGlmIC8vIFVTRShNRURJQVJFTU9URSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTWVkaWFSZW1vdGVTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNjAzNjM4ODczZTA1NzI3NzMx
NTgyNzQ4OTQ1OGRkMTMzZTVhZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShNRURJQVJFTU9URSkKKworI2luY2x1ZGUg
Ik1lZGlhUmVtb3RlU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5L
X0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVHZXRM
b2NhbE9yaWdpbiwgTVJPcmlnaW5SZWYsICgpLCAoKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUdl
dExvY2FsT3JpZ2luIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVHZXRMb2NhbE9y
aWdpbgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUs
IE1STWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJNZWRp
YVJlbW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCisjZGVmaW5l
IE1STWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2sgc29mdExpbmtfTWVkaWFS
ZW1vdGVfTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaworU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVS
ZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrLCB2b2lkLCAodm9pZCogb2JzZXJ2ZXIpLCAob2JzZXJ2
ZXIpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0
TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlUmVtb3ZlQ29tbWFuZEhhbmRsZXJCbG9jawor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVk
aWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcywgdm9pZCwgKENGQXJyYXlSZWYgY29tbWFuZHMs
IE1ST3JpZ2luUmVmIG9yaWdpbiwgZGlzcGF0Y2hfcXVldWVfdCByZXBseVEsIHZvaWQoXmNvbXBs
ZXRpb24pKE1STWVkaWFSZW1vdGVFcnJvciBlcnIpKSwgKGNvbW1hbmRzLCBvcmlnaW4sIHJlcGx5
USwgY29tcGxldGlvbikpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5k
cyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1l
ZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksIChhbGxvY2F0b3IpKTsKKyNkZWZpbmUgTVJNZWRp
YVJlbW90ZUNvbW1hbmRJbmZvQ3JlYXRlIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1v
dGVDb21tYW5kSW5mb0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQsIHZvaWQs
IChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIE1STWVkaWFSZW1vdGVD
b21tYW5kIGNvbW1hbmQpLCAoY29tbWFuZEluZm8sIGNvbW1hbmQpKQorI2RlZmluZSBNUk1lZGlh
UmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFS
ZW1vdGVDb21tYW5kSW5mb1NldENvbW1hbmQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVk
LCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBCb29sZWFu
IGVuYWJsZWQpLCAoY29tbWFuZEluZm8sIGVuYWJsZWQpKQorI2RlZmluZSBNUk1lZGlhUmVtb3Rl
Q29tbWFuZEluZm9TZXRFbmFibGVkIHNvZnRMaW5rX01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1NldEVuYWJsZWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRPcHRpb25zLCB2b2lk
LCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBDRkRpY3Rpb25hcnlS
ZWYgb3B0aW9ucyksIChjb21tYW5kSW5mbywgb3B0aW9ucykpCisjZGVmaW5lIE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1NldE9wdGlvbnMgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvU2V0T3B0aW9ucworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2Vi
Q29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNh
dGlvbiwgQm9vbGVhbiwgKEJvb2xlYW4gZmxhZyksIChmbGFnKSkKKyNkZWZpbmUgTVJNZWRpYVJl
bW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uIHNvZnRMaW5rX01lZGlhUmVtb3RlX01S
TWVkaWFSZW1vdGVTZXRDYW5CZU5vd1BsYXlpbmdBcHBsaWNhdGlvbgorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVTZXROb3dQ
bGF5aW5nSW5mbywgdm9pZCwgKENGRGljdGlvbmFyeVJlZiBpbmZvKSwgKGluZm8pKQorI2RlZmlu
ZSBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0luZm8gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJN
ZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNh
dGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1S
UGxheWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9p
ZCheY29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3Rh
dGUsIHJlcGx5USwgY29tcGxldGlvbikpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5
aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luIHNvZnRMaW5rX01lZGlhUmVtb3Rl
X01STWVkaWFSZW1vdGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3Jp
Z2luCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
a01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5l
IGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9UaXRsZSBnZXRfTWVkaWFSZW1vdGVfa01STWVk
aWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVy
YXRpb24sIENGU3RyaW5nUmVmKTsKKyNkZWZpbmUga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5m
b0R1cmF0aW9uIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVy
YXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1v
dGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSwgQ0ZTdHJpbmdSZWYp
OworI2RlZmluZSBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRWxhcHNlZFRpbWUgZ2V0X01l
ZGlhUmVtb3RlX2tNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSgpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBr
TVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlIGdldF9NZWRpYVJlbW90ZV9r
TVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvUGxheWJhY2tSYXRlKCkKKworI2VuZGlmIC8vIFVT
RShNRURJQVJFTU9URSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTkzOGZiOWFkOTBkYjUyZTA1
ZWFhMWUyOWQ4ZTVkMTk1OWJmMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjIDogcHVibGljIFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ciB7CitwdWJsaWM6CisgICAgUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKFJlbW90ZUNvbW1hbmRM
aXN0ZW5lckNsaWVudCYpOworICAgIHZpcnR1YWwgflJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYygp
OworCitwcm90ZWN0ZWQ6CisgICAgV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsg
fQorCisgICAgV2Vha1B0ckZhY3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIHZvaWQqIG1fY29tbWFuZEhhbmRsZXIgeyBudWxscHRy
IH07Cit9OworICAgIAorfQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjZiMjY3MzM1MWNjYzBlMTgwYzk2MGJjNGJiOTgyYTViODQwYTE1MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJNYWMubW0KQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIgorCisjaWYg
UExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgorCisjaW1wb3J0ICJNZWRpYVJlbW90ZVNvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3Rl
Q29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGll
bnQpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjPihjbGllbnQpOworfQorCitSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OlJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkKKyAgICA6
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihjbGllbnQpCit7CisjaWYgVVNFKE1FRElBUkVNT1RFKQor
ICAgIGlmICghaXNNZWRpYVJlbW90ZUZyYW1ld29ya0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBzdGF0aWMgY29uc3QgTVJNZWRpYVJlbW90ZUNvbW1hbmQgc3VwcG9ydGVkQ29t
bWFuZHNbXSA9IHsKKyAgICAgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRQbGF5LAorICAgICAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAorICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFRv
Z2dsZVBsYXlQYXVzZSwKKyAgICAgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3
YXJkLAorICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEVuZEZhc3RGb3J3YXJkLAorICAgICAg
ICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luUmV3aW5kLAorICAgICAgICBNUk1lZGlhUmVtb3Rl
Q29tbWFuZEVuZFJld2luZCwKKyAgICB9OworCisgICAgYXV0byBjb21tYW5kSW5mb0FycmF5ID0g
YWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzaXplb2Yo
c3VwcG9ydGVkQ29tbWFuZHMpIC8gc2l6ZW9mKE1STWVkaWFSZW1vdGVDb21tYW5kKSwgJmtDRlR5
cGVBcnJheUNhbGxCYWNrcykpOworCisgICAgZm9yIChhdXRvIGNvbW1hbmQgOiBzdXBwb3J0ZWRD
b21tYW5kcykgeworICAgICAgICBhdXRvIGNvbW1hbmRJbmZvID0gYWRvcHRDRihNUk1lZGlhUmVt
b3RlQ29tbWFuZEluZm9DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCkpOworICAgICAgICBNUk1l
ZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kKGNvbW1hbmRJbmZvLmdldCgpLCBjb21tYW5k
KTsKKyAgICAgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0RW5hYmxlZChjb21tYW5kSW5m
by5nZXQoKSwgdHJ1ZSk7CisgICAgICAgIENGQXJyYXlBcHBlbmRWYWx1ZShjb21tYW5kSW5mb0Fy
cmF5LmdldCgpLCBjb21tYW5kSW5mby5nZXQoKSk7CisgICAgfQorCisgICAgTVJNZWRpYVJlbW90
ZVNldFN1cHBvcnRlZENvbW1hbmRzKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCksIE1STWVkaWFSZW1v
dGVHZXRMb2NhbE9yaWdpbigpLCBudWxscHRyLCBudWxscHRyKTsKKworICAgIGF1dG8gd2Vha1Ro
aXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgbV9jb21tYW5kSGFuZGxlciA9IE1STWVkaWFSZW1v
dGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2soXihNUk1lZGlhUmVtb3RlQ29tbWFuZCBjb21t
YW5kLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucywgdm9pZCheY29tcGxldGlvbikoQ0ZBcnJheVJl
ZikpIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOworCisgICAgICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgcGxhdGZvcm1Db21tYW5kIHsg
UGxhdGZvcm1NZWRpYVNlc3Npb246Ok5vQ29tbWFuZCB9OworCisgICAgICAgIHN3aXRjaCAoY29t
bWFuZCkgeworICAgICAgICBjYXNlIE1STWVkaWFSZW1vdGVDb21tYW5kUGxheToKKyAgICAgICAg
ICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQbGF5Q29tbWFuZDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1STWVkaWFSZW1vdGVDb21tYW5kUGF1
c2U6CisgICAgICAgICAgICBwbGF0Zm9ybUNvbW1hbmQgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJl
bW90ZUNvbW1hbmRUb2dnbGVQbGF5UGF1c2U6CisgICAgICAgICAgICBwbGF0Zm9ybUNvbW1hbmQg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VG9nZ2xlUGxheVBhdXNlQ29tbWFuZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIE1STWVkaWFSZW1vdGVDb21tYW5kQmVnaW5GYXN0Rm9y
d2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpCZWdpblNlZWtpbmdGb3J3YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQ6CisgICAgICAgICAgICBw
bGF0Zm9ybUNvbW1hbmQgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kU2Vla2luZ0ZvcndhcmRD
b21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNv
bW1hbmRCZWdpblJld2luZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpCZWdpblNlZWtpbmdCYWNrd2FyZENvbW1hbmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEVuZFJld2luZDoKKyAgICAg
ICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5n
QmFja3dhcmRDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfTsKKworICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+bV9j
bGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKHBsYXRmb3JtQ29tbWFuZCk7Cisg
ICAgICAgIGNvbXBsZXRpb24oc3RhdGljX2Nhc3Q8Q0ZBcnJheVJlZj4oQFtAMF0pKTsKKyAgICB9
KTsKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUpCit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1hYzo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYygpCit7CisjaWYgVVNFKE1FRElBUkVNT1RF
KQorICAgIGlmIChtX2NvbW1hbmRIYW5kbGVyKQorICAgICAgICBNUk1lZGlhUmVtb3RlUmVtb3Zl
Q29tbWFuZEhhbmRsZXJCbG9jayhtX2NvbW1hbmRIYW5kbGVyKTsKKyNlbmRpZgorfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9NZWRp
YVJlbW90ZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9NZWRpYVJlbW90
ZVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZDEzOGYzMzgwMWRjMDFmMzYyYzI5MDY2MzA0MTg2NjE3YTQy
YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL01l
ZGlhUmVtb3RlU1BJLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIFVTRShNRURJQVJFTU9URSkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNpbmNsdWRlIDxNZWRpYVJlbW90ZS9NZWRpYVJlbW90ZS5oPgorCisjZWxzZQorCitlbnVt
IHsKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBsYXksCisgICAgTVJNZWRpYVJlbW90ZUNvbW1h
bmRQYXVzZSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVBsYXlQYXVzZSwKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZFN0b3AsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmROZXh0VHJh
Y2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRQcmV2aW91c1RyYWNrLAorICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kQWR2YW5jZVNodWZmbGVNb2RlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
QWR2YW5jZVJlcGVhdE1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3
YXJkLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQsCisgICAgTVJNZWRp
YVJlbW90ZUNvbW1hbmRCZWdpblJld2luZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEVuZFJl
d2luZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFJld2luZDE1U2Vjb25kcywKKyAgICBNUk1l
ZGlhUmVtb3RlQ29tbWFuZEZhc3RGb3J3YXJkMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVD
b21tYW5kUmV3aW5kMzBTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRmFzdEZvcndh
cmQzMFNlY29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRUb2dnbGVSZWNvcmQsCisgICAg
TVJNZWRpYVJlbW90ZUNvbW1hbmRTa2lwRm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFu
ZFNraXBCYWNrd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZENoYW5nZVBsYXliYWNrUmF0
ZSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFJhdGVUcmFjaywKKyAgICBNUk1lZGlhUmVtb3Rl
Q29tbWFuZExpa2VUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZERpc2xpa2VUcmFjaywK
KyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJvb2ttYXJrVHJhY2ssCisgICAgTVJNZWRpYVJlbW90
ZUNvbW1hbmRTZWVrVG9QbGF5YmFja1Bvc2l0aW9uLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5k
Q2hhbmdlUmVwZWF0TW9kZSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZENoYW5nZVNodWZmbGVN
b2RlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5hYmxlTGFuZ3VhZ2VPcHRpb24sCisgICAg
TVJNZWRpYVJlbW90ZUNvbW1hbmREaXNhYmxlTGFuZ3VhZ2VPcHRpb24KK307Cit0eXBlZGVmIHVp
bnQzMl90IE1STWVkaWFSZW1vdGVDb21tYW5kOworCitlbnVtIHsKKyAgICBrTVJQbGF5YmFja1N0
YXRlVW5rbm93biA9IDAsCisgICAga01SUGxheWJhY2tTdGF0ZVBsYXlpbmcsCisgICAga01SUGxh
eWJhY2tTdGF0ZVBhdXNlZCwKKyAgICBrTVJQbGF5YmFja1N0YXRlU3RvcHBlZCwKKyAgICBrTVJQ
bGF5YmFja1N0YXRlSW50ZXJydXB0ZWQKK307Cit0eXBlZGVmIHVpbnQzMl90IE1SUGxheWJhY2tT
dGF0ZTsKKwordHlwZWRlZiB1aW50MzJfdCBNUk1lZGlhUmVtb3RlRXJyb3I7Cit0eXBlZGVmIHN0
cnVjdCBfTVJPcmlnaW4gKk1ST3JpZ2luUmVmOwordHlwZWRlZiBzdHJ1Y3QgX01STWVkaWFSZW1v
dGVDb21tYW5kSW5mbyAqTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmOwordHlwZWRlZiB2b2lk
KF5NUk1lZGlhUmVtb3RlQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrKShNUk1lZGlhUmVtb3RlQ29t
bWFuZCBjb21tYW5kLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucywgdm9pZCheY29tcGxldGlvbiko
Q0ZBcnJheVJlZikpOworCitXVEZfRVhURVJOX0NfQkVHSU4KKworI3ByYWdtYSBtYXJrIC0gTVJS
ZW1vdGVDb250cm9sCisKK3ZvaWQqIE1STWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVy
QmxvY2soTVJNZWRpYVJlbW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayk7Cit2b2lkIE1STWVk
aWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrKHZvaWQgKm9ic2VydmVyKTsKK3ZvaWQg
TVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzKENGQXJyYXlSZWYgY29tbWFuZHMsIE1S
T3JpZ2luUmVmLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxldGlvbikoTVJN
ZWRpYVJlbW90ZUVycm9yIGVycikpOworCisjcHJhZ21hIG1hcmsgLSBNUk9yaWdpbgorCitNUk9y
aWdpblJlZiBNUk1lZGlhUmVtb3RlR2V0TG9jYWxPcmlnaW4oKTsKKworI3ByYWdtYSBtYXJrIC0g
TVJDb21tYW5kSW5mbworCitNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvQ3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZUNv
bW1hbmRJbmZvU2V0Q29tbWFuZChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYsIE1STWVkaWFS
ZW1vdGVDb21tYW5kKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0RW5hYmxlZChN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYsIEJvb2xlYW4pOwordm9pZCBNUk1lZGlhUmVtb3Rl
Q29tbWFuZEluZm9TZXRPcHRpb25zKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgQ0ZEaWN0
aW9uYXJ5UmVmKTsKKworI3ByYWdtYSBtYXJrIC0gTVJOb3dQbGF5aW5nCisKK0Jvb2xlYW4gTVJN
ZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uKEJvb2xlYW4pOwordm9pZCBN
Uk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdp
bihNUk9yaWdpblJlZiwgTVJQbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwg
dm9pZCheY29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSk7Cit2b2lkIE1STWVkaWFSZW1v
dGVTZXROb3dQbGF5aW5nSW5mbyhDRkRpY3Rpb25hcnlSZWYpOworCitXVEZfRVhURVJOX0NfRU5E
CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjZW5kaWYgLy8gVVNFKE1F
RElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IuaW4KaW5kZXggZjBlMWUxZDYzNzE3ODE3NzA4NzFiY2U5MmRjOTc3NWFh
ODI3OTg5ZC4uZjdiYTEyZWZmZTBlNGM2N2QxMzMzNzJmYTE5ODA0NjVjYzVmNzg1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluCkBAIC0yMDAsNiArMjAwLDkgQEAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTEwMAogICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm5lc2Vzc2lvbm1h
bmFnZXIuZmxvdy1kaXZlcnQtdG9rZW4iKQogI2VuZGlmCisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5t
ZWRpYXJlbW90ZWQueHBjIikKKyNlbmRpZgogKQogCiA7OyBTZWN1cml0eSBmcmFtZXdvcmsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282353</attachid>
            <date>2016-06-29 09:36:43 -0700</date>
            <delta_ts>2016-06-29 12:29:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-159250-20160629093624.patch</filename>
            <type>text/plain</type>
            <size>63200</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjYTEwYzM0MDk3NmYwYmI1MmQ5NGRm
MzVjNTc1OTIyZGE3ZmFiNjguLjBiZTJhNGYxY2FkY2NhZjVhMzlmYmYzYmMyOWJiOGVkYWJlNGNi
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMjkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgTWVkaWFSZW1vdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIFVTRV9NRURJQVJFTU9URS4KKwor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE2LTA2LTI4ICBUb21hcyBQb3BlbGEgIDx0
cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgVEhVTUIyIHN1cHBvcnQgbm90IGNvcnJlY3Rs
eSBkZXRlY3RlZCBvbiBGZWRvcmEgd2l0aCBHQ0MgNi4xLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkZjQ1ZWNl
OWI4MzkwNTAzZWFiMzc3MTI5Y2EwOWRiNjdjYjE1ZmEuLjUzYjY0NDE5NjdlYzM2ZGE3YTVlYzhh
MGEwZGE4YWIwNDYzZTk4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNi0wNi0y
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBNZWRp
YVJlbW90ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBB
ZG9wdCBNZWRpYVJlbW90ZSBhbmQgdXNlIHRoZSBmcmFtZXdvcmsgdG8gaW1wbGVtZW50IE1lZGlh
U2Vzc2lvbk1hbmFnZU1hYworICAgICAgICBhbmQgUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMu
Y3BwLgorICAgICAgICAoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9u
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6On5NZWRpYVNlc3Npb25NYW5h
Z2VyTWFjKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWM6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpub3dQbGF5aW5nRWxpZ2libGVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0
ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL01lZGlhUmVtb3RlU29mdExpbmsuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6Y3JlYXRlV2Vha1B0
cik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OlJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJN
YWM6On5SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMpOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9t
YWMvTWVkaWFSZW1vdGVTUEkuaDogQWRkZWQuCisKIDIwMTYtMDYtMjcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jvc3MtZG9tYWluIHZpZGVvIGxvYWRzIGRv
IG5vdCBwcm9tcHQgZm9yIGF1dGhvcml6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTVmMDQxZGM4NjJj
ZDg5ODBhMWFhOTllZDBhZTZmYmNlYzQ3N2U0OC4uNzhlNzJhYjhkYmYyOTY4ZmJiNjM0NmI3N2Fk
ZGVmYWExMWJlZGVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA2LTI5ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IE1lZGlhUmVt
b3RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBh
IHNhbmRib3ggZXhjZXB0aW9uIGFsbG93aW5nIGFjY2VzcyB0byB0aGUgbWVkaWFyZW1vdGVkIFhQ
QyBzZXJ2aWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbjoKKwogMjAxNi0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyMDE0MDUpOiBGdWxsc2NyZWVuIHZpZGVvIG5vIGxvbmdlciBl
bnRlcnMgbG93LXBvd2VyIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDcyN2M3MzIyZmYxN2ZlODhmNmYz
OGE3NmNiZDJkMTM4YmZiMDYzODMuLmY0YzlmMjkyNzA2MTFjYWE1ZTNlZTM1YWRiZDJlZWRjYmI4
MWMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTIxMiw0ICsxMjEyLDggQEAKICNlbmRpZgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMjAwCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisjZW5kaWYKKwogI2VuZGlmIC8q
IFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjBjMTY1YzU1NDkxOGMzYTQzY2JiZmEwM2EyMDBhM2U0
YzkxNzAyMy4uYzM4OWY1YzdhMTFkZWYyNDkyNGRiNTFhNDY5ZDExMmFjNjQ4MWQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzE5LDcgKzMxOSw3IEBACiAJCTA3RTNERkQxMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBsYXli
YWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3RTlFMTJFMThG
NUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RTlFMTJEMThGNUUy
NzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCAqLzsgfTsK
IAkJMDdFOUUxMzAxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcCAqLzsgfTsKLQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMuY3BwICovOyB9OworCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1t
ICovOyB9OwogCQkwN0VFNzZFQjFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCAq
LzsgfTsKIAkJMDdFRTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0VF
NzZFQTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLzsgfTsK
IAkJMDdFRTc2RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0VFNzZF
RDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLzsgfTsK
QEAgLTYxMjQsNiArNjEyNCw3IEBACiAJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAvKiBTb3Vy
Y2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5o
ICovOyB9OwogCQlDRDY0MUVCRjE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NjQxRUJEMTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICovOyB9
OwogCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVCRTE4
MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CisJCUNENjY5
RDY4MUQyMzM2NEIwMDREMTg2NiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NjlENjYxRDIzMkRG
RjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi87IH07CiAJCUNEN0Qz
MzQzMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQxMUM3QTEyM0Yw
MDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcCAqLzsgfTsKIAkJQ0Q3RDMzNDQx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0QzMzQyMUM3QTEyM0YwMDA0MTI5
MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi87IH07CiAJCUNEN0QzMzQ3MUM3QTE2QkYw
MDA0MTI5MyAvKiBDb3JlVmlkZW9Tb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdEMzM0NTFDN0ExNkJGMDAwNDEyOTMgLyogQ29yZVZp
ZGVvU29mdExpbmsuY3BwICovOyB9OwpAQCAtNjEzOSw2ICs2MTQwLDExIEBACiAJCUNEODIwMzEx
MTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYg
LyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovOyB9OwogCQlDRDhBN0JCQjE5NzczNUZFMDBDQkQ2
NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMgLyogQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi87IH07CiAJCUNEOEE3QkJDMTk3NzM1RkUwMENC
RDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQzIC8qIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi87IH07CisJCUNEOEFDQTg4MUQyMzdBQTIwMEVD
QzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NjFEMjM3QUEyMDBFQ0M1OUUgLyogUmVt
b3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tICovOyB9OworCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1
OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CisJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAv
KiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q4QUNBOEExRDIzOTQ2NDAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU1BJLmggKi87
IH07CisJCUNEOEFDQThFMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThD
MUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJQ0Q4
QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3MTkwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsK
IAkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJh
Y2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q4QjVBNDUxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5o
ICovOyB9OwpAQCAtNzc4Myw3ICs3Nzg5LDcgQEAKIAkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0Q0E4
IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEy
RjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RURD
M0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUg
LyogTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3
NkVBMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0MTc5LDYgKzE0MTg1LDggQEAKIAkJQ0Q2NDFFQkQxODE5QjM1OTAwRUU0QzQxIC8q
IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWVB
VkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVCRTE4
MTlCMzU5MDBFRTRDNDEgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhVGltZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjYxRDIz
MkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwOyBw
YXRoID0gY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2IC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdEMzM0MTFDN0Ex
MjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDsgcGF0aCA9
IC4uL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDdEMzM0MjFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWLmg7IHBhdGggPSAuLi9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEN0QzMzQ1MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3JlVmlkZW9T
b2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlVmlk
ZW9Tb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDE5NSw2ICsx
NDIwMywxMSBAQAogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViV2luZG93
QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhBN0JCOTE5Nzcz
NUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQz
IC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEOEFDQTg2MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
OEFDQTg3MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEFDQThBMUQyMzk0NjQwMEVDQzU5RSAv
KiBNZWRpYVJlbW90ZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVJlbW90ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhBQ0E4QzFEMjM5
NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlbW90ZVNvZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3Rl
U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZW1vdGVT
b2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhCNUE0MDE4MEQxNDlB
MDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNDEx
ODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1QTQ0MTgw
REQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvVHJh
Y2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODA2Niw2
ICsxODA3OSw4IEBACiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTA2RTgxRUVCMEFCNURBOTcwMEM4NzgzNyAvKiBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gKi8sCiAJCQkJMTQwMjY0NUQwQUZEQzE5QjAw
NTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8sCisJCQkJQ0Q4QUNBOEMxRDIzOTcxOTAwRUNDNTlF
IC8qIE1lZGlhUmVtb3RlU29mdExpbmsuY3BwICovLAorCQkJCUNEOEFDQThEMUQyMzk3MTkwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCiAJCQkJOTM1MDBGMzExM0ZERTNCRTAw
OTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJCQkJNTJGNTJFMTAxNEEwMTM0
RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovLAogCQkJCTRCMjcwOTgxMEFG
MkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApAQCAtMTgwODEsNiArMTgwOTYs
OCBAQAogCQkJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVyTWFjLmNw
cCAqLywKIAkJCQk0NkRCQjY0RTFBQjhDOTZGMDBEOUE4MTMgLyogUG93ZXJPYnNlcnZlck1hYy5o
ICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhNYWMubW0g
Ki8sCisJCQkJQ0Q4QUNBODYxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1hYy5tbSAqLywKKwkJCQlDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWFjLmggKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9s
bEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9s
bEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3Jv
bGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTkyMjUsNiArMTkyNDIsNyBAQAogCQkJCTA3RjBCOTdC
MUFDNURCNDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAqLywKIAkJCQkyRDU5RjFCRTFB
MDA0NEM2MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJCTJENDEzRjYwMUEx
ODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKKwkJCQlDRDhBQ0E4QTFEMjM5NDY0MDBF
Q0M1OUUgLyogTWVkaWFSZW1vdGVTUEkuaCAqLywKIAkJCQkyRDc3QUMyNjFCRjJCOTg2MDA3MjQ3
MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi8sCiAJCQkJMkQ3N0FDMjcxQkYyQjk4NjAwNzI0
NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCAqLywKIAkJCQkyREI5QzRBOTFCMzIzMUY0MDA3MEYy
N0YgLyogTlNFdmVudFNQSS5oICovLApAQCAtMjMzMzQsNiArMjMzNTIsMTQgQEAKIAkJCW5hbWUg
PSBNZWRpYVNvdXJjZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNENjY5
RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q2NjlENjYxRDIzMkRGRjAwNEQxODY2IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9IGNvY29hOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q5QTM3RjUxN0M3RDkzNjAwQzVGQTdBIC8q
IG1lZGlhY29udHJvbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtMjUwMzQsNiArMjUwNjAsNyBAQAogCQlGRDMxNjA0MDEyQjAyNkEzMDBDMUEzNTkgLyog
YXVkaW8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNE
NjY5RDY1MUQyMzJERjQwMDREMTg2NiAvKiBjb2NvYSAqLywKIAkJCQlDRDBFRUUwRDE0NzQzRTQ4
MDAzRUFGQTIgLyogaW9zICovLAogCQkJCUZEMzE2MEIwMTJCMDI3MDcwMEMxQTM1OSAvKiBtYWMg
Ki8sCiAJCQkJRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLywKQEAg
LTI1MTM2LDcgKzI1MTYzLDggQEAKIAkJCQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FS
aW5nQnVmZmVyLmNwcCAqLywKIAkJCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5n
QnVmZmVyLmggKi8sCiAJCQkJRkQzMTYwQkExMkIwMjcyQTAwQzFBMzU5IC8qIEZGVEZyYW1lTWFj
LmNwcCAqLywKLQkJCQkwN0VEQzNFRDFBQUNCNzVEMDA5ODNFQjUgLyogTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5jcHAgKi8sCisJCQkJMDdFREMzRUQxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMubW0gKi8sCisJCQkJQ0Q2NjlENjcxRDIzMkUxMDAwNEQxODY2IC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NDUyLDYgKzI2NDgwLDcgQEAKIAkJCQk5M0YxOTlF
NTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBFQ0M1OUUgLyogTWVk
aWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzRTUxMEExOERGOEYzNTAw
QzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTIwQzcxMUM1
NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1
QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3MDcwLDYgKzI3MDk5LDcgQEAKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQz
ODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3QjE3QUFDNzVC
MDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOURFMTdE
MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUE3RkVFQUQxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzZBMjUgLyog
SlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc5MSw2ICsyODgy
MSw3IEBACiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkgLyogV2Vi
Q29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1MDkyMzZD
MDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDhB
Q0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZFIC8qIFdl
YkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREVDOTgwMzBBRUQ3RTE3MDA1
OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTY0Myw2ICsyOTY3
NCw3IEBACiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMyODVGIC8qIENTU1BhcnNlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzAyQTU0MDBFMDk5QzVBMDA0QjZEMkIgLyogQ1NTUGFyc2VyVmFs
dWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZGOCAvKiBD
U1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDY2OUQ2ODFEMjMzNjRC
MDA0RDE4NjYgLyogTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4MEU2RDA1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYyRDA1IC8qIENTU1By
b3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyNzYsNyArMzEzMDgsNyBA
QAogCQkJCUM5NkY1RUM2MUI1ODcyMjYwMDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRp
b25Qcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5MEY2NTU1MUIyMjUzQjEwMDIx
NjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3NjM4
QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdFREMzRUUxQUFDQjc1RDAwOTgzRUI1IC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDNBNDk1RTE3
QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RD
OEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VS
ZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxMzgwLDYgKzMxNDEyLDcgQEAKIAkJCQkx
QTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGltZS5tbSBp
biBTb3VyY2VzICovLAorCQkJCUNEOEFDQTg4MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxQTBEN0UyQjgyMDA3
QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNGNkJERkIwRTlC
QjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCkBAIC0zMjE4OCw2ICszMjIyMSw3IEBACiAJCQkJN0FBM0E2OTkxOTRBNjRF
NzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFGNzJC
RjBBMTg3RkQ0NDkwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2QTMxOTRCNUMyMjAwMUNCRDI0IC8qIFRpbGVDb3Zl
cmFnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhBQ0E4RTFEMjM5NzE5MDBFQ0M1OUUg
LyogTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzQTY5QjE5
NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4Nzcw
RjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmNwcAppbmRleCA3YzU1NTNmNTdjNjE5NWQ1MDk3ZjNkOGE1NzgyN2E2ZTUxNjA4MzljLi4wMzhk
Nzk0ZGU2NDc0Njc1ZDYyOWQ4NzNiNGUxNWMwODdmMTNiNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAgLTI4LDcgKzI4LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiAhUExB
VEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oTUFDKQogc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVt
b3RlQ29tbWFuZExpc3RlbmVyPihjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5k
ZXggYzEwZTdkNGM3ZTA1NDAwYTQ3NTQwMjRkMjk3Njc5ZmE3ZDlmMzVhNS4uOTcyNGJjNWI3Yjc3
YmYwYTlhYmU5Nzk2NjQxMTUyYmRhNTI3MTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQTEFURk9S
TShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKE1BQykKIHN0YXRpYyBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciA9IG51
bGxwdHI7CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0NjJmMTMwZTE2NDkxMzg5N2RiODI4NjhiNTc0MzJhOTE2M2MyN2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1
ZmZlclNpemUgPSAxMjg7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVy
U2l6ZSA9IDQwOTY7CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVT
ZXNzaW9uU3RhdGUoKQoreworICAgIExPRyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRlKCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCks
IFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50
KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpXZWJBdWRpbykpOworCisgICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVk
aW8pKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRC
dWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgIGVsc2UgaWYgKChoYXMoUGxhdGZv
cm1NZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlv
KSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsK
KyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91
dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKKyAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExh
eW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KKworICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsK
KyAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxp
c3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQorICAgICAgICAgICAg
YnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7CisKKyAgICAgICAgQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJT
aXplKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFTZXR0aW5nczo6c2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKKyAgICAg
ICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vz
c2lvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kKTsKKyAgICB9IGVsc2UgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8p
KQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZCk7CisjZW5kaWYKK30KKworI2VuZGlmIC8vIFVTRShBVURJ
T19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3NzMxYTYyMmViMjMxNDk2NTM4MDA3NTViYzMwNDEzM2I4Y2E4ZjExLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKLQotI2lmIFVTRShBVURJ
T19TRVNTSU9OKQotCi0jaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCi0jaW5jbHVkZSAiTG9nZ2lu
Zy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IGtXZWJBdWRpb0J1ZmZlclNpemUgPSAxMjg7Ci1zdGF0aWMg
Y29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7Ci0KLXZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQotewotICAgIExP
RyhNZWRpYSwgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblN0YXRl
KCkgLSB0eXBlczogVmlkZW8oJWQpLCBBdWRpbyglZCksIFdlYkF1ZGlvKCVkKSIsIGNvdW50KFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpB
dWRpbyksIGNvdW50KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpOwotCi0gICAgaWYg
KGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6V2ViQXVkaW8pKQotICAgICAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZl
clNpemUpOwotICAgIGVsc2UgaWYgKChoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvKSB8
fCBoYXMoUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKSkgJiYgU2V0dGluZ3M6Omxvd1Bvd2Vy
VmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUg
YmVsb3cKLSAgICAgICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAu
OC4KLQotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZTsKLSAgICAgICAgaWYgKG1fYXVkaW9IYXJk
d2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBw
b3J0c0xvd1Bvd2VyTW9kZSgpKQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZp
ZGVvQnVmZmVyU2l6ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtX
ZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKLSAgICB9Ci0KLSNpZiBQTEFU
Rk9STShJT1MpCi0gICAgaWYgKCFTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0
ZWdvcnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhcyhQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6VmlkZW8pIHx8IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7Ci0gICAg
ICAgIGlmIChjYW5Qcm9kdWNlQXVkaW8oKSkKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjayk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNl
dENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKTsKLSAgICB9Ci0gICAgZWxzZSBp
ZiAoaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpXZWJBdWRpbykpCi0gICAgICAgIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTUyMTJiMDQ1MzNlZjJlNTVkZTkyODNkMTY2OTZiMjU2
Mjk3ZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyA6IHB1Ymxp
YyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfk1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworCisgICAgTWVkaWFTZXNzaW9uTWFuYWdlck1hYygp
OworCisgICAgdm9pZCByZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgb3ZlcnJp
ZGU7CisKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vz
c2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNz
Q2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworCisgICAgdm9pZCB1cGRh
dGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIG5vd1BsYXlp
bmdFbGlnaWJsZVNlc3Npb24oKTsKKworICAgIGRvdWJsZSBtX3JlcG9ydGVkUmF0ZSB7IDAgfTsK
KyAgICBkb3VibGUgbV9yZXBvcnRlZER1cmF0aW9uIHsgMCB9OworICAgIFN0cmluZyBtX3JlcG9y
dGVkVGl0bGU7CisgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZiZTJkYzcxM2YzMmZhNzQ3YjZlNDcwNDlkZWYyODNkZDY1NjM1YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oIgorCisjaWYgUExBVEZP
Uk0oTUFDKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgor
I2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKworI2ltcG9ydCAiTWVkaWFSZW1vdGVT
b2Z0TGluay5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgTWVkaWFTZXNzaW9uTWFuYWdlck1hYyogcGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyID0gbnVsbHB0cjsKKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQoreworICAgIGlmICghcGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKQorICAgICAgICBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIgPSBuZXcgTWVkaWFTZXNzaW9uTWFuYWdlck1hYzsKKyAgICByZXR1cm4gKnBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKiBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygpCit7Cisg
ICAgcmV0dXJuIHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKK30KKworTWVkaWFTZXNzaW9u
TWFuYWdlck1hYzo6TWVkaWFTZXNzaW9uTWFuYWdlck1hYygpCisgICAgOiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJlc2V0UmVzdHJpY3Rpb25zKCk7Cit9CisKK01lZGlh
U2Vzc2lvbk1hbmFnZXJNYWM6On5NZWRpYVNlc3Npb25NYW5hZ2VyTWFjKCkKK3sKK30KKworYm9v
bCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZv
cm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhzZXNzaW9uKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6c2Vz
c2lvbldpbGxCZWdpblBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpyZW1vdmVT
ZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBMT0coTWVkaWEs
ICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpyZW1vdmVTZXNzaW9uIik7CisgICAgdXBkYXRlTm93
UGxheWluZ0luZm8oKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhzZXNzaW9u
KTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpzZXNzaW9uV2lsbEVu
ZFBsYXliYWNrIik7CisgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKK30KKwordm9pZCBNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uJikKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
OjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkIik7CisgICAgdXBkYXRlTm93UGxheWluZ0lu
Zm8oKTsKK30KKworUGxhdGZvcm1NZWRpYVNlc3Npb24qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6
Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQoreworICAgIGZvciAoYXV0byBzZXNzaW9uIDog
c2Vzc2lvbnMoKSkgeworICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIHR5
cGUgPSBzZXNzaW9uLT5tZWRpYVR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlZpZGVvICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlv
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHNlc3Npb24tPmNoYXJhY3Rl
cmlzdGljcygpICYgUGxhdGZvcm1NZWRpYVNlc3Npb246Okhhc0F1ZGlvKQorICAgICAgICAgICAg
cmV0dXJuIHNlc3Npb247CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8oKQoreworI2lmIFVT
RShNRURJQVJFTU9URSkKKyAgICBpZiAoIWlzTWVkaWFSZW1vdGVGcmFtZXdvcmtBdmFpbGFibGUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFNUk1lZGlhUmVtb3RlU2V0Q2FuQmVOb3dQ
bGF5aW5nQXBwbGljYXRpb24odHJ1ZSkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNz
aW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3RlU2V0Q2Fu
QmVOb3dQbGF5aW5nQXBwbGljYXRpb24odHJ1ZSkgZmFpbGVkIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogY3VycmVudFNlc3Npb24g
PSB0aGlzLT5ub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisKKyAgICBMT0coTWVkaWEsICJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIGN1cnJlbnRTZXNz
aW9uID0gJXAiLCBjdXJyZW50U2Vzc2lvbik7CisKKyAgICBpZiAoIWN1cnJlbnRTZXNzaW9uKSB7
CisgICAgICAgIGlmIChtX25vd1BsYXlpbmdBY3RpdmUpIHsKKyAgICAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gY2xlYXJp
bmcgbm93IHBsYXlpbmcgaW5mbyIpOworICAgICAgICAgICAgTVJNZWRpYVJlbW90ZVNldE5vd1Bs
YXlpbmdJbmZvKG51bGxwdHIpOworICAgICAgICAgICAgbV9ub3dQbGF5aW5nQWN0aXZlID0gZmFs
c2U7CisgICAgICAgICAgICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxh
eWJhY2tTdGF0ZUZvck9yaWdpbihNUk1lZGlhUmVtb3RlR2V0TG9jYWxPcmlnaW4oKSwga01SUGxh
eWJhY2tTdGF0ZVN0b3BwZWQsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oTVJNZWRpYVJl
bW90ZUVycm9yIGVycm9yKSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNz
aW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBNUk1lZGlhUmVtb3RlU2V0Tm93
UGxheWluZ0FwcGxpY2F0aW9uUGxheWJhY2tTdGF0ZUZvck9yaWdpbihzdG9wcGVkKSBmYWlsZWQg
d2l0aCBlcnJvciAldWQiLCBlcnJvcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgdGl0bGUgPSBjdXJyZW50U2Vzc2lv
bi0+dGl0bGUoKTsKKyAgICBkb3VibGUgZHVyYXRpb24gPSBjdXJyZW50U2Vzc2lvbi0+ZHVyYXRp
b24oKTsKKyAgICBkb3VibGUgcmF0ZSA9IGN1cnJlbnRTZXNzaW9uLT5zdGF0ZSgpID09IFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpQbGF5aW5nID8gMSA6IDA7CisgICAgaWYgKG1fcmVwb3J0ZWRUaXRs
ZSA9PSB0aXRsZSAmJiBtX3JlcG9ydGVkUmF0ZSA9PSByYXRlICYmIG1fcmVwb3J0ZWREdXJhdGlv
biA9PSBkdXJhdGlvbikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIG5vdGhpbmcgbmV3IHRvIHNob3ciKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVwb3J0ZWRSYXRlID0gcmF0ZTsKKyAgICBtX3Jl
cG9ydGVkRHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBtX3JlcG9ydGVkVGl0bGUgPSB0aXRsZTsK
KworICAgIGF1dG8gaW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCA0LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICBpZiAoIXRpdGxlLmlzRW1wdHko
KSkKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVkaWFSZW1v
dGVOb3dQbGF5aW5nSW5mb1RpdGxlLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKwor
ICAgIGlmIChzdGQ6OmlzZmluaXRlKGR1cmF0aW9uKSAmJiBkdXJhdGlvbiAhPSBNZWRpYVBsYXll
cjo6aW52YWxpZFRpbWUoKSkgeworICAgICAgICBhdXRvIGNmRHVyYXRpb24gPSBhZG9wdENGKENG
TnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckRvdWJsZVR5cGUsICZk
dXJhdGlvbikpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShpbmZvLmdldCgpLCBrTVJN
ZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24sIGNmRHVyYXRpb24uZ2V0KCkpOworICAg
IH0KKworICAgIGF1dG8gY2ZSYXRlID0gQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGTnVtYmVyRG91YmxlVHlwZSwgJnJhdGUpOworICAgIENGRGljdGlvbmFyeVNldFZhbHVl
KGluZm8uZ2V0KCksIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUsIGNm
UmF0ZSk7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJyZW50U2Vzc2lvbi0+Y3VycmVu
dFRpbWUoKTsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3VycmVudFRp
bWUgIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpIHsKKyAgICAgICAgYXV0byBjZkN1cnJl
bnRUaW1lID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZO
dW1iZXJEb3VibGVUeXBlLCAmY3VycmVudFRpbWUpKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUoaW5mby5nZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1l
LCBjZkN1cnJlbnRUaW1lLmdldCgpKTsKKyAgICB9CisKKyAgICBMT0coTWVkaWEsICJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIHRpdGxlID0gXCIlc1wiLCBy
YXRlID0gJWYsIGR1cmF0aW9uID0gJWYsIG5vdyA9ICVmIiwKKyAgICAgICAgdGl0bGUudXRmOCgp
LmRhdGEoKSwgcmF0ZSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lKTsKKworICAgIG1fbm93UGxheWlu
Z0FjdGl2ZSA9IHRydWU7CisgICAgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlv
blBsYXliYWNrU3RhdGVGb3JPcmlnaW4oTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luKCksIGtN
UlBsYXliYWNrU3RhdGVQbGF5aW5nLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKE1STWVk
aWFSZW1vdGVFcnJvciBlcnJvcikgeworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIE1STWVkaWFSZW1vdGVTZXROb3dQbGF5
aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKHBsYXlpbmcpIGZhaWxlZCB3aXRo
IGVycm9yICV1ZCIsIGVycm9yKTsKKyAgICB9KTsKKyAgICBNUk1lZGlhUmVtb3RlU2V0Tm93UGxh
eWluZ0luZm8oaW5mby5nZXQoKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1NvZnRMaW5raW5nLmgKaW5kZXggODAyZmRkMTBkMDQ2ZmVkNjJlMTdiNDAzNGEyMGQ2ZDFi
YzBlZTYzYy4uYjFhMDNjMWNlZWVkMWJmMjU1ZmMxYjM3Mzk4NDMyZGU1MTRiNzBkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU29mdExpbmtpbmcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Tb2Z0TGlua2luZy5oCkBAIC0zMjUsNiArMzI1
LDIyIEBACiAgICAgfSBcCiAgICAgfQogCisjZGVmaW5lIFNPRlRfTElOS19QUklWQVRFX0ZSQU1F
V09SS19GT1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmspIFwKKyAgICBuYW1l
c3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5
KGJvb2wgaXNPcHRpb25hbCA9IGZhbHNlKTsgXAorICAgIHZvaWQqIGZyYW1ld29yayMjTGlicmFy
eShib29sIGlzT3B0aW9uYWwpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIHZvaWQqIGZyYW1l
d29ya0xpYnJhcnk7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOyBcCisg
ICAgICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZyYW1ld29ya0xp
YnJhcnkgPSBkbG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy8iICNmcmFt
ZXdvcmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAgICAgICAg
IGlmICghaXNPcHRpb25hbCkgXAorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
TUVTU0FHRShmcmFtZXdvcmtMaWJyYXJ5LCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAgICAgIH0p
OyBcCisgICAgICAgIHJldHVybiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgfSBcCisgICAgfQor
CiAjZGVmaW5lIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKGZ1bmN0aW9uTmFtZXNwYWNlLCBm
cmFtZXdvcmssIGNsYXNzTmFtZSkgXAogICAgIEBjbGFzcyBjbGFzc05hbWU7IFwKICAgICBuYW1l
c3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTWVkaWFSZW1vdGVTb2Z0TGluay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlhZWUxMzkwZGY3
NTgzZDBkMGZhNTU5MmVkMGEyNWJhN2Y1Y2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9NZWRpYVJlbW90ZVNvZnRMaW5rLmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShNRURJQVJF
TU9URSkKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtp
bmcuaCIKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
TWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRp
YVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luLCBNUk9yaWdpblJlZiwgKCksICgp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1S
TWVkaWFSZW1vdGVBZGRBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQqLCAoTVJNZWRpYVJl
bW90ZUFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBibG9jayksIChibG9jaykpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVJl
bW92ZUNvbW1hbmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChvYnNlcnZl
cikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
TVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJlZiBjb21t
YW5kcywgTVJPcmlnaW5SZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZChe
Y29tcGxldGlvbikoTVJNZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9yaWdpbiwg
cmVwbHlRLCBjb21wbGV0aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9DcmVhdGUsIE1STWVkaWFS
ZW1vdGVDb21tYW5kSW5mb1JlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksIChhbGxvY2F0
b3IpKTsKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3Rl
LCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRDb21tYW5kLCB2b2lkLCAoTVJNZWRpYVJlbW90
ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBjb21tYW5k
KSwgKGNvbW1hbmRJbmZvLCBjb21tYW5kKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVk
LCB2b2lkLCAoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmIGNvbW1hbmRJbmZvLCBCb29sZWFu
IGVuYWJsZWQpLCAoY29tbWFuZEluZm8sIGVuYWJsZWQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1Nl
dE9wdGlvbnMsIHZvaWQsIChNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8s
IENGRGljdGlvbmFyeVJlZiBvcHRpb25zKSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVt
b3RlU2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24sIEJvb2xlYW4sIChCb29sZWFuIGZsYWcp
LCAoZmxhZykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJl
bW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZvLCB2b2lkLCAoQ0ZEaWN0aW9uYXJ5
UmVmIGluZm8pLCAoaW5mbykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXli
YWNrU3RhdGVGb3JPcmlnaW4sIHZvaWQsIChNUk9yaWdpblJlZiBvcmlnaW4sIE1SUGxheWJhY2tT
dGF0ZSBwbGF5YmFja1N0YXRlLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxl
dGlvbikoTVJNZWRpYVJlbW90ZUVycm9yKSksIChvcmlnaW4sIHBsYXliYWNrU3RhdGUsIHJlcGx5
USwgY29tcGxldGlvbikpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBN
ZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlLCBDRlN0cmluZ1Jl
Zik7CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwg
a01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0R1cmF0aW9uLCBDRlN0cmluZ1JlZik7CitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7CitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVkaWFSZW1vdGVO
b3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgQ0ZTdHJpbmdSZWYpOworCisjZW5kaWYgLy8gVVNF
KE1FRElBUkVNT1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01l
ZGlhUmVtb3RlU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NZWRpYVJl
bW90ZVNvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE2MDM2Mzg4NzNlMDU3Mjc3MzE1ODI3NDg5NDU4
ZGQxMzNlNWFlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9NZWRpYVJlbW90ZVNvZnRMaW5rLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgVVNFKE1FRElBUkVNT1RFKQorCisjaW5jbHVkZSAiTWVkaWFSZW1v
dGVTUEkuaCIKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorCitTT0ZUX0xJTktfRlJBTUVXT1JL
X0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2lu
LCBNUk9yaWdpblJlZiwgKCksICgpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlR2V0TG9jYWxPcmln
aW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUdldExvY2FsT3JpZ2luCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jaywgdm9pZCosIChNUk1lZGlhUmVtb3RlQXN5
bmNDb21tYW5kSGFuZGxlckJsb2NrIGJsb2NrKSwgKGJsb2NrKSkKKyNkZWZpbmUgTVJNZWRpYVJl
bW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1l
ZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVJlbW92ZUNvbW1h
bmRIYW5kbGVyQmxvY2ssIHZvaWQsICh2b2lkKiBvYnNlcnZlciksIChvYnNlcnZlcikpCisjZGVm
aW5lIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrIHNvZnRMaW5rX01lZGlh
UmVtb3RlX01STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFuZGxlckJsb2NrCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNl
dFN1cHBvcnRlZENvbW1hbmRzLCB2b2lkLCAoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5S
ZWYgb3JpZ2luLCBkaXNwYXRjaF9xdWV1ZV90IHJlcGx5USwgdm9pZCheY29tcGxldGlvbikoTVJN
ZWRpYVJlbW90ZUVycm9yIGVycikpLCAoY29tbWFuZHMsIG9yaWdpbiwgcmVwbHlRLCBjb21wbGV0
aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldFN1cHBvcnRlZENvbW1hbmRzIHNvZnRMaW5r
X01lZGlhUmVtb3RlX01STWVkaWFSZW1vdGVTZXRTdXBwb3J0ZWRDb21tYW5kcworU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVD
b21tYW5kSW5mb0NyZWF0ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yKSwgKGFsbG9jYXRvcikpOworI2RlZmluZSBNUk1lZGlhUmVtb3RlQ29t
bWFuZEluZm9DcmVhdGUgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1hbmRJ
bmZvQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJl
bW90ZSwgTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvU2V0Q29tbWFuZCwgdm9pZCwgKE1STWVkaWFS
ZW1vdGVDb21tYW5kSW5mb1JlZiBjb21tYW5kSW5mbywgTVJNZWRpYVJlbW90ZUNvbW1hbmQgY29t
bWFuZCksIChjb21tYW5kSW5mbywgY29tbWFuZCkpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVDb21t
YW5kSW5mb1NldENvbW1hbmQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1h
bmRJbmZvU2V0Q29tbWFuZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwg
TWVkaWFSZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldEVuYWJsZWQsIHZvaWQsIChN
Uk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIEJvb2xlYW4gZW5hYmxlZCks
IChjb21tYW5kSW5mbywgZW5hYmxlZCkpCisjZGVmaW5lIE1STWVkaWFSZW1vdGVDb21tYW5kSW5m
b1NldEVuYWJsZWQgc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZv
U2V0RW5hYmxlZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgTWVkaWFS
ZW1vdGUsIE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1NldE9wdGlvbnMsIHZvaWQsIChNUk1lZGlh
UmVtb3RlQ29tbWFuZEluZm9SZWYgY29tbWFuZEluZm8sIENGRGljdGlvbmFyeVJlZiBvcHRpb25z
KSwgKGNvbW1hbmRJbmZvLCBvcHRpb25zKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZUNvbW1hbmRJ
bmZvU2V0T3B0aW9ucyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3RlQ29tbWFuZElu
Zm9TZXRPcHRpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBNZWRp
YVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uLCBCb29s
ZWFuLCAoQm9vbGVhbiBmbGFnKSwgKGZsYWcpKQorI2RlZmluZSBNUk1lZGlhUmVtb3RlU2V0Q2Fu
QmVOb3dQbGF5aW5nQXBwbGljYXRpb24gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJlbW90
ZVNldENhbkJlTm93UGxheWluZ0FwcGxpY2F0aW9uCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdJbmZv
LCB2b2lkLCAoQ0ZEaWN0aW9uYXJ5UmVmIGluZm8pLCAoaW5mbykpCisjZGVmaW5lIE1STWVkaWFS
ZW1vdGVTZXROb3dQbGF5aW5nSW5mbyBzb2Z0TGlua19NZWRpYVJlbW90ZV9NUk1lZGlhUmVtb3Rl
U2V0Tm93UGxheWluZ0luZm8KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IE1lZGlhUmVtb3RlLCBNUk1lZGlhUmVtb3RlU2V0Tm93UGxheWluZ0FwcGxpY2F0aW9uUGxheWJh
Y2tTdGF0ZUZvck9yaWdpbiwgdm9pZCwgKE1ST3JpZ2luUmVmIG9yaWdpbiwgTVJQbGF5YmFja1N0
YXRlIHBsYXliYWNrU3RhdGUsIGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0
aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IpKSwgKG9yaWdpbiwgcGxheWJhY2tTdGF0ZSwgcmVwbHlR
LCBjb21wbGV0aW9uKSkKKyNkZWZpbmUgTVJNZWRpYVJlbW90ZVNldE5vd1BsYXlpbmdBcHBsaWNh
dGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4gc29mdExpbmtfTWVkaWFSZW1vdGVfTVJNZWRpYVJl
bW90ZVNldE5vd1BsYXlpbmdBcHBsaWNhdGlvblBsYXliYWNrU3RhdGVGb3JPcmlnaW4KK1NPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJl
bW90ZU5vd1BsYXlpbmdJbmZvVGl0bGUsIENGU3RyaW5nUmVmKTsKKyNkZWZpbmUga01STWVkaWFS
ZW1vdGVOb3dQbGF5aW5nSW5mb1RpdGxlIGdldF9NZWRpYVJlbW90ZV9rTVJNZWRpYVJlbW90ZU5v
d1BsYXlpbmdJbmZvVGl0bGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29y
ZSwgTWVkaWFSZW1vdGUsIGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlvbiwgQ0ZT
dHJpbmdSZWYpOworI2RlZmluZSBrTVJNZWRpYVJlbW90ZU5vd1BsYXlpbmdJbmZvRHVyYXRpb24g
Z2V0X01lZGlhUmVtb3RlX2tNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9EdXJhdGlvbigpCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBNZWRpYVJlbW90ZSwga01STWVk
aWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lLCBDRlN0cmluZ1JlZik7CisjZGVmaW5l
IGtNUk1lZGlhUmVtb3RlTm93UGxheWluZ0luZm9FbGFwc2VkVGltZSBnZXRfTWVkaWFSZW1vdGVf
a01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBzZWRUaW1lKCkKK1NPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIE1lZGlhUmVtb3RlLCBrTVJNZWRpYVJlbW90ZU5vd1Bs
YXlpbmdJbmZvUGxheWJhY2tSYXRlLCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIGtNUk1lZGlhUmVt
b3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUgZ2V0X01lZGlhUmVtb3RlX2tNUk1lZGlhUmVt
b3RlTm93UGxheWluZ0luZm9QbGF5YmFja1JhdGUoKQorCisjZW5kaWYgLy8gVVNFKE1FRElBUkVN
T1RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOTM4ZmI5YWQ5MGRiNTJlMDVlYWExZTI5ZDhl
NWQxOTU5YmYwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisK
KyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMgOiBwdWJsaWMgUmVtb3RlQ29tbWFuZExpc3RlbmVyIHsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xp
ZW50Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisKKyAgICBX
ZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZhY3Rvcnkg
eyB0aGlzIH07CisgICAgdm9pZCogbV9jb21tYW5kSGFuZGxlciB7IG51bGxwdHIgfTsKK307Cisg
ICAgCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNmIyNjczMzUxY2NjMGUxODBjOTYwYmM0YmI5ODJhNWI4NDBhMTUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yy5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgiCisKKyNpZiBQTEFURk9STShN
QUMpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisK
KyNpbXBvcnQgIk1lZGlhUmVtb3RlU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkKK3sKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+KGNsaWVu
dCk7Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVtb3RlQ29t
bWFuZExpc3RlbmVyKGNsaWVudCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYgKCFp
c01lZGlhUmVtb3RlRnJhbWV3b3JrQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHN0YXRpYyBjb25zdCBNUk1lZGlhUmVtb3RlQ29tbWFuZCBzdXBwb3J0ZWRDb21tYW5kc1tdID0g
eworICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBsYXksCisgICAgICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kUGF1c2UsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xlUGxheVBh
dXNlLAorICAgICAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAg
ICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kRmFzdEZvcndhcmQsCisgICAgICAgIE1STWVkaWFS
ZW1vdGVDb21tYW5kQmVnaW5SZXdpbmQsCisgICAgICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5k
UmV3aW5kLAorICAgIH07CisKKyAgICBhdXRvIGNvbW1hbmRJbmZvQXJyYXkgPSBhZG9wdENGKENG
QXJyYXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNpemVvZihzdXBwb3J0ZWRD
b21tYW5kcykgLyBzaXplb2YoTVJNZWRpYVJlbW90ZUNvbW1hbmQpLCAma0NGVHlwZUFycmF5Q2Fs
bEJhY2tzKSk7CisKKyAgICBmb3IgKGF1dG8gY29tbWFuZCA6IHN1cHBvcnRlZENvbW1hbmRzKSB7
CisgICAgICAgIGF1dG8gY29tbWFuZEluZm8gPSBhZG9wdENGKE1STWVkaWFSZW1vdGVDb21tYW5k
SW5mb0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0KSk7CisgICAgICAgIE1STWVkaWFSZW1vdGVD
b21tYW5kSW5mb1NldENvbW1hbmQoY29tbWFuZEluZm8uZ2V0KCksIGNvbW1hbmQpOworICAgICAg
ICBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKGNvbW1hbmRJbmZvLmdldCgpLCB0
cnVlKTsKKyAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGNvbW1hbmRJbmZvQXJyYXkuZ2V0KCks
IGNvbW1hbmRJbmZvLmdldCgpKTsKKyAgICB9CisKKyAgICBNUk1lZGlhUmVtb3RlU2V0U3VwcG9y
dGVkQ29tbWFuZHMoY29tbWFuZEluZm9BcnJheS5nZXQoKSwgTVJNZWRpYVJlbW90ZUdldExvY2Fs
T3JpZ2luKCksIG51bGxwdHIsIG51bGxwdHIpOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0
ZVdlYWtQdHIoKTsKKyAgICBtX2NvbW1hbmRIYW5kbGVyID0gTVJNZWRpYVJlbW90ZUFkZEFzeW5j
Q29tbWFuZEhhbmRsZXJCbG9jayheKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1hbmQsIENGRGlj
dGlvbmFyeVJlZiBvcHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVmKSkgeworICAg
ICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CisKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQgeyBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6Tm9Db21tYW5kIH07CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7Cisg
ICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQbGF5OgorICAgICAgICAgICAgcGxhdGZv
cm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlDb21tYW5kOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRQYXVzZToKKyAgICAg
ICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1h
bmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFu
ZFRvZ2dsZVBsYXlQYXVzZToKKyAgICAgICAgICAgIHBsYXRmb3JtQ29tbWFuZCA9IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpUb2dnbGVQbGF5UGF1c2VDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTVJNZWRpYVJlbW90ZUNvbW1hbmRCZWdpbkZhc3RGb3J3YXJkOgorICAg
ICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkJlZ2luU2Vl
a2luZ0ZvcndhcmRDb21tYW5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVJN
ZWRpYVJlbW90ZUNvbW1hbmRFbmRGYXN0Rm9yd2FyZDoKKyAgICAgICAgICAgIHBsYXRmb3JtQ29t
bWFuZCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2lu
UmV3aW5kOgorICAgICAgICAgICAgcGxhdGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Np
b246OkJlZ2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kOgorICAgICAgICAgICAgcGxh
dGZvcm1Db21tYW5kID0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZFNlZWtpbmdCYWNrd2FyZENv
bW1hbmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9OworCisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5tX2NsaWVudC5kaWRS
ZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQocGxhdGZvcm1Db21tYW5kKTsKKyAgICAgICAgY29t
cGxldGlvbihzdGF0aWNfY2FzdDxDRkFycmF5UmVmPihAW0AwXSkpOworICAgIH0pOworI2VuZGlm
IC8vIFVTRShNRURJQVJFTU9URSkKK30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjp+UmVt
b3RlQ29tbWFuZExpc3RlbmVyTWFjKCkKK3sKKyNpZiBVU0UoTUVESUFSRU1PVEUpCisgICAgaWYg
KG1fY29tbWFuZEhhbmRsZXIpCisgICAgICAgIE1STWVkaWFSZW1vdGVSZW1vdmVDb21tYW5kSGFu
ZGxlckJsb2NrKG1fY29tbWFuZEhhbmRsZXIpOworI2VuZGlmCit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL01lZGlhUmVtb3RlU1BJLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDVkMTM4ZjMzODAxZGMwMWYzNjJjMjkwNjYzMDQxODY2MTdhNDJiZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTWVkaWFSZW1vdGVT
UEkuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
VVNFKE1FRElBUkVNT1RFKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1
ZGUgPE1lZGlhUmVtb3RlL01lZGlhUmVtb3RlLmg+CisKKyNlbHNlCisKK2VudW0geworICAgIE1S
TWVkaWFSZW1vdGVDb21tYW5kUGxheSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFBhdXNlLAor
ICAgIE1STWVkaWFSZW1vdGVDb21tYW5kVG9nZ2xlUGxheVBhdXNlLAorICAgIE1STWVkaWFSZW1v
dGVDb21tYW5kU3RvcCwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZE5leHRUcmFjaywKKyAgICBN
Uk1lZGlhUmVtb3RlQ29tbWFuZFByZXZpb3VzVHJhY2ssCisgICAgTVJNZWRpYVJlbW90ZUNvbW1h
bmRBZHZhbmNlU2h1ZmZsZU1vZGUsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRBZHZhbmNlUmVw
ZWF0TW9kZSwKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZEJlZ2luRmFzdEZvcndhcmQsCisgICAg
TVJNZWRpYVJlbW90ZUNvbW1hbmRFbmRGYXN0Rm9yd2FyZCwKKyAgICBNUk1lZGlhUmVtb3RlQ29t
bWFuZEJlZ2luUmV3aW5kLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRW5kUmV3aW5kLAorICAg
IE1STWVkaWFSZW1vdGVDb21tYW5kUmV3aW5kMTVTZWNvbmRzLAorICAgIE1STWVkaWFSZW1vdGVD
b21tYW5kRmFzdEZvcndhcmQxNVNlY29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRSZXdp
bmQzMFNlY29uZHMsCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRGYXN0Rm9yd2FyZDMwU2Vjb25k
cywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFRvZ2dsZVJlY29yZCwKKyAgICBNUk1lZGlhUmVt
b3RlQ29tbWFuZFNraXBGb3J3YXJkLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kU2tpcEJhY2t3
YXJkLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQ2hhbmdlUGxheWJhY2tSYXRlLAorICAgIE1S
TWVkaWFSZW1vdGVDb21tYW5kUmF0ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kTGlr
ZVRyYWNrLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kRGlzbGlrZVRyYWNrLAorICAgIE1STWVk
aWFSZW1vdGVDb21tYW5kQm9va21hcmtUcmFjaywKKyAgICBNUk1lZGlhUmVtb3RlQ29tbWFuZFNl
ZWtUb1BsYXliYWNrUG9zaXRpb24sCisgICAgTVJNZWRpYVJlbW90ZUNvbW1hbmRDaGFuZ2VSZXBl
YXRNb2RlLAorICAgIE1STWVkaWFSZW1vdGVDb21tYW5kQ2hhbmdlU2h1ZmZsZU1vZGUsCisgICAg
TVJNZWRpYVJlbW90ZUNvbW1hbmRFbmFibGVMYW5ndWFnZU9wdGlvbiwKKyAgICBNUk1lZGlhUmVt
b3RlQ29tbWFuZERpc2FibGVMYW5ndWFnZU9wdGlvbgorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJN
ZWRpYVJlbW90ZUNvbW1hbmQ7CisKK2VudW0geworICAgIGtNUlBsYXliYWNrU3RhdGVVbmtub3du
ID0gMCwKKyAgICBrTVJQbGF5YmFja1N0YXRlUGxheWluZywKKyAgICBrTVJQbGF5YmFja1N0YXRl
UGF1c2VkLAorICAgIGtNUlBsYXliYWNrU3RhdGVTdG9wcGVkLAorICAgIGtNUlBsYXliYWNrU3Rh
dGVJbnRlcnJ1cHRlZAorfTsKK3R5cGVkZWYgdWludDMyX3QgTVJQbGF5YmFja1N0YXRlOworCit0
eXBlZGVmIHVpbnQzMl90IE1STWVkaWFSZW1vdGVFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9NUk9y
aWdpbiAqTVJPcmlnaW5SZWY7Cit0eXBlZGVmIHN0cnVjdCBfTVJNZWRpYVJlbW90ZUNvbW1hbmRJ
bmZvICpNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9SZWY7Cit0eXBlZGVmIHZvaWQoXk1STWVkaWFS
ZW1vdGVBc3luY0NvbW1hbmRIYW5kbGVyQmxvY2spKE1STWVkaWFSZW1vdGVDb21tYW5kIGNvbW1h
bmQsIENGRGljdGlvbmFyeVJlZiBvcHRpb25zLCB2b2lkKF5jb21wbGV0aW9uKShDRkFycmF5UmVm
KSk7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCisjcHJhZ21hIG1hcmsgLSBNUlJlbW90ZUNvbnRy
b2wKKwordm9pZCogTVJNZWRpYVJlbW90ZUFkZEFzeW5jQ29tbWFuZEhhbmRsZXJCbG9jayhNUk1l
ZGlhUmVtb3RlQXN5bmNDb21tYW5kSGFuZGxlckJsb2NrKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVJl
bW92ZUNvbW1hbmRIYW5kbGVyQmxvY2sodm9pZCAqb2JzZXJ2ZXIpOwordm9pZCBNUk1lZGlhUmVt
b3RlU2V0U3VwcG9ydGVkQ29tbWFuZHMoQ0ZBcnJheVJlZiBjb21tYW5kcywgTVJPcmlnaW5SZWYs
IGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21wbGV0aW9uKShNUk1lZGlhUmVtb3Rl
RXJyb3IgZXJyKSk7CisKKyNwcmFnbWEgbWFyayAtIE1ST3JpZ2luCisKK01ST3JpZ2luUmVmIE1S
TWVkaWFSZW1vdGVHZXRMb2NhbE9yaWdpbigpOworCisjcHJhZ21hIG1hcmsgLSBNUkNvbW1hbmRJ
bmZvCisKK01STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiBNUk1lZGlhUmVtb3RlQ29tbWFuZElu
Zm9DcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9T
ZXRDb21tYW5kKE1STWVkaWFSZW1vdGVDb21tYW5kSW5mb1JlZiwgTVJNZWRpYVJlbW90ZUNvbW1h
bmQpOwordm9pZCBNUk1lZGlhUmVtb3RlQ29tbWFuZEluZm9TZXRFbmFibGVkKE1STWVkaWFSZW1v
dGVDb21tYW5kSW5mb1JlZiwgQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1vdGVDb21tYW5kSW5m
b1NldE9wdGlvbnMoTVJNZWRpYVJlbW90ZUNvbW1hbmRJbmZvUmVmLCBDRkRpY3Rpb25hcnlSZWYp
OworCisjcHJhZ21hIG1hcmsgLSBNUk5vd1BsYXlpbmcKKworQm9vbGVhbiBNUk1lZGlhUmVtb3Rl
U2V0Q2FuQmVOb3dQbGF5aW5nQXBwbGljYXRpb24oQm9vbGVhbik7Cit2b2lkIE1STWVkaWFSZW1v
dGVTZXROb3dQbGF5aW5nQXBwbGljYXRpb25QbGF5YmFja1N0YXRlRm9yT3JpZ2luKE1ST3JpZ2lu
UmVmLCBNUlBsYXliYWNrU3RhdGUsIGRpc3BhdGNoX3F1ZXVlX3QgcmVwbHlRLCB2b2lkKF5jb21w
bGV0aW9uKShNUk1lZGlhUmVtb3RlRXJyb3IpKTsKK3ZvaWQgTVJNZWRpYVJlbW90ZVNldE5vd1Bs
YXlpbmdJbmZvKENGRGljdGlvbmFyeVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlm
IC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBVU0UoTUVESUFSRU1PVEUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYi5pbgppbmRleCBmMGUxZTFkNjM3MTc4MTc3MDg3MWJjZTkyZGM5Nzc1YWE4Mjc5ODlkLi5m
N2JhMTJlZmZlMGU0YzY3ZDEzMzM3MmZhMTk4MDQ2NWNjNWY3ODUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTIw
MCw2ICsyMDAsOSBAQAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5mbG93
LWRpdmVydC10b2tlbiIpCiAjZW5kaWYKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTIwMAorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3Rl
ZC54cGMiKQorI2VuZGlmCiApCiAKIDs7IFNlY3VyaXR5IGZyYW1ld29yawo=
</data>

          </attachment>
      

    </bug>

</bugzilla>