<?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>206209</bug_id>
          
          <creation_ts>2020-01-13 18:17:45 -0800</creation_ts>
          <short_desc>Expose video tracks for media files in the GPUProcess</short_desc>
          <delta_ts>2020-01-14 00:16:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>
          
          <blocked>205123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1606179</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-13 18:17:45 -0800</bug_when>
    <thetext>Expose video tracks for media files in the GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606180</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-13 18:17:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/58553026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606187</commentid>
    <comment_count>2</comment_count>
      <attachid>387605</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-13 18:34:55 -0800</bug_when>
    <thetext>Created attachment 387605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606226</commentid>
    <comment_count>3</comment_count>
      <attachid>387605</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-13 20:35:49 -0800</bug_when>
    <thetext>Comment on attachment 387605
Patch

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

r=me with a nit and a couple fixes.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:423
&gt; +    ASSERT(!m_videoTracks.contains(identifier));
&gt; +    if (m_videoTracks.contains(identifier))
&gt; +        return;
&gt; +
&gt; +    auto track = VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration));
&gt; +    m_player-&gt;addVideoTrack(m_videoTracks.add(identifier, WTFMove(track)).iterator-&gt;value);

Nit: This could be made ever so slightly more efficient by doing something like:

  auto addResult = m_videoTracks.ensure(identifier, [&amp;] { return VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration));  });
  ASSERT(addResult.isNewEntry);
  if (!addResult.isNewEntry)
    return;
  m_player-&gt;addVideoTrack(addResult.iterator-&gt;value);

&gt; Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:65
&gt; +            client()-&gt;idChanged(m_label);

  labelChanged(m_label)?

&gt; Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:72
&gt; +            client()-&gt;idChanged(m_language);

  languageChanged(m_language)?

&gt; Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.h:67
&gt; +    int m_trackIndex { -1 };

Is it too late to use Optional&lt;int&gt; here?  Probably, but it&apos;d be a nice clean up in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606230</commentid>
    <comment_count>4</comment_count>
      <attachid>387613</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-13 20:47:34 -0800</bug_when>
    <thetext>Created attachment 387613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606242</commentid>
    <comment_count>5</comment_count>
      <attachid>387605</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-13 21:25:29 -0800</bug_when>
    <thetext>Comment on attachment 387605
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:423
&gt;&gt; +    m_player-&gt;addVideoTrack(m_videoTracks.add(identifier, WTFMove(track)).iterator-&gt;value);
&gt; 
&gt; Nit: This could be made ever so slightly more efficient by doing something like:
&gt; 
&gt;   auto addResult = m_videoTracks.ensure(identifier, [&amp;] { return VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration));  });
&gt;   ASSERT(addResult.isNewEntry);
&gt;   if (!addResult.isNewEntry)
&gt;     return;
&gt;   m_player-&gt;addVideoTrack(addResult.iterator-&gt;value);

Changed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:65
&gt;&gt; +            client()-&gt;idChanged(m_label);
&gt; 
&gt; labelChanged(m_label)?

Oops, changed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:72
&gt;&gt; +            client()-&gt;idChanged(m_language);
&gt; 
&gt; languageChanged(m_language)?

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606288</commentid>
    <comment_count>6</comment_count>
      <attachid>387613</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-14 00:16:05 -0800</bug_when>
    <thetext>Comment on attachment 387613
Patch

Clearing flags on attachment: 387613

Committed r254499: &lt;https://trac.webkit.org/changeset/254499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606289</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-14 00:16:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387605</attachid>
            <date>2020-01-13 18:34:55 -0800</date>
            <delta_ts>2020-01-13 20:47:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206209-20200113183453.patch</filename>
            <type>text/plain</type>
            <size>45685</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA0OWRhZWNiNjBlMTVj
ZWMxZTJmZGY0YzFlMzExMTgxYWRjOGEwNS4uN2EwN2Q1M2Q5MTJhZjRiNzJjZGFjMzhiZTRiMDhk
NmU2MGZlMTJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTEzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSB2aWRl
byB0cmFja3MgZm9yIG1lZGlhIGZpbGVzIGluIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyMDkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU4NTUzMDI2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdW4tc2tpcHBlZCBleGlzdGluZyB0ZXN0cyB0aGF0
IHBhc3MgYmVjYXVzZSBvZiB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlLmg6CisKIDIwMjAtMDEtMTMgIFN1bm55IEhlICA8c3Vubnlf
aGVAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBjb21wdXRlRmxvYXRWaXNpYmxlUmVjdEluQ29u
dGFpbmVyIHRvIGhhbmRsZSBub24tU1ZHIG9iamVjdCBwYXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDc3ZDA1
YmRmZmQ1ZWZiYTg4YTg5ZjJlYTc0MWUxMmNlZWQ3OTQ0Yy4uY2Y2OGNhMjVhMWQ2MmE3NDg0Yjg0
ODdmNmVjM2RkNzU5NWFjZTY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAyMC0wMS0x
MyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBv
c2UgdmlkZW8gdHJhY2tzIGZvciBtZWRpYSBmaWxlcyBpbiB0aGUgR1BVUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MjA5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81ODU1MzAyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1
cmF0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OnZpZGVvVHJhY2tTZXRTZWxlY3RlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1Ry
YWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6dmlkZW9UcmFja1NldFNlbGVjdGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OndpbGxSZW1vdmUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OnNlbGVjdGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpsYWJlbENoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdlZCk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaDogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
Lmg6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb246OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmNs
ZWFyQ2FjaGVzRm9yT3JpZ2luRnJvbURpcmVjdG9yaWVzKToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZVZpZGVvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW92ZVJlbW90ZVZpZGVvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjphZGRSZW1v
dGVWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpyZW1vdmVSZW1vdGVWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb1Ry
YWNrUHJveHkuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9U
cmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpzZWxlY3RlZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmlkQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVZpZGVvVHJhY2tQcm94eTo6bGFiZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlVmlkZW9UcmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGUuY3BwLgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Vmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZTo6c2V0U2VsZWN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUpOgorCiAyMDIwLTAxLTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBhdWRpbyB0
cmFja3MgZm9yIG1lZGlhIGZpbGVzIGluIHRoZSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAppbmRleCAxMTBk
NzQwZjllNmZlMjQ2Mjk1ZDY4Y2Q2NmE5ODgzM2ZmNDY5NjM4Li5jMWMxMTg0YjMwOWFmZjRhZjE2
ODZiZTYwY2FhZWE5MzVhOTZmZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTY4LDQgKzY4LDIxIEBAIHByaXZh
dGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpWaWRl
b1RyYWNrUHJpdmF0ZTo6S2luZCwKKyAgICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OktpbmQ6OkFsdGVybmF0aXZlLAorICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6
S2luZDo6Q2FwdGlvbnMsCisgICAgICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5k
OjpNYWluLAorICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6U2lnbiwK
KyAgICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6OlN1YnRpdGxlcywKKyAg
ICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6OkNvbW1lbnRhcnksCisgICAg
ICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lCisgICAgPjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKaW5kZXggNDc4ZDEz
NGMyNmJjMmUyOGZjOTVlMTMwZjE3NjhiNmZmYzAwODU4MS4uYmY4ZDQ5Mjc2ODcyYWY0MzY4MDg4
Y2E4ZmI1MTkyYzI5MzIyMTlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpj
b25maWd1cmF0aW9uKCkKICAgICBjb25maWd1cmF0aW9uLT50cmFja0luZGV4ID0gbV90cmFja1By
aXZhdGUtPnRyYWNrSW5kZXgoKTsKICAgICBjb25maWd1cmF0aW9uLT5zdGFydFRpbWVWYXJpYW5j
ZSA9IG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwogICAgIGNvbmZpZ3VyYXRp
b24tPmVuYWJsZWQgPSBtX3RyYWNrUHJpdmF0ZS0+ZW5hYmxlZCgpOwotICAgIGNvbmZpZ3VyYXRp
b24tPmtpbmQgPSBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpOworICAgIGNvbmZpZ3VyYXRpb24tPmF1
ZGlvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5kKCk7CiAKICAgICByZXR1cm4gY29uZmlndXJh
dGlvbi5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBmZTQ2
MzZhNzRhODJiNjY4ZTkwNjYyZDRmYWU4OTAzZmVkOGY0YTQuLjE3MjI0NDVkZThmODExZDAxY2M2
M2EwYTQ0MzMxMmU4NzFkMTU5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApA
QCAtMzM1LDYgKzMzNSwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojph
dWRpb1RyYWNrU2V0RW5hYmxlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdAogICAgICAgICBwbGF5
ZXItPmF1ZGlvVHJhY2tTZXRFbmFibGVkKHRyYWNrSUQsIGVuYWJsZWQpOwogfQogCit2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojp2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJRCwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBib29sIHNlbGVjdGVkKQoreworICAgIGlmIChhdXRvIHBsYXll
ciA9IG1fcHJveGllcy5nZXQocGxheWVySUQpKQorICAgICAgICBwbGF5ZXItPnZpZGVvVHJhY2tT
ZXRTZWxlY3RlZCh0cmFja0lELCBzZWxlY3RlZCk7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIGNvbnN0IExvZ2dlciYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ2dl
cigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGJlMmM3NGRkNDNh
NmM1Mzg3NTM0MzllNGQ1OWI5MzgyZTkxNjc0ZWEuLmM1YzE0MDk5ZTkxODUyNDVlYzM4Y2RmNmFi
MDQ2MTUyNzUyMDNmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC0xMTMsNiAr
MTEzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFJhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgZG91YmxlKTsKIAogICAgIHZvaWQgYXVkaW9UcmFja1NldEVuYWJsZWQo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgYm9vbCk7CisgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
Ym9vbCk7CiAKICAgICBIYXNoTWFwPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllclByb3h5Pj4gbV9wcm94aWVzOwogICAg
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5ZjI1
ZDFiODI2ZDM2Mzk1ZmY0YTg1OTQ0ZWRjNGViN2ZlMWRlMmRiLi4xMTcwNjMwYmIzNTk5ZmY5YmIx
NmQ5YTE1NDg4NDlmMTdjYjE0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFNldFJhdGUoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKIAogICAg
IEF1ZGlvVHJhY2tTZXRFbmFibGVkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBwbGF5ZXJJRCwgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIGJvb2wgZW5hYmxlZCkKKyAgICBWaWRlb1RyYWNrU2V0U2VsZWN0ZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklELCBXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBmY2Y4NDEwOTE1OGMzNjlkODU4YzgyYjMwOTJhMjRh
NzBlYTExOGRhLi4xYzI0MTkzMjkyMjBhNGNjMTczMTJiYzNkMDRhOWU2ZjE5OWFhN2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvVHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgpAQCAtMzcs
NiArMzgsNyBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBA
IC0zODcsNiArMzg5LDI5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6YXVkaW9UcmFj
a1NldEVuYWJsZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJEaWRBZGRWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJiB0cmFjaykKK3sK
KyAgICBtX3ZpZGVvVHJhY2tzLnNldCgmdHJhY2ssIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y3Jl
YXRlKCp0aGlzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgdHJhY2spKTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNv
bnRhaW5zKCZ0cmFjaykpOworICAgIG1fdmlkZW9UcmFja3MucmVtb3ZlKCZ0cmFjayk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9UcmFja1NldFNlbGVjdGVkKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBzZWxlY3RlZCkKK3sKKyAgICBm
b3IgKGF1dG8mIHRyYWNrIDogbV92aWRlb1RyYWNrcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAo
dHJhY2stPmlkZW50aWZpZXIoKSA9PSB0cmFja0lEKSB7CisgICAgICAgICAgICB0cmFjay0+c2V0
U2VsZWN0ZWQoc2VsZWN0ZWQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIC8vIEZJWE1FOiBVbmltcGxlbWVu
dGVkCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVzb3VyY2VOb3RT
dXBwb3J0ZWQoKQogewpAQCAtNTIwLDIxICs1NDUsMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRl
JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDA5YjNjNzhhYzBiNGUwZjQ0
ODA0NGFjOTJiYjUxN2U2MTEzNjU0N2QuLjAwY2Y3ZTgzOTQ0NmM5MzFlZGZjNTBiOWQxZjY0Zjkz
N2I0ODFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNDksNyArNDksOSBAQCBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OworY2xhc3MgUmVt
b3RlVmlkZW9UcmFja1Byb3h5OwogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5IGZpbmFs
CiAgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4KQEAg
LTk1LDYgKzk3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmF0ZShkb3VibGUpOwogCiAgICAg
dm9pZCBhdWRpb1RyYWNrU2V0RW5hYmxlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBi
b29sKTsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBib29sKTsKIAogICAgIFJlZjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2U+IHJlcXVlc3RSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyk7CiAgICAgdm9pZCByZW1v
dmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CkBAIC0xMTYsNiArMTE5
LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRp
ZFJlbW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAg
ICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJp
dmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAKICAgICAvLyBOb3QgaW1wbGVtZW50
ZWQKICAgICB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKSBmaW5hbDsKQEAg
LTE1OCw5ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFQbGF5ZXJN
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1lZGlhUGxheWVy
RGlkQWRkVGV4dFRyYWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsK
LSAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2so
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQ
bGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAKICAgICB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAKQEAgLTE5NSw2ICsxOTgsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICBIYXNoTWFwPEF1ZGlvVHJhY2tQcml2YXRlKiwgUmVmPFJlbW90ZUF1
ZGlvVHJhY2tQcm94eT4+IG1fYXVkaW9UcmFja3M7CisgICAgSGFzaE1hcDxWaWRlb1RyYWNrUHJp
dmF0ZSosIFJlZjxSZW1vdGVWaWRlb1RyYWNrUHJveHk+PiBtX3ZpZGVvVHJhY2tzOwogICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKICAgICBSZWZQdHI8U2FuZGJv
eEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjBi
YTM0YWM1NGE2ZTg4Y2U1MWJiMTA2YmI3ZTUwNTA1MWZmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApA
QCAtMCwwICsxLDk1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6
CisqCisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
bW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5KFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQorICAgIDogbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9pZGVudGlmaWVyKGlkKQorICAg
ICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV90
cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQoreworICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGll
bnQodGhpcyk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpBZGRSZW1vdGVWaWRlb1RyYWNrKG1fcGxheWVyLmlkZW5k
aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCAwKTsKK30KKworVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1
cmF0aW9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbjsKKworICAgIGNvbmZpZ3VyYXRpb24tPmlkID0g
bV90cmFja1ByaXZhdGUtPmlkKCk7CisgICAgY29uZmlndXJhdGlvbi0+bGFiZWwgPSBtX3RyYWNr
UHJpdmF0ZS0+bGFiZWwoKTsKKyAgICBjb25maWd1cmF0aW9uLT5sYW5ndWFnZSA9IG1fdHJhY2tQ
cml2YXRlLT5sYW5ndWFnZSgpOworICAgIGNvbmZpZ3VyYXRpb24tPnRyYWNrSW5kZXggPSBtX3Ry
YWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpOworICAgIGNvbmZpZ3VyYXRpb24tPnN0YXJ0VGltZVZh
cmlhbmNlID0gbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCk7CisgICAgY29uZmln
dXJhdGlvbi0+c2VsZWN0ZWQgPSBtX3RyYWNrUHJpdmF0ZS0+c2VsZWN0ZWQoKTsKKyAgICBjb25m
aWd1cmF0aW9uLT52aWRlb0tpbmQgPSBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpOworCisgICAgcmV0
dXJuIGNvbmZpZ3VyYXRpb24uZ2V0KCk7Cit9CisKK3ZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCgpCit7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZW1vdGVWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbkNoYW5nZWQobV9wbGF5ZXIuaWRlbmRpZmllcigpLCBtX2lkZW50aWZpZXIs
IGNvbmZpZ3VyYXRpb24oKSksIDApOworfQorCit2b2lkIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6
d2lsbFJlbW92ZSgpCit7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKG1fcGxh
eWVyLmlkZW5kaWZpZXIoKSwgbV9pZGVudGlmaWVyKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlVmlk
ZW9UcmFja1Byb3h5OjpzZWxlY3RlZENoYW5nZWQoYm9vbCkKK3sKKyAgICBjb25maWd1cmF0aW9u
Q2hhbmdlZCgpOworfQorCit2b2lkIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKGNv
bnN0IEF0b21TdHJpbmcmKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpsYWJlbENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYp
Cit7CisgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKK30KKwordm9pZCBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKK3sKKyAgICBjb25m
aWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzE3ZTBkZmZm
MTM4N2JlMzhjNzQ3M2YyYWIyYWVlYmFhYzZiZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCkBAIC0wLDAg
KzEsNzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UcmFja0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZGVvVHJhY2tQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKKworY2xhc3MgUmVtb3RlVmlkZW9UcmFja1By
b3h5IGZpbmFsCisgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VHJhY2tQcml2YXRl
QmFzZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KKyAgICAsIHByaXZhdGUgV2ViQ29y
ZTo6VmlkZW9UcmFja1ByaXZhdGVDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVt
b3RlVmlkZW9UcmFja1Byb3h5PiBjcmVhdGUoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcGxheWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24sIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVWaWRlb1RyYWNrUHJveHkocGxheWVyLCBp
ZCwgV1RGTW92ZShjb25uZWN0aW9uKSwgdHJhY2tQcml2YXRlKSk7CisgICAgfQorCisgICAgVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9OworCisgICAgdm9pZCBzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKSB7IG1f
dHJhY2tQcml2YXRlLT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7IH0KKworcHJpdmF0ZToKKyAgICBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFZpZGVvVHJhY2tQcml2
YXRlJik7CisgICAgflJlbW90ZVZpZGVvVHJhY2tQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8v
IFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CisgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkg
ZmluYWw7CisKKyAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CisgICAgdm9pZCBpZENoYW5n
ZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0
IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CisKKyAgICBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CisgICAgdm9pZCBj
b25maWd1cmF0aW9uQ2hhbmdlZCgpOworCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgbV9w
bGF5ZXI7CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbjsKKyAgICBSZWY8
VmlkZW9UcmFja1ByaXZhdGU+IG1fdHJhY2tQcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaAppbmRleCA1ZjI1YzVkZmU2MGM5ZjA3N2I5MWY4ZTYxY2Q1NTE4NDYxYWRi
MGU3Li5jNWQ0Zjk1MGRlZDFlNTU4MGEyZGJlNjBmMmM0ZjY1ZmQxNzY1MzNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlh
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM3LDggKzM5LDEyIEBAIHN0cnVjdCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdl
OwogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUo
KSB9OwogICAgIGludCB0cmFja0luZGV4OworCiAgICAgYm9vbCBlbmFibGVkOwotICAgIFdlYkNv
cmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kIGtpbmQgeyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJp
dmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5k
IGF1ZGlvS2luZCB7IFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07CisK
KyAgICBib29sIHNlbGVjdGVkOworICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5k
IHZpZGVvS2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07CiAK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CkBAIC00OSw3ICs1NSw5IEBAIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGFydFRpbWVWYXJpYW5jZTsKICAg
ICAgICAgZW5jb2RlciA8PCB0cmFja0luZGV4OwogICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7
Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShraW5kKTsKKyAgICAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKGF1ZGlvS2luZCk7CisgICAgICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7CisgICAgICAg
IGVuY29kZXIuZW5jb2RlRW51bSh2aWRlb0tpbmQpOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxj
bGFzcyBEZWNvZGVyPgpAQCAtODUsOSArOTMsMTkgQEAgc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24gewogICAgICAgICBpZiAoIWVuYWJsZWQpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpLaW5kPiBraW5kOwotICAgICAgICBkZWNvZGVyID4+IGtpbmQ7Ci0gICAgICAgIGlm
ICgha2luZCkKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6Oktp
bmQ+IGF1ZGlvS2luZDsKKyAgICAgICAgZGVjb2RlciA+PiBhdWRpb0tpbmQ7CisgICAgICAgIGlm
ICghYXVkaW9LaW5kKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxib29sPiBzZWxlY3RlZDsKKyAgICAgICAgZGVjb2RlciA+PiBzZWxlY3RlZDsK
KyAgICAgICAgaWYgKCFzZWxlY3RlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ+IHZp
ZGVvS2luZDsKKyAgICAgICAgZGVjb2RlciA+PiB2aWRlb0tpbmQ7CisgICAgICAgIGlmICghdmlk
ZW9LaW5kKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgICAgICByZXR1
cm4ge3sKQEAgLTk3LDcgKzExNSw5IEBAIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIHsKICAgICAgICAgICAgIFdURk1vdmUoKnN0YXJ0VGltZVZhcmlhbmNlKSwKICAgICAg
ICAgICAgICp0cmFja0luZGV4LAogICAgICAgICAgICAgKmVuYWJsZWQsCi0gICAgICAgICAgICAq
a2luZCwKKyAgICAgICAgICAgICphdWRpb0tpbmQsCisgICAgICAgICAgICAqc2VsZWN0ZWQsCisg
ICAgICAgICAgICAqdmlkZW9LaW5kLAogICAgICAgICB9fTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggNzYxN2MyZTE3ZWRkNDc4MDRmNWRmNjg4MzFjY2MzMmQ4Zjg2YzM0Yi4uODU4MWM5M2Yy
ODE4MWJmZDgzMWZmODliZWNkMjdiZGQ4MzVhN2RhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMiw2ICsz
Miw3IEBAIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94
eS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC01MTYsNiArNTE3LDcg
QEAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkK
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKK1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwNzkyM2Y4NzE0NzM3ZTljMjg5N2E1NWQwMmM4Y2Q0ZGJhMWVkNmNlLi4w
NDkxYjY1ZGZiMzc0NWRmMzlkNzc2NzVkOTY1ZWI3Y2ZiOTczNzIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNTcsNiArMjA1Nywx
MCBAQAogCQkwNzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAv
KiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQkM1N0Yy
M0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3
QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcxQkM1
ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBQzIzOUFFMzg1MDBB
NTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxODksNiArNTE5Myw4IEBA
CiAJCQkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUu
aCAqLywKIAkJCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmNwcCAqLywKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5LmggKi8sCisJCQkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKKwkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBE
N0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVk
aWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTIxMiw2ICs1MjE4LDggQEAKIAkJ
CQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
Y3BwICovLAogCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oICovLAogCQkJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQkwNzFCQzU4NDIzQ0MyQzA5
MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCAqLywKKwkJCQkwNzFCQzU4NTIz
Q0MyQzA5MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcxQkM1
N0IyM0NBNTMyNDAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAq
LywKIAkJCQkwNzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllci5oICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggZWNm
N2ZkZjliYmVhMmNlZDBmMDQ2MTlmNmMzNjg2NWY5ZTAzNDc1OS4uMTlkZjFhNjYzZWIxODQ2ODVk
NDA2YjFjYjUzNDE2OWU3ZjJhMDRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmln
dXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1fdHJhY2tJbmRl
eCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0g
Y29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25maWd1cmF0
aW9uLmtpbmQ7CisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5hdWRpb0tpbmQ7CiAgICAgc2V0
RW5hYmxlZChjb25maWd1cmF0aW9uLmVuYWJsZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKaW5kZXggYjdiZjRhNmUzMzM4NTAwN2JkODliOWU1YzdiNjVjNmUwODlhNDhlZi4u
OGJlZjJjYmEyZmJlYzZjZjIxNjAyZDYzYjJmZTIyY2QzMmEzNjkxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KQEAgLTQxMiw2ICs0
MTMsMzQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGUKICAgICAgICAgdHJhY2stPnVwZGF0ZUNv
bmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgQVNTRVJUKCFtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKKyAgICBpZiAobV92aWRlb1RyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byB0cmFjayA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
OjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAg
IG1fcGxheWVyLT5hZGRWaWRlb1RyYWNrKG1fdmlkZW9UcmFja3MuYWRkKGlkZW50aWZpZXIsIFdU
Rk1vdmUodHJhY2spKS5pdGVyYXRvci0+dmFsdWUpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQoreworICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKGlkKSk7CisK
KyAgICBpZiAoYXV0byogdHJhY2sgPSBtX3ZpZGVvVHJhY2tzLmdldChpZCkpIHsKKyAgICAgICAg
bV9wbGF5ZXItPnJlbW92ZVZpZGVvVHJhY2soKnRyYWNrKTsKKyAgICAgICAgbV92aWRlb1RyYWNr
cy5yZW1vdmUoaWQpOworICAgIH0KK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKK3sKKyAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucyhpZCkpOworCisgICAg
aWYgKGNvbnN0IGF1dG8mIHRyYWNrID0gbV92aWRlb1RyYWNrcy5nZXQoaWQpKQorICAgICAgICB0
cmFjay0+dXBkYXRlQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKwog
Ly8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAppbmRleCA4YzRhMDg2MWE2YTA2NTVlNjllOWMyYTYxMDM5NmM2
NTU3OTkyOWUzLi42ZWFlMjQ5NDg4NDU0OWM0NmU4MjIyODc3M2Y0ZjZhYjdhZmY5NjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTsKK2NsYXNzIFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAK
IGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBmaW5hbApAQCAtODIsNiArODMsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYpOwogCisgICAgdm9pZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7Cisg
ICAgdm9pZCByZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CisKICAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogCkBAIC0zMjEsNiArMzI2LDcgQEAgcHJpdmF0
ZToKIAogICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBtX21lZGlhUmVzb3VyY2VzOwogICAgIEhh
c2hNYXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlPj4gbV9hdWRpb1RyYWNrczsKKyAgICBIYXNoTWFwPFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZT4+IG1fdmlkZW9UcmFja3M7CiAK
ICAgICBkb3VibGUgbV92b2x1bWUgeyAxIH07CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA3ZDVkMzc3M2UwZjRiYjUzMmU2Y2M2M2Mx
NGQ5MDI5Y2VlZmFmNWE5Li5iN2MwNGYxMzc5Zjg0MWIxYzhjMzVjZDZiNjViN2Q3ZmUwMGVhNTMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0zMjEsNiArMzIxLDI0IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoTWVkaWFQbGF5ZXJQCiAgICAgICAgIHBsYXllci0+cmVtb3RlQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKHRyYWNrSUQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQog
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6YWRkUmVtb3RlVmlkZW9UcmFjayhNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklELCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIHRyYWNrSUQsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQoreworICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQocGxh
eWVySUQpKQorICAgICAgICBwbGF5ZXItPmFkZFJlbW90ZVZpZGVvVHJhY2sodHJhY2tJRCwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpyZW1vdmVSZW1vdGVWaWRlb1RyYWNrKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgcGxheWVySUQsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKK3sKKyAg
ICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KHBsYXllcklEKSkKKyAgICAgICAgcGxh
eWVyLT5yZW1vdmVSZW1vdGVWaWRlb1RyYWNrKHRyYWNrSUQpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCit7CisgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChw
bGF5ZXJJRCkpCisgICAgICAgIHBsYXllci0+cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25D
aGFuZ2VkKHRyYWNrSUQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworfQorCiB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVxdWVzdFJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY29uc3QgYXV0byYg
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRl
eCBhYjk0ZGY3ODFlNzJkMmVhNzk0OGIxNGNkMjI2ODJiZDIzYjA4YmEyLi5mNDNmOWRjMzgwODY5
NWFlYWI2ZGVhYWU1M2E3ZjQ3ZDlkMzkwMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgK
QEAgLTg5LDEwICs4OSwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSYmKTsKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6ZSk7CisK
ICAgICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
cik7CiAgICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAorICAgIHZvaWQgYWRkUmVt
b3RlVmlkZW9UcmFjayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OworICAgIHZvaWQgcmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJl
bW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uJiYpOworCiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDAwODRhZmMzNWQ0ZjdkZDYyNDEwZTFmMmQ0
Njc3MWFlM2UzZDUwODEuLjMyZWE3ZDA5N2EwMmZiNGNmYzk2MTVmMmZiZTI5NGJlZmM4NjIwN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00MSw2
ICs0MSwxMCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291
bnRlZCB7CiAgICAgUmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQsIFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lEKQogICAgIFJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQs
IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKKyAg
ICBBZGRSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBwbGF5ZXJJRCwgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKKyAgICBSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJRCwgV2ViS2l0OjpUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCisgICAgUmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5
ZXJJRCwgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
KwogICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+ICgpIEFz
eW5jCiAgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNjFlODFiNGQzNmE4
OGFiOTAxODdmYmEzMWUxMDk4OGU1MTU3MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAt
MCwwICsxLDgzIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9pZGVuZGlm
aWVyKGlkZW5kaWZpZXIpCit7CisgICAgdXBkYXRlQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKK30KKwordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0U2VsZWN0
ZWQoYm9vbCBzZWxlY3RlZCkKK3sKKyAgICBpZiAoc2VsZWN0ZWQgIT0gdGhpcy0+c2VsZWN0ZWQo
KSkKKyAgICAgICAgbV9wbGF5ZXIuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpWaWRlb1RyYWNrU2V0U2VsZWN0ZWQobV9wbGF5ZXIuaXRl
bnRpZmllcigpLCBtX2lkZW5kaWZpZXIsIHNlbGVjdGVkKSwgMCk7CisKKyAgICBWaWRlb1RyYWNr
UHJpdmF0ZTo6c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOworfQorCit2b2lkIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGlmIChjb25maWd1cmF0aW9uLmlkICE9IG1f
aWQpIHsKKyAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0eSgpOworICAgICAgICBt
X2lkID0gY29uZmlndXJhdGlvbi5pZDsKKyAgICAgICAgaWYgKGNoYW5nZWQgJiYgY2xpZW50KCkp
CisgICAgICAgICAgICBjbGllbnQoKS0+aWRDaGFuZ2VkKG1faWQpOworICAgIH0KKworICAgIGlm
IChjb25maWd1cmF0aW9uLmxhYmVsICE9IG1fbGFiZWwpIHsKKyAgICAgICAgYXV0byBjaGFuZ2Vk
ID0gIW1fbGFiZWwuaXNFbXB0eSgpOworICAgICAgICBtX2xhYmVsID0gY29uZmlndXJhdGlvbi5s
YWJlbDsKKyAgICAgICAgaWYgKGNoYW5nZWQgJiYgY2xpZW50KCkpCisgICAgICAgICAgICBjbGll
bnQoKS0+aWRDaGFuZ2VkKG1fbGFiZWwpOworICAgIH0KKworICAgIGlmIChjb25maWd1cmF0aW9u
Lmxhbmd1YWdlICE9IG1fbGFuZ3VhZ2UpIHsKKyAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1fbGFu
Z3VhZ2UuaXNFbXB0eSgpOworICAgICAgICBtX2xhbmd1YWdlID0gY29uZmlndXJhdGlvbi5sYW5n
dWFnZTsKKyAgICAgICAgaWYgKGNoYW5nZWQgJiYgY2xpZW50KCkpCisgICAgICAgICAgICBjbGll
bnQoKS0+aWRDaGFuZ2VkKG1fbGFuZ3VhZ2UpOworICAgIH0KKworICAgIG1fdHJhY2tJbmRleCA9
IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKKyAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0gY29u
ZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKKyAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9u
LnZpZGVvS2luZDsKKyAgICBzZXRTZWxlY3RlZChjb25maWd1cmF0aW9uLnNlbGVjdGVkKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Zp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEyOThhNjVlZGQzMzI3YWJlNTk1
NTUxMjI0MzZlZTVhYmRiNDNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMCwwICsxLDc0
IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqCisqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oIgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CitzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKKworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUgOiBwdWJsaWMg
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlKQorcHVibGljOgorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKHBsYXllciwgaWRlbmRpZmllciwg
V1RGTW92ZShjb25maWd1cmF0aW9uKSkpOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlQ29uZmln
dXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworCisgICAgdXNpbmcg
VmlkZW9UcmFja0tpbmQgPSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDsKKyAgICBW
aWRlb1RyYWNrS2luZCBraW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CisgICAg
QXRvbVN0cmluZyBpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWQ7IH0KKyAgICBBdG9tU3Ry
aW5nIGxhYmVsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIEF0b21TdHJp
bmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xhbmd1YWdlOyB9CisgICAgaW50
IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RyYWNrSW5kZXg7IH0KKworcHJv
dGVjdGVkOgorICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSYsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJik7CisKKyAgICB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIGZpbmFsOworCisg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtX3BsYXllcjsKKyAgICBWaWRlb1RyYWNrS2lu
ZCBtX2tpbmQgeyBOb25lIH07CisgICAgQXRvbVN0cmluZyBtX2lkOworICAgIEF0b21TdHJpbmcg
bV9sYWJlbDsKKyAgICBBdG9tU3RyaW5nIG1fbGFuZ3VhZ2U7CisgICAgaW50IG1fdHJhY2tJbmRl
eCB7IC0xIH07CisgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6
Onplcm9UaW1lKCkgfTsKKyAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRlbmRp
ZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDdj
ZTM1ZTcyNDBlM2U1NzQ1NTg3MjdmMzNiNzg2M2QwZTY5NGEyLi40ZGNhZDM2MTM1NGNjZWEwNTli
ZThmOWE4NWI3YWMyYzE4MDY0MTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEtMTMg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3Nl
IHZpZGVvIHRyYWNrcyBmb3IgbWVkaWEgZmlsZXMgaW4gdGhlIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjIwOQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTg1NTMwMjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIw
LTAxLTEzICBTdW5ueSBIZSAgPHN1bm55X2hlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggY29t
cHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5lciB0byBoYW5kbGUgbm9uLVNWRyBvYmplY3Qg
cGFyZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MjBl
NmUzNjFjMmVhMWU0YjkwOGYwZTA5MDU3MDFjOWJhYTllZmExLi5kZTFhZmI0MWI2MDYxMDY3ZGNh
ZTk4MmY3NTBjYzY4YzI0MWQxZjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIyMCw2ICsyMjAsMTAgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdmlzaWJs
ZS1hdWRpby1vbmx5Lmh0bWwgWyBQYXNzIF0KIG1lZGlhL3ZpZGVvLXBsYXktYXVkaW8tcmVxdWly
ZS11c2VyLWdlc3R1cmUuaHRtbCBbIFBhc3MgXQogbWVkaWEvdHJhY2svYXVkaW8tdHJhY2suaHRt
bCBbIFBhc3MgXQogbWVkaWEvYXVkaW8tdHJhY2stYWRkLXJlbW92ZS5odG1sIFsgUGFzcyBdCitt
ZWRpYS90cmFjay92aWRlby10cmFjay1hZGQtcmVtb3ZlLmh0bWwgWyBQYXNzIF0KK21lZGlhL3Ry
YWNrL3ZpZGVvLXRyYWNrLWFsdGVybmF0ZS1ncm91cHMuaHRtbCBbIFBhc3MgXQorbWVkaWEvdHJh
Y2svdmlkZW8tdHJhY2stYWRkaXRpb24tYW5kLWZyYW1lLXJlbW92YWwuaHRtbCBbIFBhc3MgXQor
bWVkaWEvdHJhY2svdmlkZW8tdHJhY2suaHRtbCBbIFBhc3MgXQogCiBhY2Nlc3NpYmlsaXR5L21l
ZGlhLWVsZW1lbnQuaHRtbCBbIFNraXAgXQogZmFzdC9ibG9jay9mbG9hdC9saXN0LW1hcmtlci1p
cy1mbG9hdC1jcmFzaC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387613</attachid>
            <date>2020-01-13 20:47:34 -0800</date>
            <delta_ts>2020-01-14 00:16:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206209-20200113204733.patch</filename>
            <type>text/plain</type>
            <size>47091</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA0OWRhZWNiNjBlMTVj
ZWMxZTJmZGY0YzFlMzExMTgxYWRjOGEwNS4uNTA2M2Y2MTBhZjNmMjI5NzM3ODRmNzAxOTJhY2Fm
NWNmYzUxMDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTEzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSB2aWRl
byB0cmFja3MgZm9yIG1lZGlhIGZpbGVzIGluIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyMDkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU4NTUzMDI2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHVuLXNraXBwZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBwYXNz
IGJlY2F1c2Ugb2YgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorCiAyMDIwLTAxLTEzICBTdW5ueSBIZSAgPHN1bm55X2hlQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggY29tcHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5l
ciB0byBoYW5kbGUgbm9uLVNWRyBvYmplY3QgcGFyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3N2QwNWJkZmZk
NWVmYmE4OGE4OWYyZWE3NDFlMTJjZWVkNzk0NGMuLjM1ODUxYThlNDEwYTA3YTVkMThlOTA5YWRj
NzdkZWM4MTA2NDhlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjAtMDEtMTMgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIHZp
ZGVvIHRyYWNrcyBmb3IgbWVkaWEgZmlsZXMgaW4gdGhlIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjIwOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTg1NTMwMjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6dmlk
ZW9UcmFja1NldFNlbGVjdGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2spOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92
ZVZpZGVvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2
aWRlb1RyYWNrU2V0U2VsZWN0ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZp
ZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6c2VsZWN0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjppZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmxhYmVsQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6bGFuZ3VhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVj
b2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6Y2xlYXJDYWNoZXNG
b3JPcmlnaW5Gcm9tRGlyZWN0b3JpZXMpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9U
cmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3Zl
UmVtb3RlVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmFkZFJlbW90ZVZpZGVvVHJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW92ZVJl
bW90ZVZpZGVvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6
OlJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJh
Y2tQcm94eTo6Y29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJh
Y2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVW
aWRlb1RyYWNrUHJveHk6OndpbGxSZW1vdmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRl
b1RyYWNrUHJveHk6OnNlbGVjdGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZp
ZGVvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9U
cmFja1Byb3h5OjpsYWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAu
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpz
ZXRTZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1
cGRhdGVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6CisKIDIwMjAtMDEtMTMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIGF1ZGlvIHRyYWNrcyBmb3Ig
bWVkaWEgZmlsZXMgaW4gdGhlIEdQVVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDExMGQ3NDBmOWU2ZmUy
NDYyOTVkNjhjZDY2YTk4ODMzZmY0Njk2MzguLmMxYzExODRiMzA5YWZmNGFmMTY4NmJlNjBjYWFl
YTkzNWE5NmZmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtNjgsNCArNjgsMjEgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZD4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2
YXRlOjpLaW5kLAorICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6QWx0
ZXJuYXRpdmUsCisgICAgICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpDYXB0
aW9ucywKKyAgICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok1haW4sCisg
ICAgICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpTaWduLAorICAgICAgICBX
ZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6U3VidGl0bGVzLAorICAgICAgICBXZWJD
b3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Q29tbWVudGFyeSwKKyAgICAgICAgV2ViQ29y
ZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCA0NzhkMTM0YzI2YmMyZTI4
ZmM5NWUxMzBmMTc2OGI2ZmZjMDA4NTgxLi5iZjhkNDkyNzY4NzJhZjQzNjgwODhjYThmYjUxOTJj
MjkzMjIxOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNTUsNyArNTUsNyBAQCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRp
b24oKQogICAgIGNvbmZpZ3VyYXRpb24tPnRyYWNrSW5kZXggPSBtX3RyYWNrUHJpdmF0ZS0+dHJh
Y2tJbmRleCgpOwogICAgIGNvbmZpZ3VyYXRpb24tPnN0YXJ0VGltZVZhcmlhbmNlID0gbV90cmFj
a1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCk7CiAgICAgY29uZmlndXJhdGlvbi0+ZW5hYmxl
ZCA9IG1fdHJhY2tQcml2YXRlLT5lbmFibGVkKCk7Ci0gICAgY29uZmlndXJhdGlvbi0+a2luZCA9
IG1fdHJhY2tQcml2YXRlLT5raW5kKCk7CisgICAgY29uZmlndXJhdGlvbi0+YXVkaW9LaW5kID0g
bV90cmFja1ByaXZhdGUtPmtpbmQoKTsKIAogICAgIHJldHVybiBjb25maWd1cmF0aW9uLmdldCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggMGZlNDYzNmE3NGE4MmI2
NjhlOTA2NjJkNGZhZTg5MDNmZWQ4ZjRhNC4uMTcyMjQ0NWRlOGY4MTFkMDFjYzYzYTBhNDQzMzEy
ZTg3MWQxNTk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMzUsNiAr
MzM1LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmF1ZGlvVHJhY2tT
ZXRFbmFibGVkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90CiAgICAgICAgIHBsYXllci0+YXVkaW9U
cmFja1NldEVuYWJsZWQodHJhY2tJRCwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OnZpZGVvVHJhY2tTZXRTZWxlY3RlZChNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklELCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IHRyYWNrSUQsIGJvb2wgc2VsZWN0ZWQpCit7CisgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wcm94
aWVzLmdldChwbGF5ZXJJRCkpCisgICAgICAgIHBsYXllci0+dmlkZW9UcmFja1NldFNlbGVjdGVk
KHRyYWNrSUQsIHNlbGVjdGVkKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29u
c3QgTG9nZ2VyJiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bG9nZ2VyKCkgY29uc3QK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggYmUyYzc0ZGQ0M2E2YzUzODc1MzQz
OWU0ZDU5YjkzODJlOTE2NzRlYS4uYzVjMTQwOTllOTE4NTI0NWVjMzhjZGY2YWIwNDYxNTI3NTIw
M2ZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTExMyw2ICsxMTMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0UmF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBkb3VibGUpOwogCiAgICAgdm9pZCBhdWRpb1RyYWNrU2V0RW5hYmxlZChNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBi
b29sKTsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKIAog
ICAgIEhhc2hNYXA8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+PiBtX3Byb3hpZXM7CiAgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDlmMjVkMWI4MjZkMzYz
OTVmZjRhODU5NDRlZGM0ZWI3ZmUxZGUyZGIuLjExNzA2MzBiYjM1OTlmZjliYjE2ZDlhMTU0ODg0
OWYxN2NiMTRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTY2LDYgKzY2LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0UmF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSByYXRlKQogCiAgICAgQXVkaW9UcmFj
a1NldEVuYWJsZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklELCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9v
bCBlbmFibGVkKQorICAgIFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQsIFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCmluZGV4IGZjZjg0MTA5MTU4YzM2OWQ4NThjODJiMzA5MmEyNGE3MGVhMTE4ZGEu
LjFjMjQxOTMyOTIyMGE0Y2MxNzMxMmJjM2QwNGE5ZTZmMTk5YWE3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNs
dWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCkBAIC0zNyw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KQEAgLTM4Nyw2ICsz
ODksMjkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjphdWRpb1RyYWNrU2V0RW5hYmxl
ZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHQKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZFZp
ZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fdmlk
ZW9UcmFja3Muc2V0KCZ0cmFjaywgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpjcmVhdGUoKnRoaXMs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY29weVJlZigpLCB0cmFjaykpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2spCit7CisgICAgQVNTRVJUKG1fdmlkZW9UcmFja3MuY29udGFpbnMoJnRy
YWNrKSk7CisgICAgbV92aWRlb1RyYWNrcy5yZW1vdmUoJnRyYWNrKTsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIHNlbGVjdGVkKQoreworICAgIGZvciAoYXV0byYg
dHJhY2sgOiBtX3ZpZGVvVHJhY2tzLnZhbHVlcygpKSB7CisgICAgICAgIGlmICh0cmFjay0+aWRl
bnRpZmllcigpID09IHRyYWNrSUQpIHsKKyAgICAgICAgICAgIHRyYWNrLT5zZXRTZWxlY3RlZChz
ZWxlY3RlZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgp
CiB7CkBAIC01MjAsMjEgKzU0NSwxMSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RGlkUmVtb3ZlVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnRleHRUcmFja1Jl
cHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMDliM2M3OGFjMGI0ZTBmNDQ4MDQ0YWM5MmJi
NTE3ZTYxMTM2NTQ3ZC4uMDBjZjdlODM5NDQ2YzkzMWVkZmM1MGI5ZDFmNjRmOTM3YjQ4MWQxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCkBAIC00OSw3ICs0OSw5IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5Owog
Y2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHkgZmluYWwKICAgICA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllclByb3h5PgpAQCAtOTUsNiArOTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSYXRlKGRvdWJsZSk7CiAKICAgICB2b2lkIGF1ZGlv
VHJhY2tTZXRFbmFibGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOworICAg
IHZvaWQgdmlkZW9UcmFja1NldFNlbGVjdGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IGJvb2wpOwogCiAgICAgUmVmPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVz
dFJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zKTsKICAgICB2b2lkIHJlbW92ZVJlc291cmNl
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTExNiw2ICsxMTksOCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlQXVk
aW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmlu
YWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6Vmlk
ZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKIAogICAgIC8vIE5vdCBpbXBsZW1lbnRlZAogICAgIHZv
aWQgbWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgpIGZpbmFsOwpAQCAtMTU4LDkgKzE2
Myw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVE
aXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0
VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQg
bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikg
ZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJl
bW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKIAogICAg
IHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKIApAQCAtMTk1LDYgKzE5OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogICAgIEhhc2hNYXA8QXVkaW9UcmFja1ByaXZhdGUqLCBSZWY8UmVtb3RlQXVkaW9UcmFja1By
b3h5Pj4gbV9hdWRpb1RyYWNrczsKKyAgICBIYXNoTWFwPFZpZGVvVHJhY2tQcml2YXRlKiwgUmVm
PFJlbW90ZVZpZGVvVHJhY2tQcm94eT4+IG1fdmlkZW9UcmFja3M7CiAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9u
PiBtX3NhbmRib3hFeHRlbnNpb247CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmMGJhMzRhYzU0YTZl
ODhjZTUxYmIxMDZiYjdlNTA1MDUxZmY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlVmlkZW9U
cmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYg
cGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAg
OiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX2lkZW50aWZpZXIoaWQpCisgICAgLCBtX3dlYlBy
b2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX3RyYWNrUHJpdmF0
ZSh0cmFja1ByaXZhdGUpCit7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
KyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9wbGF5ZXIuaWRlbmRpZmllcigpLCBt
X2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIDApOworfQorCitUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uPiBjb25maWd1cmF0aW9uOworCisgICAgY29uZmlndXJhdGlvbi0+aWQgPSBtX3RyYWNrUHJp
dmF0ZS0+aWQoKTsKKyAgICBjb25maWd1cmF0aW9uLT5sYWJlbCA9IG1fdHJhY2tQcml2YXRlLT5s
YWJlbCgpOworICAgIGNvbmZpZ3VyYXRpb24tPmxhbmd1YWdlID0gbV90cmFja1ByaXZhdGUtPmxh
bmd1YWdlKCk7CisgICAgY29uZmlndXJhdGlvbi0+dHJhY2tJbmRleCA9IG1fdHJhY2tQcml2YXRl
LT50cmFja0luZGV4KCk7CisgICAgY29uZmlndXJhdGlvbi0+c3RhcnRUaW1lVmFyaWFuY2UgPSBt
X3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKKyAgICBjb25maWd1cmF0aW9uLT5z
ZWxlY3RlZCA9IG1fdHJhY2tQcml2YXRlLT5zZWxlY3RlZCgpOworICAgIGNvbmZpZ3VyYXRpb24t
PnZpZGVvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5kKCk7CisKKyAgICByZXR1cm4gY29uZmln
dXJhdGlvbi5nZXQoKTsKK30KKwordm9pZCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3Vy
YXRpb25DaGFuZ2VkKCkKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uQ2hhbmdlZChtX3BsYXllci5pZGVuZGlmaWVyKCksIG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp3aWxsUmVtb3Zl
KCkKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OlJlbW92ZVJlbW90ZVZpZGVvVHJhY2sobV9wbGF5ZXIuaWRlbmRp
ZmllcigpLCBtX2lkZW50aWZpZXIpLCAwKTsKK30KKwordm9pZCBSZW1vdGVWaWRlb1RyYWNrUHJv
eHk6OnNlbGVjdGVkQ2hhbmdlZChib29sKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7
Cit9CisKK3ZvaWQgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0
cmluZyYpCit7CisgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKK30KKwordm9pZCBSZW1vdGVW
aWRlb1RyYWNrUHJveHk6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKK3sKKyAgICBj
b25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCit2b2lkIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6
bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKQoreworICAgIGNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMTdlMGRmZmYxMzg3YmUzOGM3
NDczZjJhYjJhZWViYWFjNmJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKQEAgLTAsMCArMSw3NiBAQAor
LyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1RyYWNrQmFzZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFj
a1ByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uOworCitjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHkgZmluYWwK
KyAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlLCBXVEY6
OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVWaWRlb1Ry
YWNrUHJveHk+IGNyZWF0ZShSZW1vdGVNZWRpYVBsYXllclByb3h5JiBwbGF5ZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
biwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZVZpZGVvVHJhY2tQcm94eShwbGF5ZXIsIGlkLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pLCB0cmFja1ByaXZhdGUpKTsKKyAgICB9CisKKyAgICBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH07CisKKyAgICB2b2lkIHNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpIHsgbV90cmFja1ByaXZh
dGUtPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZVZpZGVv
VHJhY2tQcm94eShSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgVmlkZW9UcmFja1ByaXZhdGUmKTsKKyAg
ICB+UmVtb3RlVmlkZW9UcmFja1Byb3h5KCkgPSBkZWZhdWx0OworCisgICAgLy8gVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQKKyAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKKwor
ICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBB
dG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbVN0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKKworICAgIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKTsKKyAgICB2b2lkIGNvbmZpZ3VyYXRp
b25DaGFuZ2VkKCk7CisKKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3BsYXllcjsKKyAg
ICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8SVBD
OjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uOworICAgIFJlZjxWaWRlb1RyYWNr
UHJpdmF0ZT4gbV90cmFja1ByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oCmluZGV4IDVmMjVjNWRmZTYwYzlmMDc3YjkxZjhlNjFjZDU1MTg0NjFhZGIwZTcuLmM1ZDRm
OTUwZGVkMWU1NTgwYTJkYmU2MGYyYzRmNjVmZDE3NjUzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzcsOCArMzksMTIgQEAgc3RydWN0IFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgIEF0b21TdHJpbmcgbGFuZ3VhZ2U7CiAgICAgTWVk
aWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07CiAgICAg
aW50IHRyYWNrSW5kZXg7CisKICAgICBib29sIGVuYWJsZWQ7Ci0gICAgV2ViQ29yZTo6QXVkaW9U
cmFja1ByaXZhdGU6OktpbmQga2luZCB7IFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5k
OjpOb25lIH07CisgICAgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQgYXVkaW9LaW5k
IHsgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUgfTsKKworICAgIGJvb2wg
c2VsZWN0ZWQ7CisgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQgdmlkZW9LaW5k
IHsgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUgfTsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKQEAgLTQ5LDcgKzU1LDkgQEAgc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24gewogICAgICAgICBlbmNvZGVyIDw8IHN0YXJ0VGltZVZhcmlhbmNlOwogICAgICAgICBlbmNv
ZGVyIDw8IHRyYWNrSW5kZXg7CiAgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKLSAgICAgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKGtpbmQpOworICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oYXVk
aW9LaW5kKTsKKyAgICAgICAgZW5jb2RlciA8PCBzZWxlY3RlZDsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKHZpZGVvS2luZCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29k
ZXI+CkBAIC04NSw5ICs5MywxOSBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiB7CiAgICAgICAgIGlmICghZW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKLSAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6Oktp
bmQ+IGtpbmQ7Ci0gICAgICAgIGRlY29kZXIgPj4ga2luZDsKLSAgICAgICAgaWYgKCFraW5kKQor
ICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZD4gYXVkaW9L
aW5kOworICAgICAgICBkZWNvZGVyID4+IGF1ZGlvS2luZDsKKyAgICAgICAgaWYgKCFhdWRpb0tp
bmQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFs
PGJvb2w+IHNlbGVjdGVkOworICAgICAgICBkZWNvZGVyID4+IHNlbGVjdGVkOworICAgICAgICBp
ZiAoIXNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZD4gdmlkZW9LaW5kOwor
ICAgICAgICBkZWNvZGVyID4+IHZpZGVvS2luZDsKKyAgICAgICAgaWYgKCF2aWRlb0tpbmQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgICAgIHJldHVybiB7ewpAQCAt
OTcsNyArMTE1LDkgQEAgc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewog
ICAgICAgICAgICAgV1RGTW92ZSgqc3RhcnRUaW1lVmFyaWFuY2UpLAogICAgICAgICAgICAgKnRy
YWNrSW5kZXgsCiAgICAgICAgICAgICAqZW5hYmxlZCwKLSAgICAgICAgICAgICpraW5kLAorICAg
ICAgICAgICAgKmF1ZGlvS2luZCwKKyAgICAgICAgICAgICpzZWxlY3RlZCwKKyAgICAgICAgICAg
ICp2aWRlb0tpbmQsCiAgICAgICAgIH19OwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3NjE3
YzJlMTdlZGQ0NzgwNGY1ZGY2ODgzMWNjYzMyZDhmODZjMzRiLi44NTgxYzkzZjI4MTgxYmZkODMx
ZmY4OWJlY2QyN2JkZDgzNWE3ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTMyLDYgKzMyLDcgQEAgR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAogCiBO
ZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcAogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAKQEAgLTUxNiw2ICs1MTcsNyBAQCBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDA3OTIzZjg3MTQ3MzdlOWMyODk3YTU1ZDAyYzhjZDRkYmExZWQ2Y2UuLjA0OTFiNjVkZmIz
NzQ1ZGYzOWQ3NzY3NWQ5NjVlYjdjZmI5NzM3MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA1Nyw2ICsyMDU3LDEwIEBACiAJCTA3
MUJDNTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1
ZGlvVHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzFCQzU3RjIzQ0E1REIxMDA2
ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1
ZGlvVHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzFCQzU4MjIz
Q0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcxQkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90
ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzFCQzU4NTIzQ0MyQzA5
MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZVZpZGVvVHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZB
QjIzOUFFMzg0MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjVFRkFDMjM5QUUzODUwMEE1MzhBOSAvKiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1
RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE4OSw2ICs1MTkzLDggQEAKIAkJCQkwN0Iz
QjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICovLAogCQkJ
CTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3Bw
ICovLAogCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLywKKwkJCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuY3BwICovLAorCQkJCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MjEyLDYgKzUyMTgsOCBAQAogCQkJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8sCiAJ
CQkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmggKi8sCiAJCQkJMUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAv
KiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovLAorCQkJCTA3MUJDNTg1MjNDQzJDMDkwMDY4
MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwNzFCQzU3QjIzQ0E1MzI0
MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3
MUJDNTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgg
Ki8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCBlY2Y3ZmRmOWJiZWEy
Y2VkMGYwNDYxOWY2YzM2ODY1ZjllMDM0NzU5Li5iZjU3YWE2ODNhMjZmMTg1Yjc0NjliMzE4NDBl
MjJhNzYwZjkzYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtNjMsMTkgKzYz
LDE5IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24o
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvCiAgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFt
X2xhYmVsLmlzRW1wdHkoKTsKICAgICAgICAgbV9sYWJlbCA9IGNvbmZpZ3VyYXRpb24ubGFiZWw7
CiAgICAgICAgIGlmIChjaGFuZ2VkICYmIGNsaWVudCgpKQotICAgICAgICAgICAgY2xpZW50KCkt
PmlkQ2hhbmdlZChtX2xhYmVsKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5sYWJlbENoYW5nZWQo
bV9sYWJlbCk7CiAgICAgfQogCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UgIT0gbV9s
YW5ndWFnZSkgewogICAgICAgICBhdXRvIGNoYW5nZWQgPSAhbV9sYW5ndWFnZS5pc0VtcHR5KCk7
CiAgICAgICAgIG1fbGFuZ3VhZ2UgPSBjb25maWd1cmF0aW9uLmxhbmd1YWdlOwogICAgICAgICBp
ZiAoY2hhbmdlZCAmJiBjbGllbnQoKSkKLSAgICAgICAgICAgIGNsaWVudCgpLT5pZENoYW5nZWQo
bV9sYW5ndWFnZSk7CisgICAgICAgICAgICBjbGllbnQoKS0+bGFuZ3VhZ2VDaGFuZ2VkKG1fbGFu
Z3VhZ2UpOwogICAgIH0KIAogICAgIG1fdHJhY2tJbmRleCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJ
bmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0gY29uZmlndXJhdGlvbi5zdGFydFRpbWVW
YXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7CisgICAgbV9raW5kID0g
Y29uZmlndXJhdGlvbi5hdWRpb0tpbmQ7CiAgICAgc2V0RW5hYmxlZChjb25maWd1cmF0aW9uLmVu
YWJsZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYjdiZjRhNmUz
MzM4NTAwN2JkODliOWU1YzdiNjVjNmUwODlhNDhlZi4uZjUxY2M2MjNjYTVhMWQ3ODUxZmI0ODM4
MDU4MWFhZGRkODM5Mjc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5ZXIuaD4KQEAgLTM4NiwxMiArMzg3LDE1IEBAIEZsb2F0U2l6ZSBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Om5hdHVyYWxTaXplKCkgY29uc3QKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKIHsKLSAgICBBU1NFUlQoIW1fYXVkaW9UcmFja3MuY29udGFpbnMoaWRl
bnRpZmllcikpOwotICAgIGlmIChtX2F1ZGlvVHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKQor
ICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hdWRpb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZd
IHsKKyAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMs
IGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgIH0pOworICAgIEFTU0VS
VChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRyYWNrID0gQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGU6OmNyZWF0ZSgqdGhpcywgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
Ci0gICAgbV9wbGF5ZXItPmFkZEF1ZGlvVHJhY2sobV9hdWRpb1RyYWNrcy5hZGQoaWRlbnRpZmll
ciwgV1RGTW92ZSh0cmFjaykpLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgbV9wbGF5ZXItPmFkZEF1
ZGlvVHJhY2soYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQpCkBAIC00MTIsNiArNDE2LDM3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2
YXRlCiAgICAgICAgIHRyYWNrLT51cGRhdGVDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJh
dGlvbikpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlk
ZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGF1dG8gYWRk
UmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKKyAgICAgICAg
cmV0dXJuIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIs
IFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgIH0pOworICAgIEFTU0VSVChhZGRSZXN1bHQu
aXNOZXdFbnRyeSk7CisKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BsYXllci0+YWRkVmlkZW9UcmFjayhhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJlbW90
ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKK3sKKyAgICBBU1NF
UlQobV92aWRlb1RyYWNrcy5jb250YWlucyhpZCkpOworCisgICAgaWYgKGF1dG8qIHRyYWNrID0g
bV92aWRlb1RyYWNrcy5nZXQoaWQpKSB7CisgICAgICAgIG1fcGxheWVyLT5yZW1vdmVWaWRlb1Ry
YWNrKCp0cmFjayk7CisgICAgICAgIG1fdmlkZW9UcmFja3MucmVtb3ZlKGlkKTsKKyAgICB9Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmln
dXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgQVNTRVJUKG1f
dmlkZW9UcmFja3MuY29udGFpbnMoaWQpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9
IG1fdmlkZW9UcmFja3MuZ2V0KGlkKSkKKyAgICAgICAgdHJhY2stPnVwZGF0ZUNvbmZpZ3VyYXRp
b24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKIC8vIEZJWE1FOiBVbmltcGxlbWVudGVk
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5k
ZXggOGM0YTA4NjFhNmEwNjU1ZTY5ZTljMmE2MTAzOTZjNjU1Nzk5MjllMy4uNmVhZTI0OTQ4ODQ1
NDljNDZlODIyMjg3NzNmNGY2YWI3YWZmOTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGU7CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTsKIHN0cnVjdCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgZmluYWwKQEAgLTgyLDYgKzgzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92
ZVJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAorICAgIHZv
aWQgYWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgcmVtb3ZlUmVtb3RlVmlk
ZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworCiAgICAgdm9pZCByZXF1ZXN0
UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRp
b25zKTsKICAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKTsKIApAQCAtMzIxLDYgKzMyNiw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlPj4gbV9tZWRpYVJlc291cmNlczsKICAgICBIYXNoTWFwPFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4+IG1fYXVkaW9UcmFja3M7
CisgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8VmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU+PiBtX3ZpZGVvVHJhY2tzOwogCiAgICAgZG91YmxlIG1fdm9sdW1lIHsg
MSB9OwogICAgIGRvdWJsZSBtX3JhdGUgeyAxIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAKaW5kZXggN2Q1ZDM3NzNlMGY0YmI1MzJlNmNjNjNjMTRkOTAyOWNlZWZhZjVhOS4uYjdjMDRm
MTM3OWY4NDFiMWM4YzM1Y2Q2YjY1YjdkN2ZlMDBlYTUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcApAQCAtMzIxLDYgKzMyMSwyNCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6cmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyUAog
ICAgICAgICBwbGF5ZXItPnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCh0cmFj
a0lELCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OmFkZFJlbW90ZVZpZGVvVHJhY2soTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBwbGF5ZXJJRCwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBp
ZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KHBsYXllcklEKSkKKyAgICAgICAgcGxheWVy
LT5hZGRSZW1vdGVWaWRlb1RyYWNrKHRyYWNrSUQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVtb3ZlUmVtb3RlVmlkZW9UcmFj
ayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklELCBUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCit7CisgICAgaWYgKGF1dG8gcGxheWVyID0gbV9w
bGF5ZXJzLmdldChwbGF5ZXJJRCkpCisgICAgICAgIHBsYXllci0+cmVtb3ZlUmVtb3RlVmlkZW9U
cmFjayh0cmFja0lEKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW90
ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIHBsYXllcklELCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAg
IGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQocGxheWVySUQpKQorICAgICAgICBwbGF5
ZXItPnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCh0cmFja0lELCBXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJl
cXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwg
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpM
b2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggYWI5NGRmNzgxZTcyZDJlYTc5NDhi
MTRjZDIyNjgyYmQyM2IwOGJhMi4uZjQzZjlkYzM4MDg2OTVhZWFiNmRlYWFlNTNhN2Y0N2Q5ZDM5
MDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCkBAIC04OSwxMCArODksMTUgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAgdm9pZCBjaGFyYWN0
ZXJpc3RpY0NoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCBo
YXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVM
b2FkVHlwZSk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFNpemUpOworCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRp
b1RyYWNrKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAgICAg
dm9pZCByZW1vdmVSZW1vdGVBdWRpb1RyYWNrKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3RlQXVk
aW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJik7CiAKKyAgICB2b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHJlbW92ZVJlbW90
ZVZpZGVvVHJhY2soTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJh
dGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsK
KwogICAgIHZvaWQgcmVxdWVzdFJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9u
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlbW92ZVJlc291cmNl
KE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5p
bgppbmRleCAwMDg0YWZjMzVkNGY3ZGQ2MjQxMGUxZjJkNDY3NzFhZTNlM2Q1MDgxLi4zMmVhN2Qw
OTdhMDJmYjRjZmM5NjE1ZjJmYmUyOTRiZWZjODYyMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtNDEsNiArNDEsMTAgQEAgbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIFJlbW92ZVJlbW90
ZUF1ZGlvVHJhY2soV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklELCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKICAg
ICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklELCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCisgICAgQWRkUmVtb3RlVmlkZW9UcmFjayhX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQsIFdlYktp
dDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3Zl
UmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgcGxheWVySUQsIFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
KQorICAgIFJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySUQsIFdlYktpdDo6VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisKICAgICBSZXF1ZXN0UmVzb3VyY2Uo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKSBBc3luYwogICAgIFJlbW92ZVJlc291cmNl
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNzc4ZDdkMWQyMjgwNGZkODNmMmIyZGQxZmRkMmFkMzM4NmRl
OGVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
Ik1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICA6
IG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQoreworICAg
IHVwZGF0ZUNvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK3ZvaWQg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCit7Cisg
ICAgaWYgKHNlbGVjdGVkICE9IHRoaXMtPnNlbGVjdGVkKCkpCisgICAgICAgIG1fcGxheWVyLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6
VmlkZW9UcmFja1NldFNlbGVjdGVkKG1fcGxheWVyLml0ZW50aWZpZXIoKSwgbV9pZGVuZGlmaWVy
LCBzZWxlY3RlZCksIDApOworCisgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNl
bGVjdGVkKTsKK30KKwordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmln
dXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
K3sKKyAgICBpZiAoY29uZmlndXJhdGlvbi5pZCAhPSBtX2lkKSB7CisgICAgICAgIGF1dG8gY2hh
bmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsKKyAgICAgICAgbV9pZCA9IGNvbmZpZ3VyYXRpb24uaWQ7
CisgICAgICAgIGlmIChjaGFuZ2VkICYmIGNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50KCkt
PmlkQ2hhbmdlZChtX2lkKTsKKyAgICB9CisKKyAgICBpZiAoY29uZmlndXJhdGlvbi5sYWJlbCAh
PSBtX2xhYmVsKSB7CisgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFtX2xhYmVsLmlzRW1wdHkoKTsK
KyAgICAgICAgbV9sYWJlbCA9IGNvbmZpZ3VyYXRpb24ubGFiZWw7CisgICAgICAgIGlmIChjaGFu
Z2VkICYmIGNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50KCktPmxhYmVsQ2hhbmdlZChtX2xh
YmVsKTsKKyAgICB9CisKKyAgICBpZiAoY29uZmlndXJhdGlvbi5sYW5ndWFnZSAhPSBtX2xhbmd1
YWdlKSB7CisgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFtX2xhbmd1YWdlLmlzRW1wdHkoKTsKKyAg
ICAgICAgbV9sYW5ndWFnZSA9IGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2U7CisgICAgICAgIGlmIChj
aGFuZ2VkICYmIGNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50KCktPmxhbmd1YWdlQ2hhbmdl
ZChtX2xhbmd1YWdlKTsKKyAgICB9CisKKyAgICBtX3RyYWNrSW5kZXggPSBjb25maWd1cmF0aW9u
LnRyYWNrSW5kZXg7CisgICAgbV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3VyYXRpb24uc3Rh
cnRUaW1lVmFyaWFuY2U7CisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi52aWRlb0tpbmQ7Cisg
ICAgc2V0U2VsZWN0ZWQoY29uZmlndXJhdGlvbi5zZWxlY3RlZCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMjk4YTY1ZWRkMzMyN2FiZTU5NTU1MTIyNDM2ZWU1YWJk
YjQzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRl
ICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WaWRl
b1RyYWNrUHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOworc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247
CisKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlIDogcHVibGljIFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZSkKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
PiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmln
dXJhdGlvbikpKTsKKyAgICB9CisKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKworICAgIHVzaW5nIFZpZGVvVHJhY2tLaW5k
ID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ7CisgICAgVmlkZW9UcmFja0tpbmQg
a2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQorICAgIEF0b21TdHJpbmcgaWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkOyB9CisgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQorICAgIGludCB0cmFja0luZGV4KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4OyB9CisKK3Byb3RlY3RlZDoKKyAgICBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OworCisgICAgdm9pZCBzZXRTZWxlY3RlZChib29sKSBmaW5hbDsKKworICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSYgbV9wbGF5ZXI7CisgICAgVmlkZW9UcmFja0tpbmQgbV9raW5kIHsgTm9u
ZSB9OworICAgIEF0b21TdHJpbmcgbV9pZDsKKyAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CisgICAg
QXRvbVN0cmluZyBtX2xhbmd1YWdlOworICAgIGludCBtX3RyYWNrSW5kZXggeyAtMSB9OworICAg
IE1lZGlhVGltZSBtX3N0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07
CisgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkZW5kaWZpZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzA3Y2UzNWU3MjQwZTNlNTc0
NTU4NzI3ZjMzYjc4NjNkMGU2OTRhMi4uOWMzNmMyYzRmZmRhMTc5OWE5ZjY0ODdhZDJiNWM2MGZl
MTM0MTIxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTEzICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSB2aWRlbyB0cmFja3Mg
Zm9yIG1lZGlhIGZpbGVzIGluIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyMDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4NTUzMDI2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAq
IGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDEtMTMgIFN1bm55IEhlICA8
c3VubnlfaGVAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBjb21wdXRlRmxvYXRWaXNpYmxlUmVj
dEluQ29udGFpbmVyIHRvIGhhbmRsZSBub24tU1ZHIG9iamVjdCBwYXJlbnQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9n
cHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDcyMGU2ZTM2MWMyZWExZTRiOTA4ZjBl
MDkwNTcwMWM5YmFhOWVmYTEuLmRlMWFmYjQxYjYwNjEwNjdkY2FlOTgyZjc1MGNjNjhjMjQxZDFm
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjIwLDYg
KzIyMCwxMCBAQCBtZWRpYS92aWRlby1jb250cm9scy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbCBb
IFBhc3MgXQogbWVkaWEvdmlkZW8tcGxheS1hdWRpby1yZXF1aXJlLXVzZXItZ2VzdHVyZS5odG1s
IFsgUGFzcyBdCiBtZWRpYS90cmFjay9hdWRpby10cmFjay5odG1sIFsgUGFzcyBdCiBtZWRpYS9h
dWRpby10cmFjay1hZGQtcmVtb3ZlLmh0bWwgWyBQYXNzIF0KK21lZGlhL3RyYWNrL3ZpZGVvLXRy
YWNrLWFkZC1yZW1vdmUuaHRtbCBbIFBhc3MgXQorbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stYWx0
ZXJuYXRlLWdyb3Vwcy5odG1sIFsgUGFzcyBdCittZWRpYS90cmFjay92aWRlby10cmFjay1hZGRp
dGlvbi1hbmQtZnJhbWUtcmVtb3ZhbC5odG1sIFsgUGFzcyBdCittZWRpYS90cmFjay92aWRlby10
cmFjay5odG1sIFsgUGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsg
U2tpcCBdCiBmYXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwg
WyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>