<?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>215232</bug_id>
          
          <creation_ts>2020-08-06 11:49:34 -0700</creation_ts>
          <short_desc>REGRESSION (r257667): 1.9x more CPU time in IPC::SharedBufferDataReference decoding during Netflix playback</short_desc>
          <delta_ts>2020-08-21 04:29:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208090</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</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>1678332</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-06 11:49:34 -0700</bug_when>
    <thetext>After r257667, traces show 1.9x more CPU time is spent decoding IPC::SharedBufferDataReference objects during video playback on Netflix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678335</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-06 11:51:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/66637920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681135</commentid>
    <comment_count>2</comment_count>
      <attachid>406796</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-18 11:40:54 -0700</bug_when>
    <thetext>Created attachment 406796
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681299</commentid>
    <comment_count>3</comment_count>
      <attachid>406828</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-18 21:54:27 -0700</bug_when>
    <thetext>Created attachment 406828
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681309</commentid>
    <comment_count>4</comment_count>
      <attachid>406832</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-19 03:04:45 -0700</bug_when>
    <thetext>Created attachment 406832
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681441</commentid>
    <comment_count>5</comment_count>
      <attachid>406832</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-08-19 12:15:48 -0700</bug_when>
    <thetext>Comment on attachment 406832
Patch for EWS

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

&gt; Source/WebKit/ChangeLog:24
&gt; +        1. While both techniques copy the SharedBuffer only once during encoding, the new technique
&gt; +           combines the buffer&apos;s data segments (by calling SharedBuffer::data()) while the old
&gt; +           technique avoids this.

To fix a regression, a partial revert makes great sense. That said, should we also fix the encoder for SharedBuffer, so that it stops doing this inefficient thing?

&gt; Source/WebKit/ChangeLog:30
&gt; +        2. Once a SharedMemory handle is decoded and mapped, the new technique copies its memory
&gt; +           into a SharedBuffer for use by the message receiver. Unlike the old technique that
&gt; +           decodes as a pointer into the existing Decoder buffer, the new technique must decode a
&gt; +           handle, map a SharedMemory allocation, copy it into a new SharedBuffer on the heap, and
&gt; +           then destroy the handle and SharedMemory.

Same question here.

&gt; Source/WebKit/Platform/IPC/LegacySharedBufferDataReference.h:36
&gt; +class LegacySharedBufferDataReference {

Would be good to add a comment explaining why this should not be used, and what should be used instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681472</commentid>
    <comment_count>6</comment_count>
      <attachid>406872</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-19 14:26:41 -0700</bug_when>
    <thetext>Created attachment 406872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681477</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-19 14:37:46 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Comment on attachment 406832 [details]
&gt; Patch for EWS
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406832&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:24
&gt; &gt; +        1. While both techniques copy the SharedBuffer only once during encoding, the new technique
&gt; &gt; +           combines the buffer&apos;s data segments (by calling SharedBuffer::data()) while the old
&gt; &gt; +           technique avoids this.
&gt; 
&gt; To fix a regression, a partial revert makes great sense. That said, should
&gt; we also fix the encoder for SharedBuffer, so that it stops doing this
&gt; inefficient thing?

Yes, I think we should fix the segment combining issue in a different bug.

&gt; 
&gt; &gt; Source/WebKit/ChangeLog:30
&gt; &gt; +        2. Once a SharedMemory handle is decoded and mapped, the new technique copies its memory
&gt; &gt; +           into a SharedBuffer for use by the message receiver. Unlike the old technique that
&gt; &gt; +           decodes as a pointer into the existing Decoder buffer, the new technique must decode a
&gt; &gt; +           handle, map a SharedMemory allocation, copy it into a new SharedBuffer on the heap, and
&gt; &gt; +           then destroy the handle and SharedMemory.
&gt; 
&gt; Same question here.

Yes, also in a different bug.

I&apos;ll file these and add FIXMEs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681479</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-19 14:40:36 -0700</bug_when>
    <thetext>(Note that https://bugs.webkit.org/attachment.cgi?id=406872 has a much differently worded ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681501</commentid>
    <comment_count>9</comment_count>
      <attachid>406872</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-08-19 15:30:25 -0700</bug_when>
    <thetext>Comment on attachment 406872
Patch

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

r=me

&gt; Source/WebKit/ChangeLog:43
&gt; +        LegacySharedBufferDataReference type, which reverts to the old behaior of producing an

behavior

&gt; Source/WebKit/ChangeLog:44
&gt; +        Resolve this slowdown by reverting the argument encoding changes made to
&gt; +        IPC::SharedBufferDataReference in r257667. For compatibility with code added after r257667,
&gt; +        IPC::SharedBufferDataReference retains its new behavior of copying into a SharedBuffer when
&gt; +        decoded, but this type is now only used in cases where the SharedBuffer can be ref&apos;d instead
&gt; +        of copied. Pre-r257667 instances of SharedBufferDataReference were changed to a new
&gt; +        LegacySharedBufferDataReference type, which reverts to the old behaior of producing an
&gt; +        IPC::DataReference when decoded, avoiding many copies.

So LegacySharedBufferDataReference is the fast IPC data type and SharedBufferDataReference is the slow IPC data type? That is... surprising.

Are we in danger of new adoptions of SharedBufferDataReference causing perf regressions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681502</commentid>
    <comment_count>10</comment_count>
      <attachid>406872</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-19 15:30:55 -0700</bug_when>
    <thetext>Comment on attachment 406872
Patch

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

Great work! So exciting to see this diagnosed.

&gt; Source/WebKit/ChangeLog:3
&gt; +        REGRESSION (r257667): 1.9x more CPU time in IPC::SharedBufferDataReference decoding during Netflix playback

What’s our strategy to protect ourselves from making this kind of mistake again?

Maybe we can find a way to count how often we copy data buffers during regression tests? There can’t be too many different places that do that &quot;copy a lot of bytes&quot; operation.

&gt; Source/WebKit/ChangeLog:21
&gt; +        handle. It makes only one copy like the old encoder did, but pays the added cost of
&gt; +        combining SharedBuffer data segments prior to copying by needlessly calling
&gt; +        SharedBuffer::data() (this should be fixed independently).

Seems like we have a real opportunity there; doesn’t seem that hard to code!

&gt; Source/WebKit/ChangeLog:43
&gt; +        LegacySharedBufferDataReference type, which reverts to the old behaior of producing an

I’m not sure that &quot;Legacy&quot; accurately captures the difference between these two. Normally we name something Legacy when the dependency on the old behavior is an unwanted remnant of the past, to eventually be eliminated. Here it seems from your description there are reasons to prefer the two different behaviors for different cases of sending data across the process boundary; ideally those would be reflected in the names.

Typo: &quot;behaior&quot;

&gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:414
&gt; +		BCB281EE0CFA713D007E533E /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Base.xcconfig; path = mac/Configurations/Base.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		BCB281F00CFA713D007E533E /* DumpRenderTree.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = DumpRenderTree.xcconfig; path = mac/Configurations/DumpRenderTree.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		BCB282F40CFA7450007E533E /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = DebugRelease.xcconfig; path = mac/Configurations/DebugRelease.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		BCB283DE0CFA7C20007E533E /* TestNetscapePlugIn.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TestNetscapePlugIn.xcconfig; path = mac/Configurations/TestNetscapePlugIn.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };

Are these changes improvements? Is &quot;4&quot; a better file encoding than &quot;30&quot;? Or is this just a script doing some reverting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681536</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-19 17:06:33 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #9)
&gt; So LegacySharedBufferDataReference is the fast IPC data type and
&gt; SharedBufferDataReference is the slow IPC data type? That is... surprising.
&gt; 
&gt; Are we in danger of new adoptions of SharedBufferDataReference causing perf
&gt; regressions?

(In reply to Darin Adler from comment #10)
&gt; I’m not sure that &quot;Legacy&quot; accurately captures the difference between these
&gt; two. Normally we name something Legacy when the dependency on the old
&gt; behavior is an unwanted remnant of the past, to eventually be eliminated.
&gt; Here it seems from your description there are reasons to prefer the two
&gt; different behaviors for different cases of sending data across the process
&gt; boundary; ideally those would be reflected in the names.

How about I rename IPC::LegacySharedBufferDataReference to IPC::SharedBufferDataReference and call the current IPC::SharedBufferDataReference something like IPC::SharedBufferCopy?

The thinking that led to &quot;legacy&quot; was that while IPC::DataReference is currently the faster way to decode, IPC::SharedBufferDataReference provides the safer interface for message receivers with SharedBuffer instead of a raw pointer to an unretained buffer. So that LegacySharedBufferDataReference is decoded as a IPC::DataReference felt like a legacy behavior, but really it&apos;s a faster-or-safer tradeoff I want to convey.

I think a modern design would be to phase out DataReference (and LegacySharedBufferDataReference) and make SharedBuffer faster to use for decoding. One thing I think would help here is to add a type of SharedBuffer data segment that just refs a SharedMemory or IPC::Decoder, but that&apos;s out-of-scope for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681549</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-19 17:21:47 -0700</bug_when>
    <thetext>All of that sounds smart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681871</commentid>
    <comment_count>13</comment_count>
      <attachid>406980</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-20 17:19:37 -0700</bug_when>
    <thetext>Created attachment 406980
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681896</commentid>
    <comment_count>14</comment_count>
      <attachid>406989</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-20 17:52:39 -0700</bug_when>
    <thetext>Created attachment 406989
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681901</commentid>
    <comment_count>15</comment_count>
      <attachid>406992</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-20 18:09:26 -0700</bug_when>
    <thetext>Created attachment 406992
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681903</commentid>
    <comment_count>16</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-20 18:17:21 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #10)
&gt; Comment on attachment 406872 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406872&amp;action=review
&gt; 
&gt; Great work! So exciting to see this diagnosed.
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:3
&gt; &gt; +        REGRESSION (r257667): 1.9x more CPU time in IPC::SharedBufferDataReference decoding during Netflix playback
&gt; 
&gt; What’s our strategy to protect ourselves from making this kind of mistake
&gt; again?
&gt; 
&gt; Maybe we can find a way to count how often we copy data buffers during
&gt; regression tests? There can’t be too many different places that do that
&gt; &quot;copy a lot of bytes&quot; operation.

One thing we could do is assert in IPC::SharedBufferCopy&apos;s destructor that m_buffer is either null or has more than one ref. That would detect cases where we created a SharedBuffer that the message receiver never ref&apos;d or moved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681957</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-21 04:29:24 -0700</bug_when>
    <thetext>Committed r266003: &lt;https://trac.webkit.org/changeset/266003&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406992.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406796</attachid>
            <date>2020-08-18 11:40:54 -0700</date>
            <delta_ts>2020-08-18 21:54:26 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-215232-20200818114054.patch</filename>
            <type>text/plain</type>
            <size>6546</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLjY2OGYyZTQ5MTM4ZTEwMTY0MDg4M2QzNTVjMjFmNWNk
ZjA2OWU1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDgtMTggIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAx
Ljl4IG1vcmUgQ1BVIHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29k
aW5nIGR1cmluZyBOZXRmbGl4IHBsYXliYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2NjM3
OTIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0VuY29kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
U2hhcmVkQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnByb2Nlc3NS
ZWNlaXZlZERhdGFPckJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVy
Ojpwcm9jZXNzUmVjZWl2ZWREYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKwogMjAyMC0wOC0xOCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBVbmhhbmRsZWQga2V5RG93bjogZXZl
bnRzIGNhdXNlIGEgc3lzdGVtIGJlZXAgaW4gZnVsbCBzY3JlZW4gbW9kZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRW5jb2Rlci5oCmluZGV4IDEzZjNjNDNlNDE3YTY0NDQ5YzkwMmIyYjYzODY3OTYx
ZTI5ZDUzMTcuLjM2NzhkNGZhZTI5MTUyZDk5MGY0ZDNhNGYwYjdlMGFmNmNmNzQ3MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKQEAgLTk1LDEyICs5NSwxMSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFkZEF0dGFjaG1lbnQoQXR0YWNobWVudCYmKTsKICAgICBWZWN0b3I8QXR0
YWNobWVudD4gcmVsZWFzZUF0dGFjaG1lbnRzKCk7CisgICAgdm9pZCByZXNlcnZlKHNpemVfdCk7
CiAKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc0lQQ0VuY29kZXIgPSB0cnVlOwogCiBwcml2YXRl
OgotICAgIHZvaWQgcmVzZXJ2ZShzaXplX3QpOwotCiAgICAgdWludDhfdCogZ3JvdyhzaXplX3Qg
YWxpZ25tZW50LCBzaXplX3QpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRSwgc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX2VudW08RT46OnZhbHVlPiogPSBudWxscHRyPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oCmlu
ZGV4IDJjZmM3ZmFjODExOGJlYmQxODU1M2FjMjJhMWQ4NWQ3ZGYyODBhZjAuLjYwZWM2OTFkZGFk
NGFkOTI5OWRkYWY2YmIyOTUwNjhhNThmNWRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKQEAgLTI1LDYgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KIApAQCAtNTAsMTYgKzUxLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyIDw8IG1fYnVm
ZmVyOworICAgICAgICB1aW50NjRfdCBidWZmZXJTaXplID0gbV9idWZmZXIgPyBtX2J1ZmZlci0+
c2l6ZSgpIDogMDsKKyAgICAgICAgZW5jb2Rlci5yZXNlcnZlKHNpemVvZihidWZmZXJTaXplKSAr
IGJ1ZmZlclNpemUpOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlclNpemU7CisgICAgICAgIGlm
ICghYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZm9yIChhdXRvJiBz
ZWdtZW50IDogKm1fYnVmZmVyKQorICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0
aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc2VnbWVudC5zZWdtZW50LT5k
YXRhKCkpLCBzZWdtZW50LnNlZ21lbnQtPnNpemUoKSwgMSk7CiAgICAgfQogCiAgICAgc3RhdGlj
IE9wdGlvbmFsPFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIHsKLSAgICAgICAgT3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4+IGJ1ZmZlcjsKLSAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7Ci0gICAgICAgIGlmICghYnVm
ZmVyKQorICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YTsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGRhdGEpKQogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSgqYnVmZmVyKSB9Owor
ICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgICAgIGlm
IChkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIHJldHVybiB7IFdU
Rk1vdmUoYnVmZmVyKSB9OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCBmNjg5
M2FmMGI0YjQzMjcxODRmZGU1NjRlMjYwMDcwZmFjNzNlNGM2Li5iZTY4Y2Q3YmM5MzUxMTk1OWZj
MDllZTAxYzYwMDc5YWY4YzU3MWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcHJv
Y2Vzc1JlY2VpdmVkRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEo
KSksIGRhdGEuc2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgcHJvY2Vzc1JlY2VpdmVk
RGF0YU9yQnVmZmVyKG51bGxwdHIsIDAsIFdURk1vdmUoZGF0YS5idWZmZXIoKSksIGVuY29kZWRE
YXRhTGVuZ3RoKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
SVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKQEAg
LTIxMyw3ICsyMTMsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShJ
UEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBpbnQ2NF90IGVuY29kZQogICAgICAgICBkZWZlclJl
Y2VpdmluZ1NoYXJlZEJ1ZmZlcih7IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEu
ZGF0YSgpLCBkYXRhLnNpemUoKSkgfSwgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIHByb2Nlc3NSZWNlaXZlZERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgpOwor
CisgICAgcHJvY2Vzc1JlY2VpdmVkRGF0YU9yQnVmZmVyKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUo
KSwgbnVsbHB0ciwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UmJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQpAQCAtMjI0LDE0ICsyMjUs
MTcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGVmZXJSZWNlaXZpbmdTaGFyZWRCdWZmZXIo
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmMKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6cHJvY2Vzc1JlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qg
c2l6ZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6
OnByb2Nlc3NSZWNlaXZlZERhdGFPckJ1ZmZlcihjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qg
c2l6ZSwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpCiB7CiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2
aW5nIGRhdGEiKTsKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IHNpemU7CiAKLSAg
ICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWREYXRhTGVu
Z3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKKyAgICBpZiAoYnVmZmVyKQorICAgICAgICBtX2NvcmVM
b2FkZXItPmRpZFJlY2VpdmVCdWZmZXIoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIGVuY29kZWRE
YXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29yZUxv
YWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSks
IHNpemUsIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggODQ2YjAwNzI5MjIyYzQz
MjE3NzkxODA0ZTc2NjIyODk5N2QwMGMxOC4uOWU0NjU5YmExNTkyMmE2YWExOTQzYWNjMWQ5YmU4
ZGIyZjE3ZWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVu
aWVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAogICAgIHZvaWQgZGVmZXJS
ZWNlaXZpbmdTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZvaWQgcHJvY2Vzc1JlY2VpdmVkRGF0YShj
b25zdCBjaGFyKiwgc2l6ZV90IGxlbmd0aCwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Cisg
ICAgdm9pZCBwcm9jZXNzUmVjZWl2ZWREYXRhT3JCdWZmZXIoY29uc3QgdWludDhfdCosIHNpemVf
dCwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxl
bmd0aCk7CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQogICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406828</attachid>
            <date>2020-08-18 21:54:27 -0700</date>
            <delta_ts>2020-08-19 03:04:44 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-215232-20200818215426.patch</filename>
            <type>text/plain</type>
            <size>45778</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLmUxZWU5MjY3Y2Y2OWJjZjAzYTUxZDQzYjI5NzcwM2Y5
ZmMwYWViNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDgtMTggIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAx
Ljl4IG1vcmUgQ1BVIHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29k
aW5nIGR1cmluZyBOZXRmbGl4IHBsYXliYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2NjM3
OTIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZmZXJpbmdUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kQnVmZmVyKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlU2hhcmVk
QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW46CisgICAgICAgICog
UGxhdGZvcm0vSVBDL0VuY29kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSGFuZGxlTWVz
c2FnZS5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9MZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZTo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSk6CisgICAgICAgIChJ
UEM6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAo
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZmluaXNoZWRMb2FkaW5nSWNvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnByb2Nlc3NSZWNlaXZlZERh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNl
bGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRX
ZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0dHJpYnV0
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDgtMTggIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gVW5oYW5kbGVk
IGtleURvd246IGV2ZW50cyBjYXVzZSBhIHN5c3RlbSBiZWVwIGluIGZ1bGwgc2NyZWVuIG1vZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAppbmRleCA5NWMyYjJiYzJlMmUyOTlhZmQ1YTUyOTNhNDI0NTBiMjZlMWI0YzJk
Li43ZmUzOWZkMzFhNTM4OTM5NWNiMTZiYmI4OGIyMjNiZDk1NDI1NDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0yNiw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgiCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMZWdhY3lTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNo
ZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCIKQEAg
LTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZEluZm8uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgpAQCAtMTA1MSw3ICsxMDUwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmJ1ZmZlcmluZ1RpbWVyRmlyZWQoKQogICAgIGlmIChtX2J1ZmZlcmVkRGF0YS0+aXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRlcjo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcih7ICptX2J1ZmZlcmVkRGF0YSB9LCBtX2J1
ZmZlcmVkRGF0YUVuY29kZWREYXRhTGVuZ3RoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgKm1fYnVmZmVyZWREYXRhIH0sIG1fYnVmZmVy
ZWREYXRhRW5jb2RlZERhdGFMZW5ndGgpKTsKIAogICAgIG1fYnVmZmVyZWREYXRhID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoKTsKICAgICBtX2J1ZmZlcmVkRGF0YUVuY29kZWREYXRhTGVuZ3RoID0g
MDsKQEAgLTEwNjEsNyArMTA2MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5k
QnVmZmVyKFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBzaXplX3QgZW5jb2RlZERhdGFMCiB7CiAgICAg
QVNTRVJUKCFpc1N5bmNocm9ub3VzKCkpOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3Vy
Y2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyBidWZmZXIgfSwgZW5jb2RlZERhdGFM
ZW5ndGgpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2
ZURhdGEoeyBidWZmZXIgfSwgZW5jb2RlZERhdGFMZW5ndGgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCAzZmRhNzVmOWNjN2Q2NjVjODQ3OGI5Y2UxYjkw
ZmE3M2FmYzZiODJkLi41MTM4OWVlM2UwOGQ3ZTEzMTAxMjMxNTFhMjNiMzlhMWUwNzQ2M2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC0yOSwxMiArMjks
MTEgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb25NZXNzYWdlcy5oIgpAQCAtMTU5LDE1ICsxNTgsNiBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSwgaW50NgogICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6
OkRpZFJlY2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7CiB9CiAKLXZvaWQg
U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihjb25zdCBJUEM6
OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5n
dGgpCi17Ci0gICAgaWYgKG1faXNEb25lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQo
IW1fdGltZW91dFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6
V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIgeyBkYXRhLCBlbmNvZGVk
RGF0YUxlbmd0aCB9KTsKLX0KLQogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCiB7CiAg
ICAgaWYgKG1faXNEb25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5k
ZXggOTVlZDc1OTZhOGIxMWFkOWJkZThjOWIyZTJmMDVhYWY1NjdmNjBjNy4uMzllZTk0MDQwZWMz
OTVmMDkzMjgyY2JmYmEyZmZiYjkzNDFjNmYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5oCkBAIC04MCw3ICs4MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogICAg
IHZvaWQgZGlkRmluaXNoKCk7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
bWVzc2FnZXMuaW4KaW5kZXggNDI3NGFkYzE2NjE4NzQwYWU4ODhmMjExZGY0OTIyMzRjZjM0NDZj
NC4uYWM1NDdiODI2MzQ3NmYyMTM1NDM0NzZlYzM3MzA2YzRlOGM3YTJlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2subWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KQEAgLTI3LDgg
KzI3LDcgQEAgbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckZldGNoVGFzayBOb3RSZWZDb3VudGVk
IHsKICAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgRGlkUmVj
ZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkK
ICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25z
ZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRS
ZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxl
bmd0aCkKLSAgICBEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVE
YXRhKElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVu
Y29kZWREYXRhTGVuZ3RoKQogICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlIGRhdGEpCiAgICAgRGlkRmluaXNoKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Vu
Y29kZXIuaAppbmRleCAxM2YzYzQzZTQxN2E2NDQ0OWM5MDJiMmI2Mzg2Nzk2MWUyOWQ1MzE3Li4z
Njc4ZDRmYWUyOTE1MmQ5OTBmNGQzYTRmMGI3ZTBhZjZjZjc0NzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRW5jb2Rlci5oCkBAIC05NSwxMiArOTUsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IHJl
bGVhc2VBdHRhY2htZW50cygpOworICAgIHZvaWQgcmVzZXJ2ZShzaXplX3QpOwogCiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNJUENFbmNvZGVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IHJlc2VydmUoc2l6ZV90KTsKLQogICAgIHVpbnQ4X3QqIGdyb3coc2l6ZV90IGFsaWdubWVudCwg
c2l6ZV90KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3Rk
Ojppc19lbnVtPEU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA0NWM1MmEzNTRhZWIxMjI1MjUxMGQ4MjY4Y2JkN2E1
OTE0NTkzOTJmLi43MDZjM2I3NWRkYzNlYmVjM2I3MjFjNjk1MDc5NmQzNTNkYjJjZWVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oCkBAIC05Niw2ICs5Niwx
MiBAQCBzdHJ1Y3QgQ29kaW5nVHlwZSB7CiAgICAgdHlwZWRlZiBzdGQ6OnJlbW92ZV9jb25zdF90
PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+PiBUeXBlOwogfTsKIAorY2xhc3MgRGF0YVJlZmVy
ZW5jZTsKK2NsYXNzIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBDb2RpbmdUeXBlPGNvbnN0IExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Um
PiB7CisgICAgdXNpbmcgVHlwZSA9IERhdGFSZWZlcmVuY2U7Cit9OworCiB0ZW1wbGF0ZTx0eXBl
bmFtZS4uLiBUcz4KIHN0cnVjdCBDb2RpbmdUeXBlPHN0ZDo6dHVwbGU8VHMuLi4+PiB7CiAgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPHR5cGVuYW1lIENvZGluZ1R5cGU8VHM+OjpUeXBlLi4uPiBUeXBl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTGVnYWN5U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTGVnYWN5U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZWFmYzU2NmM0YjNkNGNhODE1
YzVmZTI4OTI0ZjkxMmFjM2YxZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9MZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBFbmNvZGVyOwor
CitjbGFzcyBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsKK3B1YmxpYzoKKyAgICBM
ZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKCkgPSBkZWZhdWx0OworCisgICAgTGVnYWN5
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGRh
dGEpCisgICAgICAgIDogbV9idWZmZXJPckRhdGEoV1RGTW92ZShkYXRhKSkgeyB9CisKKyAgICBM
ZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IERhdGFSZWZlcmVuY2UmIGRhdGEp
CisgICAgICAgIDogbV9idWZmZXJPckRhdGEoZGF0YSkgeyB9CisKKyAgICBMZWdhY3lTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEp
CisgICAgICAgIDogbV9idWZmZXJPckRhdGEoZGF0YSkgeyB9CisKKyAgICBMZWdhY3lTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0YSkKKyAg
ICAgICAgOiBtX2J1ZmZlck9yRGF0YShkYXRhKSB7IH0KKworICAgIExlZ2FjeVNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCisgICAgICAg
IDogbV9idWZmZXJPckRhdGEoRGF0YVJlZmVyZW5jZShkYXRhLCBzaXplKSkgeyB9CisKKyAgICB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgV1RGOjpz
d2l0Y2hPbihtX2J1ZmZlck9yRGF0YSwgWyZlbmNvZGVyXShhdXRvJiBidWZmZXJPckRhdGEpIHsK
KyAgICAgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyT3JEYXRhOworICAgICAgICB9KTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgVmFyaWFudDxTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLCBEYXRh
UmVmZXJlbmNlPiBtX2J1ZmZlck9yRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWRjZTY1NGJmNGE3OTE2OTg0MDhkY2ExZDhhNmUyOTk2
MjhkNGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgorCituYW1lc3BhY2UgSVBDIHsKKwordm9pZCBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICB1aW50NjRfdCBi
dWZmZXJTaXplID0gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgpIDogMDsKKyAgICBlbmNvZGVy
LnJlc2VydmUoc2l6ZW9mKGJ1ZmZlclNpemUpICsgYnVmZmVyU2l6ZSk7CisgICAgZW5jb2RlciA8
PCBidWZmZXJTaXplOworICAgIGlmICghYnVmZmVyU2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAg
IGZvciAoYXV0byYgc2VnbWVudCA6ICptX2J1ZmZlcikKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVG
aXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc2VnbWVudC5z
ZWdtZW50LT5kYXRhKCkpLCBzZWdtZW50LnNlZ21lbnQtPnNpemUoKSwgMSk7Cit9CisKK09wdGlv
bmFsPFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShkYXRhKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGRhdGEuc2l6ZSgpKQorICAgICAgICBidWZmZXIgPSBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOwor
ICAgIHJldHVybiB7IFdURk1vdmUoYnVmZmVyKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuaAppbmRleCAyY2ZjN2ZhYzgxMThiZWJkMTg1NTNhYzIyYTFkODVkN2RmMjgwYWYw
Li5mMDNmYzhlZjUyY2I0MjRjNWQ2MDI1ZTY3YzcyZTAwOGJmZTA5MWMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI1LDExICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKIG5hbWVz
cGFjZSBJUEMgewogCitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKKwogY2xhc3MgU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSB7CiBwdWJsaWM6CiAgICAgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDIyICs1MCwxMSBAQCBwdWJsaWM6CiAgICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5zaXplKCkgOiAw
OyB9CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZl
ci0+aXNFbXB0eSgpIDogdHJ1ZTsgfQogCi0gICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKLSAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgbV9idWZmZXI7Ci0gICAgfQotCi0g
ICAgc3RhdGljIE9wdGlvbmFsPFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQotICAgIHsKLSAgICAgICAgT3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4+IGJ1ZmZlcjsKLSAgICAgICAgZGVjb2RlciA+PiBidWZmZXI7Ci0gICAgICAg
IGlmICghYnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAg
cmV0dXJuIHsgV1RGTW92ZSgqYnVmZmVyKSB9OwotICAgIH0KKyAgICB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBPcHRpb25hbDxTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAg
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwogfTsKIAotfQorfSAvLyBu
YW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCBlOWRhZTllNTNjNTAyZDdjZjhjNzQ0YjFhOWFmNWJkNWE0YjI3MWNiLi42YWU2OTFkN2E5NTEy
NTRjZjZiMzUzZTE3MmY4MTExYjUzYWVjM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTU3Niw3ICs1NzYsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0
eXBlKToKICAgICBoZWFkZXJfaW5mb3NfYW5kX3R5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVy
cyh0eXBlKQogCiAgICAgc3BlY2lhbF9jYXNlcyA9IHsKLSAgICAgICAgJ0lQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSc6IFsnIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCInLCAnIkRh
dGFSZWZlcmVuY2UuaCInXSwKICAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNl
bmRSaWdodC5oPiddLAogICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKICAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsn
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYWQ3ODJj
MmU2MmY3MmY3ZWVhODVjMzFiMDBmN2JhMjA5ZjIyYjQ5NS4uZDVmMzczYWVkODJhYWJkOTM2NWYy
NDNmNjUwNDczMzE2MmI1YWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xNDAsNiArMTQwLDcgQEAgUGxh
dGZvcm0vSVBDL0RlY29kZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0VuY29kZXIuY3Bw
IEBuby11bmlmeQogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgQG5vLXVuaWZ5
CiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHAgQG5vLXVuaWZ5CitQbGF0Zm9ybS9JUEMv
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvU3Ry
aW5nUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkKIAogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9s
bGVyUHJveHkuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggM2FiYTUzN2VmNDZiNmEyNWFjY2JmOTYxZTFiMDU1OWY2MGMyY2ZjMi4uYjdj
ODk4OGE4YTU1ZTYzY2Q4NDQzZDQyOTJiNjBhMmE3NDBhMWYzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OSw3ICs1OSw2IEBACiAjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIKLSNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRy
YXdpbmdBcmVhTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCkBAIC02
Nyw2ICs2Niw3IEBACiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJG
cmFtZUluZm9EYXRhLmgiCiAjaW5jbHVkZSAiTGVnYWN5R2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9hZFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50LmgiCkBAIC04Niw3ICs4Niw2IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxl
ci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU2FmZUJy
b3dzaW5nV2FybmluZy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTcwNzQsMTMgKzcw
NzMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZvaWRDYWxsYmFjayhDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRhdGFDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2Us
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFj
a3MudGFrZTxEYXRhQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJu
VmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YVJlZmVyZW5jZS5kYXRhKCkpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSkucHRyKCkpOworICAg
IGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVh
dGUoZGF0YVJlZmVyZW5jZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpib29sQ2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKQEAgLTkzMjQsNyArOTMyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpn
ZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiBpY29uLCBDYWxs
YmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5pc2hlZExvYWRpbmdJY29u
KENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiBkYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmlzaGVkTG9hZGluZ0ljb24oQ2FsbGJh
Y2tJRCBjYWxsYmFja0lELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAg
ZGF0YUNhbGxiYWNrKGRhdGEsIGNhbGxiYWNrSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAwZTY1NDZiODQ5ZjI4NTYzM2FiNTM5MWIxYzBiNzAxZTEyOTIy
MTRlLi40OTcxYTE3MDY2NTkzZjdiNmFmNzJlNTUyM2NiM2NlNTk4MmRjZjEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjA2LDYgKzIwNiw3IEBAIGVudW0gY2xh
c3MgSW5zcGVjdG9yVGFyZ2V0VHlwZSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewor
Y2xhc3MgRGF0YVJlZmVyZW5jZTsKIGNsYXNzIERlY29kZXI7CiBjbGFzcyBGb3JtRGF0YVJlZmVy
ZW5jZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CkBAIC0zMDQsNyArMzA1LDYg
QEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhOwogY2xhc3Mg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2U7CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFZpZXdTbmFwc2hvdDsKIGNsYXNz
IFZpc2l0ZWRMaW5rU3RvcmU7CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKIAogICAgIHZvaWQgZ2V0TG9hZERlY2lzaW9u
Rm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIFdlYktpdDo6Q2FsbGJhY2tJRCk7Ci0g
ICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJY29uKFdlYktpdDo6Q2FsbGJhY2tJRCwgY29uc3QgSVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJ
Y29uKFdlYktpdDo6Q2FsbGJhY2tJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKICAg
ICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKQEAgLTIxMDQsNyArMjEwNCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5k
bGVkKTsKIAogICAgIHZvaWQgdm9pZENhbGxiYWNrKENhbGxiYWNrSUQpOwotICAgIHZvaWQgZGF0
YUNhbGxiYWNrKGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYsIENhbGxiYWNr
SUQpOworICAgIHZvaWQgZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENh
bGxiYWNrSUQpOwogICAgIHZvaWQgaW1hZ2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgYm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0
LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIENh
bGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGY0NTFhYjk4ODU0MDU0ZGUzYmE1OTdjOWIzNWFjYzBmNGRiYWNhMjMu
LmU1OTY4MzY1NDM2Y2NiM2Q4NjJjZjdiOWIyMTY2ZmJjNDcxZmFiNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE1Nyw3ICsx
NTcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBDYWxsYmFjayBtZXNz
YWdlcwogICAgIFZvaWRDYWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAg
ICBEYXRhQ2FsbGJhY2soSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERhdGFDYWxsYmFjayhJUEM6Okxl
Z2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgSW1hZ2VDYWxsYmFjayhXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGJpdG1hcEhhbmRsZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAg
ICAgU3RyaW5nQ2FsbGJhY2soU3RyaW5nIHJlc3VsdFN0cmluZywgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAgICAgQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKQEAgLTUyMiw3ICs1MjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKICAgICBHZXRMb2FkRGVj
aXNpb25Gb3JJY29uKHN0cnVjdCBXZWJDb3JlOjpMaW5rSWNvbiBpY29uLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKLSAgICBGaW5pc2hlZExvYWRpbmdJY29uKFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lELCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSk7Cisg
ICAgRmluaXNoZWRMb2FkaW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCwgSVBD
OjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggYWVhNzZlMjdkZWFhMGY3ZjIxYzM0
MWM4ZmNmNzcyYzI2MGQyNDU5ZS4uODkzODI3MjU3NjhiYmNiNzYyYjYxYTZlYTA0NDA4MWUwYTJj
OTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFz
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAK
QEAgLTI3LDggKzI3LDcgQEAKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgiCiAKICNpbmNs
dWRlICJBUElGcmFtZUluZm8uaCIKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWJmNjNiMzAzOTUyODAyZTA5MGJkYzZmMWIwOThhNDBlN2JiNWFhMC4uYTMwNDA0MjI5MzBiMTdk
YTNkMTQ1MjYyNzg3MDg4NmNhMjlkMWNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDYsNiArNzQ2LDggQEAKIAkJMkRDMThGQjAy
MTg5MTI2NDAwMjVBODhEIC8qIFBlbmNpbEtpdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMThGQUYyMTg5MTI2NDAwMjVBODhEIC8qIFBlbmNp
bEtpdFNQSS5oICovOyB9OwogCQkyREMxOEZCMzIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5
ZXJUcmVlVmlld3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEQzE4RkIxMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oICov
OyB9OwogCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3Mu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZC
MjIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gKi87IH07CisJCTJE
QzE4RkVCRjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4MDAxRDkw
REREMTVGQzY5OTFBOSAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLzsgfTsKKwkJ
MkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3IC8qIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4
ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgg
Ki87IH07CiAJCTJEQzZEOUMzMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJv
dmlkZXJSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRl
clJlZ2lzdHJ5LmggKi87IH07CiAJCTJERDEyQTA4MUE4MTc3RjMwMDJDNzRFNiAvKiBXS1BhZ2VS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkREMTJBMDcxQTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMkRENDVBREUxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURl
ZmVycmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REQ0NUFEQzFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIuaCAqLzsg
fTsKQEAgLTMxNTAsNiArMzE1Miw4IEBACiAJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBX
S01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZUdlc3R1cmVS
ZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQjk0Mjk4MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01v
dXNlR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREI5NjA1MjIzOTg4NkI5MDAxMDI3OTEg
LyogY29tLmFwcGxlLldlYktpdC5HUFUuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5HUFUuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQzE4MDAxRDkwREREMTVGQzY5OTFBOSAv
KiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogTGVnYWN5U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
ZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEQzE4RkFCMjE4OTEwNDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRHJhd2luZ1ZpZXcuaDsgcGF0aCA9IGlvcy9X
S0RyYXdpbmdWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzE4RkFDMjE4
OTEwNDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV0tEcmF3aW5nVmlldy5tbTsgcGF0aCA9IGlvcy9XS0RyYXdpbmdW
aWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREMxOEZBRjIxODkxMjY0MDAy
NUE4OEQgLyogUGVuY2lsS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBlbmNpbEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQyMiwxMiAr
NjQyNiwxNCBAQAogCQkJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVy
ZW5jZS5oICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdl
LmggKi8sCiAJCQkJMUM5QUYzNjEyNDEzNEQyMzAwRDNFQzAyIC8qIEltYWdlRGF0YVJlZmVyZW5j
ZS5oICovLAorCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBMZWdhY3lTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJMUFDNEM4MjgxNkI4NzZBOTAwNjlEQ0NEIC8qIE1l
c3NhZ2VGbGFncy5oICovLAogCQkJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdl
UmVjZWl2ZXIuaCAqLywKIAkJCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCAqLywKIAkJCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2Fn
ZVJlY2VpdmVyTWFwLmggKi8sCiAJCQkJMUFBQjAzNzcxODVBN0M2QTAwRURGNTAxIC8qIE1lc3Nh
Z2VTZW5kZXIuY3BwICovLAogCQkJCTFBQUIwMzc4MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdl
U2VuZGVyLmggKi8sCisJCQkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UuY3BwICovLAogCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJMUFFMDBENjkxODMyN0MxMjAwMDg3
REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMUFFMDBENkExODMyN0MxMjAwMDg3
REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5oICovLApAQCAtMTA4OTIsNiArMTA4OTgsNyBAQAogCQkJ
CTI5QUQzMDkzMTY0QjRDNUQwMDcyREVBOSAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk4NEY1N0QxNjRCOTE1RjAwNEJDMEM2IC8qIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMURDMzQwMTk2MzQ2RDcwMEZGNzA1OSAvKiBMZWdhY3lTZXNzaW9uU3RhdGVDb2Rpbmcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBMZWdhY3lT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFCMjI2NDFF
MzcxQkE2MDA0RjczNjMgLyogTGliV2ViUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMDc1QjQxREU4NUY1ODAwMzlFQzY5IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTI4NDEsNiArMTI4NDgsNyBAQAogCQkJCUUxOEU2OTE3MTY5
QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNG
RCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMThGRUJGMzM3
Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTFBREFGQjYyMzY4RTZBODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVD
MTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2ODkzYWYwYjRiNDMyNzE4NGZkZTU2NGUy
NjAwNzBmYWM3M2U0YzYuLmVkMWU2MDI3MWEzYmYzNjIzOGRmOGY3M2FmYTQ1Zjc5ODJhYzQ4MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTE5MSw0NyArMTkxLDI1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Ym9vCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFdURk1v
dmUocG9saWN5RGVjaXNpb25Db21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVTaGFyZWRC
dWZmZXIgb2Ygc2l6ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51
cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBu
b3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKLQotICAg
IGlmIChVTkxJS0VMWShtX2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9jb3Jl
TG9hZGVyLT5pZGVudGlmaWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1
ZmZlcihXVEZNb3ZlKGRhdGEpLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBwcm9jZXNzUmVjZWl2ZWREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKLX0K
LQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJl
bmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBMT0coTmV0d29y
aywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6
ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmco
KS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNz
aW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRh
IHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmIChVTkxJS0VM
WShtX2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9jb3JlTG9hZGVyLT5pZGVu
dGlmaWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcih7IFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkgfSwgZW5j
b2RlZERhdGFMZW5ndGgpOworICAgICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIG1faW50ZXJjZXB0Q29udHJv
bGxlci5kZWZlcihtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBlbmNvZGVkRGF0
YUxlbmd0aF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChtX2NvcmVMb2FkZXIpCisgICAg
ICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoeyBidWZmZXItPmRhdGFBc1VJbnQ4UHRyKCksIGJ1
ZmZlci0+c2l6ZSgpIH0sIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICAgICAgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgcHJvY2Vzc1JlY2VpdmVkRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0
aCk7Ci19CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVm
ZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpCi17Ci0gICAgbV9pbnRlcmNlcHRDb250cm9sbGVyLmRlZmVyKG1fY29yZUxv
YWRlci0+aWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBkYXRhID0gV1RGTW92ZShkYXRhKSwgZW5jb2RlZERhdGFMZW5ndGhdKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmIChtX2NvcmVMb2FkZXIpCi0gICAgICAgICAgICBkaWRSZWNlaXZlU2hhcmVkQnVm
ZmVyKFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB9KTsKLX0KLQotdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6cHJvY2Vzc1JlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3Qgc2l6ZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLXsKLSAgICBpZiAoIW1f
bnVtQnl0ZXNSZWNlaXZlZCkgeworICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQogICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZp
bmcgZGF0YSIpOwotICAgIH0KLSAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gc2l6ZTsKKyAgICBt
X251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKLSAgICBtX2NvcmVMb2FkZXItPmRp
ZFJlY2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5
dGVzKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmlu
aXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRy
aWNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZGVyLmgKaW5kZXggODQ2YjAwNzI5MjIyYzQzMjE3NzkxODA0ZTc2NjIyODk5N2QwMGMx
OC4uNWFjZTg4Njk5YTA4MTFhYzBhYWJkNzI2NzY5OTk4ZDcyMDQ3MzhhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBA
IC04NCw3ICs4NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCBi
eXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHND
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UmJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hSZXNv
dXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJik7CiAgICAgdm9pZCBk
aWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2
b2lkIGRpZEZhaWxTZXJ2aWNlV29ya2VyTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik7CkBAIC05Myw5ICs5Miw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nQWZ0
ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1
ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCk7Ci0gICAgdm9pZCBwcm9jZXNzUmVjZWl2ZWREYXRhKGNvbnN0IGNoYXIqLCBzaXpl
X3QgbGVuZ3RoLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLQogI2lmIEVOQUJMRShTSEFS
RUFCTEVfUkVTT1VSQ0UpCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVh
YmxlUmVzb3VyY2U6OkhhbmRsZSYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmlu
CmluZGV4IGFiMzliNTk0NmNhY2E4MWY3NWIxODA3NzE0YmY3OWRhNTIzYWEzZDguLjBhZGRmYTc0
MDkxOGVlMmUzOWVmOWVlZDQyZmRhYzBjMzJhM2RlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRTZW5kRGF0YSh1aW50
NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKICAgICBEaWRSZWNl
aXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVk
c0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZlRGF0YShJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBE
aWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRh
LCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQQzo6TGVn
YWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKQogICAgIERpZEZpbmlzaFJlc291cmNlTG9hZChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MgbmV0d29ya0xvYWRNZXRyaWNzKQogICAgIERpZEZhaWxSZXNvdXJjZUxvYWQoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBEaWRGYWlsU2VydmljZVdvcmtlckxvYWQoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5jcHAKaW5kZXggYzgzYTc4YzEzNWFjOTk3NGM1MWViNmVjODlhOWU5ZjUxNjMzOTYyMC4uZjk3
Y2E0NmVlNjM3MmRhZTgxYjE2ODBkZmQ3ZWZmZmE0ZDUxYmYzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTI4LDExICsyOCwxMCBAQAogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJy
b3JzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CkBAIC04NSw3ICs4NCw3
IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEo
UmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZFJlY2VpdmVTaGFyZWRCdWZmZXIgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7
IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1f
ZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRh
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYjU2NTcxYmFiYjhlYmQ4OTk3
YTgxZmU5ZTNhNmNiNTFlNTMxOTA3YS4uMGUyMGM4OTkzNGI5Y2RiNDFjNDNjMDE3MzUxMGI1NDk1
MDg5YmRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yNyw3ICsyNyw2
IEBACiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uTWFuYWdlci5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkZpbmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
Rm9ybURhdGFSZWZlcmVuY2UuaCIKQEAgLTM1LDEzICszNCwxMyBAQAogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCIKKyNpbmNsdWRl
ICJMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2Fz
dC5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZGY0ZTg3ZDg0ZDY2NWNh
ODgyMTllNTJlMmZmOGNlNWViYmQ1MjA0NS4uNDk5YzM1N2FiZTJhY2UxMzEyMDk0NDYxMTY3Zjc1
MjMyMzMxOTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVk
ZSAiQVBJR2VvbWV0cnkuaCIKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
RHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKQEAgLTQzLDYgKzQyLDcgQEAKICNpbmNsdWRlICJJ
bmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5o
IgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIKKyNpbmNsdWRlICJMZWdh
Y3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
QEAgLTYxLDcgKzYxLDYgQEAKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJT
ZXNzaW9uU3RhdGVDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIlZpZXdHZXN0dXJlR2VvbWV0
cnlDb2xsZWN0b3IuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oIgpA
QCAtMzU2NiwxMCArMzU2NSwxMCBAQCB2b2lkIFdlYlBhZ2U6OmdldFNlbGVjdGlvbkFzV2ViQXJj
aGl2ZURhdGEoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgICAgICBkYXRhID0gTGVnYWN5V2Vi
QXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbihmcmFtZSktPnJhd0RhdGFSZXByZXNlbnRhdGlv
bigpOwogI2VuZGlmCiAKLSAgICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJl
ZmVyZW5jZTsKKyAgICBJUEM6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJl
ZmVyZW5jZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoZGF0YSkKLSAgICAgICAgZGF0
YVJlZmVyZW5jZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZ2V0KCkpOworICAgICAgICBk
YXRhUmVmZXJlbmNlID0geyBDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KENGRGF0YUdldExlbmd0aChkYXRhLmdldCgpKSkgfTsKICNlbmRpZgogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNh
bGxiYWNrSUQpKTsKIH0KQEAgLTM2NDcsMTAgKzM2NDYsMTAgQEAgdm9pZCBXZWJQYWdlOjpnZXRX
ZWJBcmNoaXZlT2ZGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxs
YmFja0kKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAjZW5kaWYKIAotICAgIElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOworICAgIElQQzo6TGVnYWN5U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGlmIChkYXRhKQotICAgICAgICBkYXRhUmVmZXJlbmNlID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoZGF0YS5nZXQoKSk7CisgICAgICAgIGRhdGFSZWZlcmVuY2UgPSB7IENGRGF0YUdldEJ5
dGVQdHIoZGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKGRh
dGEuZ2V0KCkpKSB9OwogI2VuZGlmCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
YXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtNTAyOSw3ICs1
MDI4LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8KIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRh
YmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQs
IHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBTaGFyZWRCdWZmZXI6OmNyZWF0ZShwZGZQ
YWdlRGF0YS5nZXQoKSkgfSwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQo
KSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRhLmdldCgp
KSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1w
bChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVp
bnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+
JiBwZGZQYWdlRGF0YSkKQEAgLTY3MTUsMTIgKzY3MTQsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cmxT
Y2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1
aW50NjQKICAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHRhc2tJZGVudGlmaWVy
LCByZXNwb25zZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVE
YXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwg
Y29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBXZWJQYWdl
Ojp1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEp
CiB7CiAgICAgYXV0byogaGFuZGxlciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclBy
b3h5TWFwLmdldChoYW5kbGVySWRlbnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwogCi0g
ICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUo
KSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGRhdGEuZGF0YSgpKSk7CisgICAg
aGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUoKSwg
ZGF0YS5kYXRhKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRDb21wbGV0
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtNjkyNiw3ICs2OTI1LDcgQEAgdm9pZCBXZWJQ
YWdlOjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8
dWludDY0X3Q+JiYgZmkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxs
YmFjayhjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0
dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBm
aWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURh
dGEsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVu
dEF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4m
JiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxl
TmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byBhdHRhY2htZW50ID0gYXR0YWNobWVu
dEVsZW1lbnRXaXRoSWRlbnRpZmllcihpZGVudGlmaWVyKSkgewogICAgICAgICBhdHRhY2htZW50
LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDY0OGFkYWJhNjFmZTIwOTNiZTlkNzU0ODUwNDYyODcyZmJj
MmFmNzguLjIzMjk5MGFkODE5YWExNzg0OTQxZjc3MzdiMDJhNzhiOTk1NjdiZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Niw5ICsxNTYsOSBA
QCBjbGFzcyBBcnJheTsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xh
c3MgRGF0YVJlZmVyZW5jZTsKIGNsYXNzIERlY29kZXI7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5j
ZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTIzMCw3ICsyMzAsNiBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRHJhd2lu
Z0FyZWE7CiBjbGFzcyBEb3dubG9hZElEOwogY2xhc3MgRmluZENvbnRyb2xsZXI7CkBAIC0xMjI1
LDcgKzEyMjQsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKICAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBP
cHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCB1cGRhdGVBdHRh
Y2htZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2
NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGVuY2xvc2lu
Z0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50QXR0cmli
dXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVT
aXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCk7
CiAgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50SWNvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBxbFRodW1ibmFpbEhhbmRsZSk7CiAjZW5k
aWYKIApAQCAtMTcyOCw3ICsxNzI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXJsU2NoZW1l
VGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbih1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVS
ZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVybFNjaGVt
ZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOwor
ICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVu
dGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
Jik7CiAgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFuZGxlcklk
ZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CiAKICAgICB2b2lkIHNldElzVGFraW5nU25hcHNob3RzRm9yQXBwbGljYXRpb25T
dXNwZW5zaW9uKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNTU4NjE0Y2U5YjlkMTBkZDZjZDFlNTYyN2Ey
Y2YzYzBiMTllZmM2NC4uYWZhOTcyNTlhNzgwNGM1MTA0OGNlZjdhZDY1OGZkYzEwNmJmNjI1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC01NTQsMTQgKzU1NCwxNCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
CiAgICAgVVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbih1aW50NjRfdCBoYW5kbGVy
SWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQogICAgIFVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlKQotICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSBkYXRhKQorICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBo
YW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIElQQzo6TGVnYWN5U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFVSTFNjaGVtZVRhc2tEaWRDb21wbGV0
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAKICAgICBTZXRJc1N1c3BlbmRlZChib29sIHN1
c3BlbmRlZCkKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgSW5zZXJ0QXR0
YWNobWVudChTdHJpbmcgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBT
dHJpbmcgZmlsZU5hbWUsIFN0cmluZyBjb250ZW50VHlwZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCi0gICAgVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoU3RyaW5nIGlkZW50aWZp
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJp
bmcgZmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBlbmNsb3NpbmdJbWFn
ZURhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFVwZGF0ZUF0dGFjaG1l
bnRBdHRyaWJ1dGVzKFN0cmluZyBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNp
emUsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVOYW1lLCBJUEM6OkxlZ2FjeVNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZW5jbG9zaW5nSW1hZ2VEYXRhLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKICAgICBVcGRhdGVBdHRhY2htZW50SWNvbihTdHJpbmcgaWRlbnRpZmll
ciwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBxbFRodW1ibmFpbEhhbmRsZSkKICNl
bmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406832</attachid>
            <date>2020-08-19 03:04:45 -0700</date>
            <delta_ts>2020-08-19 14:26:40 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-215232-20200819030445.patch</filename>
            <type>text/plain</type>
            <size>51527</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLjk0ZTBkMDI2MjNlYjk2MGVkNDljM2ZlZmE4NjRhNGM2
MDM3MDMxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMjAtMDgtMTggIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAx
Ljl4IG1vcmUgQ1BVIHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29k
aW5nIGR1cmluZyBOZXRmbGl4IHBsYXliYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2NjM3
OTIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBy
aW9yIHRvIHIyNTc2NjcsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSB3YXMgYSBjb252
ZW5pZW5jZSB0eXBlIHVzZWQgZm9yIHBhc3NpbmcKKyAgICAgICAgU2hhcmVkQnVmZmVyIGRhdGEg
YXMgYW4gYXJndW1lbnQgdG8gYW4gSVBDIG1lc3NhZ2UuIEl0IGNvc3QgdGhlIHNhbWUgdG8gZW5j
b2RlIGFzIGFuCisgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSAoYm90aCBjb3B5IGRhdGEgaW50
byB0aGUgRW5jb2RlcikgYnV0IGF2b2lkZWQgdGhlIHNlbmRlciBuZWVkaW5nIHRvCisgICAgICAg
IGZpcnN0IGNvbWJpbmUgU2hhcmVkQnVmZmVyIGRhdGEgc2VnbWVudHMgdG8gcHJvZHVjZSBhIGNv
bnRpZ3VvdXMgYnVmZmVyIGZvciBlbmNvZGluZy4KKyAgICAgICAgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSBjb3N0IHRoZSBzYW1lIHRvIGRlY29kZSBhcyBhIERhdGFSZWZlcmVuY2UgYXMgd2Vs
bCBiZWNhdXNlIHRoZXkKKyAgICAgICAgaGFkIGNvbXBhdGlibGUgYXJndW1lbnQgY29kZXJzIChh
bmQgaW4gZmFjdCBtZXNzYWdlIHJlY2VpdmVycyBkZWNvZGVkIHRoZSBkYXRhIGFzIGFuCisgICAg
ICAgIElQQzo6RGF0YVJlZmVyZW5jZSkuCisKKyAgICAgICAgSW4gcjI1NzY2NywgSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGJlY2FtZSBiYWNrZWQgYnkgYSBTaGFyZWRCdWZmZXIgdGhh
dCBlbmNvZGVzCisgICAgICAgIGl0c2VsZiBhcyBhIGhhbmRsZSB0byBTaGFyZWRNZW1vcnkgcmF0
aGVyIHRoYW4gYXMgYSBjb3B5IHRvIHRoZSBFbmNvZGVyIGJ1ZmZlci4gUHJvZmlsZXMgb2YKKyAg
ICAgICAgTmV0ZmxpeCB2aWRlbyBwbGF5YmFjayBvbiBhIE1hY0Jvb2sgUHJvIHNob3cgdGhhdCB0
aGlzIG5ldyBlbmNvZGluZyB0ZWNobmlxdWUgdXNlcyAxLjl4IG1vcmUKKyAgICAgICAgQ1BVIHRp
bWUgdGhhbiB0aGUgdGhlIHByZXZpb3VzIERhdGFSZWZlcmVuY2UtYmFzZWQgdGVjaG5pcXVlLiBS
ZWFzb25zIGZvciB0aGlzIGluY2x1ZGU6CisKKyAgICAgICAgMS4gV2hpbGUgYm90aCB0ZWNobmlx
dWVzIGNvcHkgdGhlIFNoYXJlZEJ1ZmZlciBvbmx5IG9uY2UgZHVyaW5nIGVuY29kaW5nLCB0aGUg
bmV3IHRlY2huaXF1ZQorICAgICAgICAgICBjb21iaW5lcyB0aGUgYnVmZmVyJ3MgZGF0YSBzZWdt
ZW50cyAoYnkgY2FsbGluZyBTaGFyZWRCdWZmZXI6OmRhdGEoKSkgd2hpbGUgdGhlIG9sZAorICAg
ICAgICAgICB0ZWNobmlxdWUgYXZvaWRzIHRoaXMuCisKKyAgICAgICAgMi4gT25jZSBhIFNoYXJl
ZE1lbW9yeSBoYW5kbGUgaXMgZGVjb2RlZCBhbmQgbWFwcGVkLCB0aGUgbmV3IHRlY2huaXF1ZSBj
b3BpZXMgaXRzIG1lbW9yeQorICAgICAgICAgICBpbnRvIGEgU2hhcmVkQnVmZmVyIGZvciB1c2Ug
YnkgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIuIFVubGlrZSB0aGUgb2xkIHRlY2huaXF1ZSB0aGF0Cisg
ICAgICAgICAgIGRlY29kZXMgYXMgYSBwb2ludGVyIGludG8gdGhlIGV4aXN0aW5nIERlY29kZXIg
YnVmZmVyLCB0aGUgbmV3IHRlY2huaXF1ZSBtdXN0IGRlY29kZSBhCisgICAgICAgICAgIGhhbmRs
ZSwgbWFwIGEgU2hhcmVkTWVtb3J5IGFsbG9jYXRpb24sIGNvcHkgaXQgaW50byBhIG5ldyBTaGFy
ZWRCdWZmZXIgb24gdGhlIGhlYXAsIGFuZAorICAgICAgICAgICB0aGVuIGRlc3Ryb3kgdGhlIGhh
bmRsZSBhbmQgU2hhcmVkTWVtb3J5LgorCisgICAgICAgIEZpeCB0aGlzIGJ5IHBhcnRpYWxseSBy
ZXZlcnRpbmcgcjI1NzY2NyB0byBnaXZlIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBp
dHMgb2xkCisgICAgICAgIGVuY29kaW5nIGFuZCBkZWNvZGluZyBiZWhhdmlvciBidXQgaGF2ZSBp
dCBiZSB1c2VkIGFzIHRoZSB0eXBlIGZvciBtZXNzYWdlIHJlY2VpdmVycy4KKyAgICAgICAgSW50
cm9kdWNlZCBJUEM6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZm9yIG1lc3NhZ2Ug
cmVjZWl2ZXJzIHRoYXQgbmVlZCBhbgorICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgaW5zdGVh
ZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YnVmZmVyaW5nVGltZXJG
aXJlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZEJ1ZmZl
cik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmg6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTGVnYWN5U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmguCisgICAgICAgIChJUEM6OkxlZ2Fj
eVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UpOgorICAgICAgICAoSVBDOjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6
OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaDoKKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZW5jb2RlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6
ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkYXRhQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNr
LmNwcDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkZWZlclJlY2VpdmluZ1NoYXJl
ZEJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpw
cm9jZXNzUmVjZWl2ZWREYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkcmF3UGFnZXNUb1BERik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVybFNjaGVt
ZVRhc2tEaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUF0
dGFjaG1lbnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
CiAyMDIwLTA4LTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtNYWNdIFVuaGFuZGxlZCBrZXlEb3duOiBldmVudHMgY2F1c2UgYSBzeXN0ZW0gYmVlcCBpbiBm
dWxsIHNjcmVlbiBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTVjMmIyYmMyZTJlMjk5YWZkNWE1Mjkz
YTQyNDUwYjI2ZTFiNGMyZC4uN2ZlMzlmZDMxYTUzODkzOTVjYjE2YmJiODhiMjIzYmQ5NTQyNTQy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogCi0jaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTGVnYWN5
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyLmgiCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24u
aCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZvLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckZldGNoVGFzay5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIK
ICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKQEAgLTEwNTEsNyArMTA1MCw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZmZXJpbmdUaW1lckZpcmVkKCkKICAgICBpZiAobV9i
dWZmZXJlZERhdGEtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyAqbV9idWZm
ZXJlZERhdGEgfSwgbV9idWZmZXJlZERhdGFFbmNvZGVkRGF0YUxlbmd0aCkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlRGF0YSh7ICptX2J1ZmZlcmVk
RGF0YSB9LCBtX2J1ZmZlcmVkRGF0YUVuY29kZWREYXRhTGVuZ3RoKSk7CiAKICAgICBtX2J1ZmZl
cmVkRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAgbV9idWZmZXJlZERhdGFFbmNv
ZGVkRGF0YUxlbmd0aCA9IDA7CkBAIC0xMDYxLDcgKzEwNjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2VuZEJ1ZmZlcihTaGFyZWRCdWZmZXImIGJ1ZmZlciwgc2l6ZV90IGVuY29k
ZWREYXRhTAogewogICAgIEFTU0VSVCghaXNTeW5jaHJvbm91cygpKTsKIAotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKHsgYnVmZmVy
IH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgYnVmZmVyIH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKaW5kZXggM2ZkYTc1ZjljYzdk
NjY1Yzg0NzhiOWNlMWI5MGZhNzNhZmM2YjgyZC4uNTEzODllZTNlMDhkN2UxMzEwMTIzMTUxYTIz
YjM5YTFlMDc0NjNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cApAQCAtMjksMTIgKzI5LDExIEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJGb3JtRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKQEAgLTE1OSwxNSArMTU4LDYg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDYKICAgICBzZW5kVG9DbGllbnQoTWVzc2FnZXM6Oldl
YlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3Ro
IH0pOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVTaGFyZWRC
dWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90
IGVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIGlmIChtX2lzRG9uZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgQVNTRVJUKCFtX3RpbWVvdXRUaW1lci5pc0FjdGl2ZSgpKTsKLSAgICBzZW5kVG9D
bGllbnQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlU2hhcmVkQnVmZmVy
IHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7Ci19Ci0KIHZvaWQgU2VydmljZVdvcmtlckZl
dGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
IGZvcm1EYXRhKQogewogICAgIGlmIChtX2lzRG9uZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5oCmluZGV4IDk1ZWQ3NTk2YThiMTFhZDliZGU4YzliMmUyZjA1YWFmNTY3ZjYw
YzcuLjM5ZWU5NDA0MGVjMzk1ZjA5MzI4MmNiZmJhMmZmYmI5MzQxYzZmMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtODAsNyArODAsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKGNv
bnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFM
ZW5ndGgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmKTsKICAgICB2b2lkIGRpZEZpbmlzaCgpOwogICAgIHZvaWQgZGlkRmFpbChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCmluZGV4IDQyNzRhZGMxNjYxODc0MGFlODg4ZjIx
MWRmNDkyMjM0Y2YzNDQ2YzQuLmFjNTQ3YjgyNjM0NzZmMjEzNTQzNDc2ZWMzNzMwNmM0ZThjN2Ey
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3Nh
Z2VzLmluCkBAIC0yNyw4ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2sgTm90UmVmQ291bnRlZCB7CiAgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yKQogICAgIERpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1l
c3NhZ2UpCi0gICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0
X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
KyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
ZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKICAgICBEaWRSZWNlaXZlRm9ybURhdGEo
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZEZpbmlzaCgpCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKaW5kZXggMTNmM2M0M2U0MTdhNjQ0NDljOTAyYjJiNjM4
Njc5NjFlMjlkNTMxNy4uMzY3OGQ0ZmFlMjkxNTJkOTkwZjRkM2E0ZjBiN2UwYWY2Y2Y3NDcyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaApAQCAtOTUsMTIgKzk1LDExIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgYWRkQXR0YWNobWVudChBdHRhY2htZW50JiYpOwogICAgIFZlY3Rv
cjxBdHRhY2htZW50PiByZWxlYXNlQXR0YWNobWVudHMoKTsKKyAgICB2b2lkIHJlc2VydmUoc2l6
ZV90KTsKIAogICAgIHN0YXRpYyBjb25zdCBib29sIGlzSVBDRW5jb2RlciA9IHRydWU7CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCByZXNlcnZlKHNpemVfdCk7Ci0KICAgICB1aW50OF90KiBncm93KHNp
emVfdCBhbGlnbm1lbnQsIHNpemVfdCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxFPjo6dmFsdWU+KiA9IG51bGxwdHI+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKaW5kZXggNDVjNTJhMzU0YWViMTIy
NTI1MTBkODI2OGNiZDdhNTkxNDU5MzkyZi4uNzA2YzNiNzVkZGMzZWJlYzNiNzIxYzY5NTA3OTZk
MzUzZGIyY2VlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2Uu
aApAQCAtOTYsNiArOTYsMTIgQEAgc3RydWN0IENvZGluZ1R5cGUgewogICAgIHR5cGVkZWYgc3Rk
OjpyZW1vdmVfY29uc3RfdDxzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxUPj4gVHlwZTsKIH07CiAK
K2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29kaW5nVHlwZTxjb25zdCBMZWdhY3lTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJj4geworICAgIHVzaW5nIFR5cGUgPSBEYXRhUmVmZXJlbmNlOworfTsK
KwogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHM+CiBzdHJ1Y3QgQ29kaW5nVHlwZTxzdGQ6OnR1cGxl
PFRzLi4uPj4gewogICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx0eXBlbmFtZSBDb2RpbmdUeXBlPFRz
Pjo6VHlwZS4uLj4gVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0xlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0xlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGUz
MTEyMWU4YzFlM2JhM2QwNjVhMDQ4NmY1NTllMjRlZjI2NWY5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgSVBDIHsKKwor
Y2xhc3MgRW5jb2RlcjsKKworY2xhc3MgTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSB7
CitwdWJsaWM6CisgICAgTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSgpID0gZGVmYXVs
dDsKKworICAgIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UoU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZSBidWZmZXIpCisgICAgICAgIDogbV9idWZmZXJPckRhdGEoV1RGTW92ZShidWZm
ZXIpKSB7IH0KKyAgICBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyT3JEYXRhKFdURk1v
dmUoYnVmZmVyKSkgeyB9CisgICAgTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShjb25z
dCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImIGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlck9yRGF0
YShidWZmZXIpIHsgfQorCisgICAgTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShEYXRh
UmVmZXJlbmNlIGRhdGEpCisgICAgICAgIDogbV9idWZmZXJPckRhdGEoV1RGTW92ZShkYXRhKSkg
eyB9CisgICAgTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShjb25zdCB1aW50OF90KiBk
YXRhLCBzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBtX2J1ZmZlck9yRGF0YShEYXRhUmVmZXJlbmNl
KGRhdGEsIHNpemUpKSB7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBXVEY6OnN3aXRjaE9uKG1fYnVmZmVyT3JEYXRhLCBbJmVuY29k
ZXJdKGF1dG8mIGJ1ZmZlck9yRGF0YSkgeworICAgICAgICAgICAgZW5jb2RlciA8PCBidWZmZXJP
ckRhdGE7CisgICAgICAgIH0pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWYXJpYW50PFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UsIERhdGFSZWZlcmVuY2U+IG1fYnVmZmVyT3JEYXRhOworfTsK
KworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxZGNlNjU0
YmY0YTc5MTY5ODQwOGRjYTFkOGE2ZTI5OTYyOGQ0YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcApAQCAt
MCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisKK25hbWVzcGFjZSBJUEMgewor
Cit2b2lkIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemUgPSBtX2J1ZmZlciA/IG1fYnVmZmVy
LT5zaXplKCkgOiAwOworICAgIGVuY29kZXIucmVzZXJ2ZShzaXplb2YoYnVmZmVyU2l6ZSkgKyBi
dWZmZXJTaXplKTsKKyAgICBlbmNvZGVyIDw8IGJ1ZmZlclNpemU7CisgICAgaWYgKCFidWZmZXJT
aXplKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChhdXRvJiBzZWdtZW50IDogKm1fYnVmZmVy
KQorICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPihzZWdtZW50LnNlZ21lbnQtPmRhdGEoKSksIHNlZ21lbnQuc2VnbWVu
dC0+c2l6ZSgpLCAxKTsKK30KKworT3B0aW9uYWw8U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZT4g
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KGRhdGEpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICBpZiAoZGF0YS5z
aXplKCkpCisgICAgICAgIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRh
dGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgcmV0dXJuIHsgV1RGTW92ZShidWZmZXIpIH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oCmluZGV4IDJjZmM3ZmFjODExOGJl
YmQxODU1M2FjMjJhMWQ4NWQ3ZGYyODBhZjAuLmYwM2ZjOGVmNTJjYjQyNGM1ZDYwMjVlNjdjNzJl
MDA4YmZlMDkxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTEgKzI1LDEzIEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIElQQyB7CiAKK2NsYXNzIERlY29kZXI7Citj
bGFzcyBFbmNvZGVyOworCiBjbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsKIHB1Ymxp
YzoKICAgICBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKCkgPSBkZWZhdWx0OwpAQCAtNDgsMjIg
KzUwLDExIEBAIHB1YmxpYzoKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVm
ZmVyID8gbV9idWZmZXItPnNpemUoKSA6IDA7IH0KICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5pc0VtcHR5KCkgOiB0cnVlOyB9CiAKLSAgICB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgZW5jb2Rl
ciA8PCBtX2J1ZmZlcjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgT3B0aW9uYWw8U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi0gICAgewotICAgICAgICBP
cHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4gYnVmZmVyOwotICAgICAgICBk
ZWNvZGVyID4+IGJ1ZmZlcjsKLSAgICAgICAgaWYgKCFidWZmZXIpCi0gICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgICAgICByZXR1cm4geyBXVEZNb3ZlKCpidWZmZXIpIH07Ci0g
ICAgfQorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIE9wdGlvbmFsPFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGRlY29kZShE
ZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4g
bV9idWZmZXI7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGU5ZGFlOWU1M2M1MDJkN2NmOGM3NDRiMWE5YWY1
YmQ1YTRiMjcxY2IuLjZhZTY5MWQ3YTk1MTI1NGNmNmIzNTNlMTcyZjgxMTFiNTNhZWMzYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNTc2LDcgKzU3Niw2
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZvc19hbmRfdHlw
ZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFsX2Nhc2VzID0g
ewotICAgICAgICAnSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJzogWyciU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oIicsICciRGF0YVJlZmVyZW5jZS5oIiddLAogICAgICAgICAnTWFj
aFNlbmRSaWdodCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdKU0M6Ok1l
c3NhZ2VMZXZlbCc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAogICAgICAg
ICAnSlNDOjpNZXNzYWdlU291cmNlJzogWyc8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+
J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAppbmRleCBhZDc4MmMyZTYyZjcyZjdlZWE4NWMzMWIwMGY3YmEyMDlmMjJi
NDk1Li5kNWYzNzNhZWQ4MmFhYmQ5MzY1ZjI0M2Y2NTA0NzMzMTYyYjVhZTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKQEAgLTE0MCw2ICsxNDAsNyBAQCBQbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAgQG5vLXVuaWZ5
CiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvTWVzc2Fn
ZVJlY2VpdmVyTWFwLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNw
cCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBA
bm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogCiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzYWJhNTM3ZWY0NmI2YTI1YWNj
YmY5NjFlMWIwNTU5ZjYwYzJjZmMyLi5iN2M4OTg4YThhNTVlNjNjZDg0NDNkNDI5MmI2MGEyYTc0
MGExZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU5
LDcgKzU5LDYgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIK
ICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJBdXRoZW50aWNh
dG9yTWFuYWdlci5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3du
bG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHkuaCIKQEAgLTY3LDYgKzY2LDcgQEAKICNpbmNsdWRlICJGb3JtRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJMZWdh
Y3lHbG9iYWxTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOYXRpdmVXZWJHZXN0dXJlRXZlbnQuaCIKQEAgLTg2LDcgKzg2LDYgQEAK
ICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdl
UHJveHkuaCIKICNpbmNsdWRlICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCi0jaW5jbHVkZSAiU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgpAQCAtNzA3NCwxMyArNzA3MywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dm9p
ZENhbGxiYWNrKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrKCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkYXRhQ2FsbGJhY2soY29uc3QgSVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAg
IGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPERhdGFDYWxsYmFjaz4oY2FsbGJhY2tJ
RCk7CiAgICAgaWYgKCFjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FsbGJhY2st
PnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShBUEk6OkRhdGE6OmNyZWF0ZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhUmVmZXJlbmNlLmRhdGEoKSksIGRhdGFSZWZl
cmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhS
ZXR1cm5WYWx1ZShBUEk6OkRhdGE6OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJl
ZmVyZW5jZS5zaXplKCkpLnB0cigpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmJvb2xDYWxs
YmFjayhib29sIHJlc3VsdCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtOTMyNCw3ICs5MzIz
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2Vi
Q29yZTo6TGlua0ljb24mIGljb24sIENhbGxiYWMKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmZpbmlzaGVkTG9hZGluZ0ljb24oQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBjb25zdCBJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZmluaXNoZWRMb2FkaW5nSWNvbihDYWxsYmFja0lEIGNhbGxiYWNrSUQsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSkKIHsKICAgICBkYXRhQ2FsbGJhY2soZGF0YSwgY2FsbGJhY2tJRCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBlNjU0NmI4NDlm
Mjg1NjMzYWI1MzkxYjFjMGI3MDFlMTI5MjIxNGUuLjQ5NzFhMTcwNjY1OTNmN2I2YWY3MmU1NTIz
Y2IzY2U1OTgyZGNmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0yMDYsNiArMjA2LDcgQEAgZW51bSBjbGFzcyBJbnNwZWN0b3JUYXJnZXRUeXBlIDogdWludDhf
dDsKIH0KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwogY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZTsKQEAgLTMwNCw3ICszMDUsNiBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxp
bmdQZXJmb3JtYW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIGNs
YXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBTZWNLZXlQcm94eVN0
b3JlOwotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKIGNsYXNzIFVzZXJEYXRhOwog
Y2xhc3MgVmlld1NuYXBzaG90OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKQEAgLTE1NTMsNyAr
MTU1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwog
CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29u
JiwgV2ViS2l0OjpDYWxsYmFja0lEKTsKLSAgICB2b2lkIGZpbmlzaGVkTG9hZGluZ0ljb24oV2Vi
S2l0OjpDYWxsYmFja0lELCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmKTsK
KyAgICB2b2lkIGZpbmlzaGVkTG9hZGluZ0ljb24oV2ViS2l0OjpDYWxsYmFja0lELCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmKTsKIAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsK
ICAgICB2b2lkIHNldFdpbmRvd0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwpAQCAt
MjEwNCw3ICsyMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVFdmVudCh1aW50
MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQpOwogCiAgICAgdm9pZCB2b2lkQ2FsbGJhY2so
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkYXRhQ2FsbGJhY2soY29uc3QgSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkYXRhQ2FsbGJhY2soY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBpbWFnZUNhbGxi
YWNrKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgQ2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBib29sQ2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgc3RyaW5n
Q2FsbGJhY2soY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQ1MWFiOTg4NTQwNTRk
ZTNiYTU5N2M5YjM1YWNjMGY0ZGJhY2EyMy4uZTU5NjgzNjU0MzZjY2IzZDg2MmNmN2I5YjIxNjZm
YmM0NzFmYWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMTU3LDcgKzE1Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAKICAgICAjIENhbGxiYWNrIG1lc3NhZ2VzCiAgICAgVm9pZENhbGxiYWNrKFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERhdGFDYWxsYmFjayhJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgRGF0YUNhbGxiYWNrKElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBy
ZXN1bHREYXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBJbWFnZUNhbGxi
YWNrKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgYml0bWFwSGFuZGxlLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBTdHJpbmdDYWxsYmFjayhTdHJpbmcgcmVzdWx0
U3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBCb29sQ2FsbGJhY2so
Ym9vbCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtNTIyLDcgKzUy
Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUmVzdG9yZVNjcm9sbFBv
c2l0aW9uKCkKIAogICAgIEdldExvYWREZWNpc2lvbkZvckljb24oc3RydWN0IFdlYkNvcmU6Okxp
bmtJY29uIGljb24sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEZpbmlzaGVk
TG9hZGluZ0ljb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQsIElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSBkYXRhKTsKKyAgICBGaW5pc2hlZExvYWRpbmdJY29uKFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lELCBJUEM6OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UgZGF0YSk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkSGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcApp
bmRleCBhZWE3NmUyN2RlYWEwZjdmMjFjMzQxYzhmY2Y3NzJjMjYwZDI0NTllLi44OTM4MjcyNTc2
OGJiY2I3NjJiNjFhNmVhMDQ0MDgxZTBhMmM5MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcApAQCAtMjcsOCArMjcsNyBAQAogI2luY2x1ZGUgIldl
YlVSTFNjaGVtZVRhc2suaCIKIAogI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5oIgotI2luY2x1ZGUg
IkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYmY2M2IzMDM5NTI4MDJlMDkwYmRjNmYxYjA5OGE0
MGU3YmI1YWEwLi5hMzA0MDQyMjkzMGIxN2RhM2QxNDUyNjI3ODcwODg2Y2EyOWQxY2JjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0
Niw2ICs3NDYsOCBAQAogCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZB
RjIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggKi87IH07CiAJCTJEQzE4RkIzMjE4
QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMThGQjEyMThBNkU5RTAwMjVBODhEIC8q
IFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi87IH07CiAJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4
RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXll
clRyZWVWaWV3cy5tbSAqLzsgfTsKKwkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuY3BwICovOyB9OworCQkyREMxOEZGNkVGMkEzMTMwQzEzMDE3NjcgLyogTGVn
YWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMTg4MUFDQkNBQjVENTdDNUM2RUYwIC8qIExlZ2FjeVNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLzsgfTsKIAkJMkRDNkQ5QzMxOEM0NEE2MTAwNDNC
QUQ0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM2RDlDMTE4QzQ0QTYxMDA0M0JBRDQg
LyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkuaCAqLzsgfTsKIAkJMkREMTJBMDgx
QTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQxMkEwNzFBODE3N0Yz
MDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ0NUFERTFFNUY4OTcyMDA2
QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDQ1QURDMUU1Rjg5NzIwMDZDMzU1RiAvKiBJbnB1
dFZpZXdVcGRhdGVEZWZlcnJlci5oICovOyB9OwpAQCAtMzE1MCw2ICszMTUyLDggQEAKIAkJMkRC
OTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNl
R2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRCOTQy
OTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9X
S01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEQjk2MDUyMjM5ODg2QjkwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQzE4ODFBQ0JDQUI1
RDU3QzVDNkVGMCAvKiBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDMThGQUIyMTg5MTA0ODAwMjVBODhE
IC8qIFdLRHJhd2luZ1ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tE
cmF3aW5nVmlldy5oOyBwYXRoID0gaW9zL1dLRHJhd2luZ1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkRDMThGQUMyMTg5MTA0ODAwMjVBODhEIC8qIFdLRHJhd2luZ1ZpZXcu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0RyYXdpbmdWaWV3
Lm1tOyBwYXRoID0gaW9zL1dLRHJhd2luZ1ZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEQzE4RkFGMjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuY2lsS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02NDIyLDEyICs2NDI2LDE0IEBACiAJCQkJNDE1MUU1QzMxRkJCOTBB
OTAwRTQ3RTJEIC8qIEZvcm1EYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4
RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCAqLywKIAkJCQkxQzlBRjM2MTI0MTM0RDIzMDBE
M0VDMDIgLyogSW1hZ2VEYXRhUmVmZXJlbmNlLmggKi8sCisJCQkJMkRDMTg4MUFDQkNBQjVENTdD
NUM2RUYwIC8qIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQkxQUM0
QzgyODE2Qjg3NkE5MDA2OURDQ0QgLyogTWVzc2FnZUZsYWdzLmggKi8sCiAJCQkJMUEzRUVEMTEx
NjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovLAogCQkJCTFBM0VFRDBDMTYx
QTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAogCQkJCTFBM0VFRDBE
MTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKIAkJCQkxQUFCMDM3
NzE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5jcHAgKi8sCiAJCQkJMUFBQjAzNzgx
ODVBN0M2QTAwRURGNTAxIC8qIE1lc3NhZ2VTZW5kZXIuaCAqLywKKwkJCQkyREMxODAwMUQ5MERE
RDE1RkM2OTkxQTkgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi8sCiAJCQkJNUND
NURCOTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLywK
IAkJCQkxQUUwMEQ2OTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLywK
IAkJCQkxQUUwMEQ2QTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggKi8sCkBA
IC0xMDg5Miw2ICsxMDg5OCw3IEBACiAJCQkJMjlBRDMwOTMxNjRCNEM1RDAwNzJERUE5IC8qIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTg0
RjU3RDE2NEI5MTVGMDA0QkMwQzYgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExREMzNDAxOTYzNDZENzAwRkY3MDU5IC8q
IExlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRDMThGRjZF
RjJBMzEzMEMxMzAxNzY3IC8qIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMUIyMjY0MUUzNzFCQTYwMDRGNzM2MyAvKiBMaWJXZWJSVENOZXR3
b3JrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwNzVCNDFERTg1RjU4MDAzOUVDNjkgLyogTGli
V2ViUlRDUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRkFGNUY4MUUzQzEwMjEwMDFB
RTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjg0MSw2ICsx
Mjg0OCw3IEBACiAJCQkJRTE4RTY5MTcxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFERTdDNkMyMjI3OEYx
RTAwNTMyQjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3
NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlD
MEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
ZjY4OTNhZjBiNGI0MzI3MTg0ZmRlNTY0ZTI2MDA3MGZhYzczZTRjNi4uZWQxZTYwMjcxYTNiZjM2
MjM4ZGY4ZjczYWZhNDVmNzk4MmFjNDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtMTkxLDQ3ICsxOTEs
MjUgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2Vp
dmVSZXNwb25zZShyZXNwb25zZSwgV1RGTW92ZShwb2xpY3lEZWNpc2lvbkNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVTaGFyZWRCdWZm
ZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVk
RGF0YUxlbmd0aCkKLXsKLSAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlciBvZiBzaXplICVsdSBmb3IgJyVzJyIsIGRh
dGEuc2l6ZSgpLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7
Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2Us
ICJOZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRh
dGVkIHRoZSByZXNwb25zZSIpOwotCi0gICAgaWYgKFVOTElLRUxZKG1faW50ZXJjZXB0Q29udHJv
bGxlci5pc0ludGVyY2VwdGluZyhtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkpKSB7Ci0gICAg
ICAgIGRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRh
TGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHByb2Nlc3NSZWNlaXZlZERh
dGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUo
KSwgZW5jb2RlZERhdGFMZW5ndGgpOwotfQotCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRh
TGVuZ3RoKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YSBvZiBzaXplICVsdSBmb3IgJyVzJyIsIGRhdGEuc2l6ZSgpLCBt
X2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJOZXR3b3JrIHBy
b2Nlc3Mgc2hvdWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNw
b25zZSIpOwogCiAgICAgaWYgKFVOTElLRUxZKG1faW50ZXJjZXB0Q29udHJvbGxlci5pc0ludGVy
Y2VwdGluZyhtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkpKSB7Ci0gICAgICAgIGRlZmVyUmVj
ZWl2aW5nU2hhcmVkQnVmZmVyKHsgV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5k
YXRhKCksIGRhdGEuc2l6ZSgpKSB9LCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgICAgIGF1dG8g
YnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsK
KyAgICAgICAgbV9pbnRlcmNlcHRDb250cm9sbGVyLmRlZmVyKG1fY29yZUxvYWRlci0+aWRlbnRp
ZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBidWZmZXIgPSBX
VEZNb3ZlKGJ1ZmZlciksIGVuY29kZWREYXRhTGVuZ3RoXSgpIG11dGFibGUgeworICAgICAgICAg
ICAgaWYgKG1fY29yZUxvYWRlcikKKyAgICAgICAgICAgICAgICBkaWRSZWNlaXZlRGF0YSh7IGJ1
ZmZlci0+ZGF0YUFzVUludDhQdHIoKSwgYnVmZmVyLT5zaXplKCkgfSwgZW5jb2RlZERhdGFMZW5n
dGgpOworICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBwcm9jZXNzUmVj
ZWl2ZWREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0
YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKLX0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGVmZXJSZWNlaXZpbmdTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLXsKLSAgICBtX2ludGVyY2Vw
dENvbnRyb2xsZXIuZGVmZXIobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCBlbmNvZGVk
RGF0YUxlbmd0aF0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKG1fY29yZUxvYWRlcikKLSAgICAg
ICAgICAgIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoV1RGTW92ZShkYXRhKSwgZW5jb2RlZERhdGFM
ZW5ndGgpOwotICAgIH0pOwotfQotCi12b2lkIFdlYlJlc291cmNlTG9hZGVyOjpwcm9jZXNzUmVj
ZWl2ZWREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoKQotewotICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7CisgICAgaWYgKCFt
X251bUJ5dGVzUmVjZWl2ZWQpCiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVEYXRhOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIik7Ci0gICAgfQotICAgIG1fbnVtQnl0
ZXNSZWNlaXZlZCArPSBzaXplOworICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBkYXRhLnNpemUo
KTsKIAotICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEoZGF0YSwgc2l6ZSwgZW5jb2Rl
ZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOworICAgIG1fY29yZUxvYWRlci0+ZGlkUmVj
ZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRh
LnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogfQogCiB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xv
YWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NDZiMDA3MjkyMjJj
NDMyMTc3OTE4MDRlNzY2MjI4OTk3ZDAwYzE4Li41YWNlODg2OTlhMDgxMWFjMGFhYmQ3MjY3Njk5
OThkNzIwNDczOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTg0LDcgKzg0LDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1Rv
QmVTZW50KTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3Ro
KTsKICAgICB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
TG9hZE1ldHJpY3MmKTsKICAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkRmFpbFNlcnZpY2VXb3JrZXJMb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKQEAgLTkzLDkgKzkyLDYgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgc3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0
eVBvbGljeURlbmllZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICB2
b2lkIGRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIHByb2Nlc3NSZWNl
aXZlZERhdGEoY29uc3QgY2hhciosIHNpemVfdCBsZW5ndGgsIGludDY0X3QgZW5jb2RlZERhdGFM
ZW5ndGgpOwotCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJik7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KaW5kZXggYWIzOWI1OTQ2Y2FjYTgxZjc1YjE4MDc3
MTRiZjc5ZGE1MjNhYTNkOC4uMGFkZGZhNzQwOTE4ZWUyZTM5ZWY5ZWVkNDJmZGFjMGMzMmEzZGU3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAgLTI0LDggKzI0LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdpbGxTZW5kUmVx
dWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3Bv
bnNlKQogICAgIERpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxC
eXRlc1RvQmVTZW50KQogICAgIERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlKQotICAgIERpZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90
IGVuY29kZWREYXRhTGVuZ3RoKQotICAgIERpZFJlY2VpdmVTaGFyZWRCdWZmZXIoSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisg
ICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiAgICAgRGlkRmluaXNoUmVzb3VyY2VMb2Fk
KFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgRGlk
RmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIERpZEZh
aWxTZXJ2aWNlV29ya2VyTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCBjODNhNzhjMTM1YWM5OTc0YzUx
ZWI2ZWM4OWE5ZTlmNTE2MzM5NjIwLi5mOTdjYTQ2ZWU2MzcyZGFlODFiMTY4MGRmZDdlZmZmYTRk
NTFiZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtMjgs
MTEgKzI4LDEwIEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlciB7IGJ1ZmZlci5n
ZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2
NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlz
aChSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCBiNTY1NzFiYWJiOGViZDg5OTdhODFmZTllM2E2Y2I1MWU1MzE5MDdhLi4wZTIwYzg5
OTM0YjljZGI0MWM0M2MwMTczNTEwYjU0OTUwODliZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNs
aWVudC5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCi0jaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiRmlu
ZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgpAQCAtMzUsMTMg
KzM0LDEzIEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2
aWdhdGlvbkFjdGlvbi5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRh
dGEuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCi0jaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgi
CiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBkZjRlODdkODRkNjY1Y2E4ODIxOWU1MmUyZmY4Y2U1ZWJiZDUyMDQ1Li40OTlj
MzU3YWJlMmFjZTEzMTIwOTQ0NjExNjdmNzUyMzIzMzE5N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5j
bHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElHZW9tZXRyeS5oIgotI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgpAQCAt
NDMsNiArNDIsNyBAQAogI2luY2x1ZGUgIkluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNjEsNyArNjEsNiBAQAogI2luY2x1ZGUgIlNl
c3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZUNvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyLmgiCkBAIC0zNTY2LDEwICszNTY1LDEwIEBAIHZvaWQgV2Vi
UGFnZTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAgICAgICAgIGRhdGEgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKGZy
YW1lKS0+cmF3RGF0YVJlcHJlc2VudGF0aW9uKCk7CiAjZW5kaWYKIAotICAgIElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOworICAgIElQQzo6TGVnYWN5U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGlmIChkYXRhKQotICAgICAgICBkYXRhUmVmZXJlbmNlID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoZGF0YS5nZXQoKSk7CisgICAgICAgIGRhdGFSZWZlcmVuY2UgPSB7IENGRGF0YUdldEJ5dGVQ
dHIoZGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEu
Z2V0KCkpKSB9OwogI2VuZGlmCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRh
Q2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtMzY0NywxMCArMzY0
NiwxMCBAQCB2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSQogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlE
KTsKICNlbmRpZgogCi0gICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZl
cmVuY2U7CisgICAgSVBDOjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZl
cmVuY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGRhdGEpCi0gICAgICAgIGRhdGFS
ZWZlcmVuY2UgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmdldCgpKTsKKyAgICAgICAgZGF0
YVJlZmVyZW5jZSA9IHsgQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8
c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpIH07CiAjZW5kaWYKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxs
YmFja0lEKSk7CiB9CkBAIC01MDI5LDcgKzUwMjgsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdl
c1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bwogewogICAgIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBwZGZQYWdlRGF0YTsKICAgICBk
cmF3UGFnZXNUb1BERkltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQsIHBkZlBh
Z2VEYXRhKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHBkZlBhZ2VEYXRhLmdldCgpKSB9LCBjYWxsYmFja0lEKSk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBDRkRhdGFH
ZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFH
ZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKQpAQCAtNjcxNSwxMiArNjcx
NCwxMiBAQCB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWlu
dDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NAogICAgIGhhbmRsZXItPnRhc2tEaWRSZWNl
aXZlUmVzcG9uc2UodGFza0lkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBXZWJQYWdl
Ojp1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKICAgICBhdXRvKiBoYW5kbGVyID0gbV9pZGVu
dGlmaWVyVG9VUkxTY2hlbWVIYW5kbGVyUHJveHlNYXAuZ2V0KGhhbmRsZXJJZGVudGlmaWVyKTsK
ICAgICBBU1NFUlQoaGFuZGxlcik7CiAKLSAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2ZURhdGEo
dGFza0lkZW50aWZpZXIsIGRhdGEuc2l6ZSgpLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QgKj4oZGF0YS5kYXRhKCkpKTsKKyAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2ZURhdGEodGFz
a0lkZW50aWZpZXIsIGRhdGEuc2l6ZSgpLCBkYXRhLmRhdGEoKSk7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6dXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1
aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC02
OTI2LDcgKzY5MjUsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjp1cGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9p
ZCBXZWJQYWdlOjp1cGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChh
dXRvIGF0dGFjaG1lbnQgPSBhdHRhY2htZW50RWxlbWVudFdpdGhJZGVudGlmaWVyKGlkZW50aWZp
ZXIpKSB7CiAgICAgICAgIGF0dGFjaG1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNjQ4YWRhYmE2
MWZlMjA5M2JlOWQ3NTQ4NTA0NjI4NzJmYmMyYWY3OC4uMjMyOTkwYWQ4MTlhYTE3ODQ5NDFmNzcz
N2IwMmE3OGI5OTU2N2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTU2LDkgKzE1Niw5IEBAIGNsYXNzIEFycmF5OwogCiBuYW1lc3BhY2UgSVBD
IHsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRGVjb2Rl
cjsKIGNsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjMwLDcgKzIzMCw2IEBAIGNsYXNz
IEhUTUxBdHRhY2htZW50RWxlbWVudDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIERh
dGFSZWZlcmVuY2U7CiBjbGFzcyBEcmF3aW5nQXJlYTsKIGNsYXNzIERvd25sb2FkSUQ7CiBjbGFz
cyBGaW5kQ29udHJvbGxlcjsKQEAgLTEyMjUsNyArMTIyNCw3IEBAIHB1YmxpYzoKICAgICAKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZvaWQgaW5zZXJ0QXR0YWNobWVudChj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBj
b25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFj
a0lEKTsKLSAgICB2b2lkIHVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSYgZW5jbG9zaW5nSW1hZ2VEYXRhLCBDYWxsYmFja0lEKTsKKyAgICB2
b2lkIHVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
T3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZW5jbG9z
aW5nSW1hZ2VEYXRhLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZUF0dGFjaG1lbnRJY29u
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IHFsVGh1bWJuYWlsSGFuZGxlKTsKICNlbmRpZgogCkBAIC0xNzI4LDcgKzE3MjcsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9p
ZCB1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOwotICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhh
bmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkUmVjZWl2
ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVy
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKICAgICB2b2lkIHVybFNjaGVtZVRhc2tEaWRD
b21wbGV0ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKIAogICAgIHZvaWQgc2V0SXNUYWtp
bmdTbmFwc2hvdHNGb3JBcHBsaWNhdGlvblN1c3BlbnNpb24oYm9vbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA1
NTg2MTRjZTliOWQxMGRkNmNkMWU1NjI3YTJjZjNjMGIxOWVmYzY0Li5hZmE5NzI1OWE3ODA0YzUx
MDQ4Y2VmN2FkNjU4ZmRjMTA2YmY2MjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU1NCwxNCArNTU0LDE0IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJl
ZGlyZWN0aW9uKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgVVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCi0gICAgVVJMU2NoZW1lVGFza0RpZFJlY2Vp
dmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmll
ciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCisgICAgVVJMU2NoZW1lVGFz
a0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNr
SWRlbnRpZmllciwgSVBDOjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCiAg
ICAgVVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1
aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKIAog
ICAgIFNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKQogCiAjaWYgRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKICAgICBJbnNlcnRBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyLCBPcHRp
b25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRU
eXBlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBVcGRhdGVBdHRhY2htZW50
QXR0cmlidXRlcyhTdHJpbmcgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXpl
LCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGVuY2xvc2luZ0ltYWdlRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoU3RyaW5nIGlkZW50aWZpZXIs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcg
ZmlsZU5hbWUsIElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBlbmNsb3NpbmdJ
bWFnZURhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFVwZGF0ZUF0dGFj
aG1lbnRJY29uKFN0cmluZyBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlIHFsVGh1bWJuYWlsSGFuZGxlKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGEyOWUwY2E4ZDZmMTIxYjgzOTFjNWExMTQwMDIzNGM3MWUyZTdlNGQuLmNkMjNlYTgy
ZDI5ZTlmNWRmN2FhNzlkNWI3Zjk1NThiZDk3MWM2MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDA4LDEwICs0MDgsMTAgQEAKIAkJQkNBMThCNzkwQzlCMDhGMTAwMTE0MzY5IC8q
IE9iakNQbHVnaW5GdW5jdGlvbi5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBuYW1l
ID0gT2JqQ1BsdWdpbkZ1bmN0aW9uLm07IHBhdGggPSBtYWMvT2JqQ1BsdWdpbkZ1bmN0aW9uLm07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTE4QzBBMEM5QjU5RUYwMDExNDM2OSAv
KiBEdW1wUmVuZGVyVHJlZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
dW1wUmVuZGVyVHJlZU1hYy5oOyBwYXRoID0gbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQTE4QzQ2MEM5QjVCOTQwMDExNDM2OSAvKiBEdW1w
UmVuZGVyVHJlZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRp
bmcgPSAwOyBuYW1lID0gRHVtcFJlbmRlclRyZWUubW07IHBhdGggPSBtYWMvRHVtcFJlbmRlclRy
ZWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwotCQlCQ0IyODFFRTBDRkE3MTNEMDA3RTUz
M0UgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBuYW1lID0gQmFz
ZS54Y2NvbmZpZzsgcGF0aCA9IG1hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0IyODFGMDBDRkE3MTNEMDA3RTUzM0UgLyogRHVt
cFJlbmRlclRyZWUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IER1
bXBSZW5kZXJUcmVlLnhjY29uZmlnOyBwYXRoID0gbWFjL0NvbmZpZ3VyYXRpb25zL0R1bXBSZW5k
ZXJUcmVlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0IyODJGNDBD
RkE3NDUwMDA3RTUzM0UgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IG5hbWUgPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHBhdGggPSBtYWMvQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQ0IyODNERTBDRkE3QzIwMDA3RTUzM0UgLyogVGVzdE5ldHNjYXBlUGx1Z0luLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBUZXN0TmV0c2NhcGVQbHVnSW4u
eGNjb25maWc7IHBhdGggPSBtYWMvQ29uZmlndXJhdGlvbnMvVGVzdE5ldHNjYXBlUGx1Z0luLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0IyODFFRTBDRkE3MTNEMDA3
RTUzM0UgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBC
YXNlLnhjY29uZmlnOyBwYXRoID0gbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQjI4MUYwMENGQTcxM0QwMDdFNTMzRSAvKiBE
dW1wUmVuZGVyVHJlZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBE
dW1wUmVuZGVyVHJlZS54Y2NvbmZpZzsgcGF0aCA9IG1hYy9Db25maWd1cmF0aW9ucy9EdW1wUmVu
ZGVyVHJlZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCMjgyRjQw
Q0ZBNzQ1MDAwN0U1MzNFIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IG5hbWUgPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHBhdGggPSBtYWMvQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQ0IyODNERTBDRkE3QzIwMDA3RTUzM0UgLyogVGVzdE5ldHNjYXBlUGx1Z0luLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IFRlc3ROZXRzY2FwZVBsdWdJbi54
Y2NvbmZpZzsgcGF0aCA9IG1hYy9Db25maWd1cmF0aW9ucy9UZXN0TmV0c2NhcGVQbHVnSW4ueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjI4NDg4MENGQTgyMDIwMDdF
NTMzRSAvKiBQaXhlbER1bXBTdXBwb3J0Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFBpeGVsRHVtcFN1cHBvcnRDRy5jcHA7IHBhdGggPSBjZy9QaXhlbER1bXBT
dXBwb3J0Q0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IyODQ4OTBDRkE4
MjAyMDA3RTUzM0UgLyogUGl4ZWxEdW1wU3VwcG9ydENHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBQaXhlbER1bXBTdXBwb3J0Q0cuaDsgcGF0aCA9IGNnL1BpeGVsRHVtcFN1
cHBvcnRDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IyODQ4QTBDRkE4MjBG
MDA3RTUzM0UgLyogUGl4ZWxEdW1wU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGl4ZWxEdW1wU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406872</attachid>
            <date>2020-08-19 14:26:41 -0700</date>
            <delta_ts>2020-08-20 17:19:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215232-20200819142640.patch</filename>
            <type>text/plain</type>
            <size>52474</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLjBmNGNlNjBlYjQxNmUzYTlhNzdhNDljZmE4MmUwOTg2
Y2Y2Mjk4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMjAtMDgtMTggIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAx
Ljl4IG1vcmUgQ1BVIHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29k
aW5nIGR1cmluZyBOZXRmbGl4IHBsYXliYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2NjM3
OTIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBy
aW9yIHRvIHIyNTc2NjcsIGFuIElQQyBtZXNzYWdlIGRlZmluZWQgYSBJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UgYXJndW1lbnQgdG8gYWxsb3cKKyAgICAgICAgaXRzIHNlbmRlciB0byBl
YXNpbHkgZW5jb2RlIFNoYXJlZEJ1ZmZlciBkYXRhIGFzIGEgRGF0YVJlZmVyZW5jZS4gU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZQorICAgICAgICBjb3N0IHRoZSBzYW1lIHRvIGVuY29kZSBhcyBh
IERhdGFSZWZlcmVuY2UgLS0gYm90aCBjb3BpZWQgZGF0YSBpbnRvIHRoZSBFbmNvZGVyIC0tIGJ1
dCBkaWQKKyAgICAgICAgc28gYnkgaXRlcmF0aW5nIG92ZXIgdGhlIFNoYXJlZEJ1ZmZlcidzIGRh
dGEgc2VnbWVudHMgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZW0gaW50byBhCisgICAgICAgIGNv
bnRpZ3VvdXMgYWxsb2NhdGlvbi4gVGhlIG1lc3NhZ2UgYXJndW1lbnQgaXMgcmVjZWl2ZWQgYXMg
YSBkZWNvZGVkIElQQzo6RGF0YVJlZmVyZW5jZSwKKyAgICAgICAgd2hpY2ggc3RvcmVzIGEgcG9p
bnRlciBpbnRvIHRoZSBJUEM6OkRlY29kZXIncyBidWZmZXIgcmF0aGVyIHRoYW4gbWFraW5nIGEg
Y29weS4KKworICAgICAgICBJbiByMjU3NjY3LCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2Ugc3dpdGNoZWQgaXRzIGVuY29kZXIgdG8gdXNlIElQQzo6QXJndW1lbnRDb2RlcidzCisgICAg
ICAgIFNoYXJlZEJ1ZmZlciBzcGVjaWFsaXphdGlvbiwgd2hpY2ggd29ya3MgYnkgYWxsb2NhdGlu
ZyBhIFNoYXJlZE1lbW9yeSBidWZmZXIsIGNvcHlpbmcKKyAgICAgICAgU2hhcmVkQnVmZmVyIGRh
dGEgaW50byBpdCwgY3JlYXRpbmcgYSBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBmcm9tIGl0LCBh
bmQgZW5jb2RpbmcgdGhlCisgICAgICAgIGhhbmRsZS4gSXQgbWFrZXMgb25seSBvbmUgY29weSBs
aWtlIHRoZSBvbGQgZW5jb2RlciBkaWQsIGJ1dCBwYXlzIHRoZSBhZGRlZCBjb3N0IG9mCisgICAg
ICAgIGNvbWJpbmluZyBTaGFyZWRCdWZmZXIgZGF0YSBzZWdtZW50cyBwcmlvciB0byBjb3B5aW5n
IGJ5IG5lZWRsZXNzbHkgY2FsbGluZworICAgICAgICBTaGFyZWRCdWZmZXI6OmRhdGEoKSAodGhp
cyBzaG91bGQgYmUgZml4ZWQgaW5kZXBlbmRlbnRseSkuCisKKyAgICAgICAgU2luY2UgdGhpcyBh
cmd1bWVudCBjb3VsZCBubyBsb25nZXIgYmUgZGVjb2RlZCBieSBEYXRhUmVmZXJlbmNlJ3MgZGVj
b2RlciwKKyAgICAgICAgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBpbXBsZW1lbnRlZCBhIGRl
Y29kZXIgaW4gdGVybXMgb2YgQXJndW1lbnRDb2RlcidzIFNoYXJlZEJ1ZmZlcgorICAgICAgICBz
cGVjaWFsaXphdGlvbi4gSXQgd29ya3MgYnkgbWFwcGluZyBhIFNoYXJlZE1lbW9yeSBidWZmZXIg
ZnJvbSBhIGRlY29kZWQKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgYW5kIGNvcHlp
bmcgdGhhdCBidWZmZXIgaW50byBhIG5ldyBTaGFyZWRCdWZmZXIuIFRoaXMgY29weSBpcyBhIGNv
c3QKKyAgICAgICAgdGhhdCB0aGUgb2xkIGRlY29kZXIgZGlkIG5vdCBpbmN1ciwgYnV0IGluIHNv
bWUgY2FzZXMgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIgd291bGQgaGF2ZSBtYWRlCisgICAgICAgIHN1
Y2ggYSBjb3B5IGFueXdheSBhbmQgY2FuIGluc3RlYWQganVzdCByZWYgdGhlIGRlY29kZWQgU2hh
cmVkQnVmZmVyLiBJbiBvdGhlciBjYXNlcyB0aG91Z2gsCisgICAgICAgIHRoZSByZWNlaXZlciBl
aXRoZXIgbWFkZSBubyBjb3BpZXMgb3IgY291bGRuJ3QgdXNlIHRoZSBkZWNvZGVkIFNoYXJlZEJ1
ZmZlciB0byBhdm9pZCBtYWtpbmcKKyAgICAgICAgaXRzIG93biBjb3B5IHNvIGNyZWF0aW5nIHRo
ZSBTaGFyZWRCdWZmZXIgd2FzIHB1cmUgYWRkZWQgY29zdC4KKworICAgICAgICBUaGVyZSBhcmUg
YWRkaXRpb25hbCBjb3N0cyBmcm9tIGFsbG9jYXRpbmcsIG1hcHBpbmcsIGFuZCBkZWxldGluZyBz
aGFyZWQgbWVtb3J5IGFuZCBNYWNoCisgICAgICAgIHNlbmQgcmlnaHRzLCBidXQgdGhleSBhcmUg
b2Zmc2V0IGJ5IHNhdmluZ3MgZHVlIHRvIHNtYWxsZXIgRW5jb2RlciBhbmQgRGVjb2RlciBidWZm
ZXJzLiBUaGUKKyAgICAgICAgYWRkaXRpb25hbCBTaGFyZWRCdWZmZXIgY29tYmluaW5nIGFuZCBj
b3B5aW5nIGlzIG5vdCBvZmZzZXQgZWxzZXdoZXJlLCBhbmQgb24gbmV0IG1ha2VzCisgICAgICAg
IHNlbmRpbmcgYW5kIHJlY2VpdmluZyBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2VzIHVz
ZSB1cCB0byAyeCBtb3JlIENQVSB0aW1lIHdoZW4KKyAgICAgICAgcGxheWluZyBhIHZpZGVvIG9u
IG5ldGZsaXguY29tIGluIFNhZmFyaS4KKworICAgICAgICBSZXNvbHZlIHRoaXMgc2xvd2Rvd24g
YnkgcmV2ZXJ0aW5nIHRoZSBhcmd1bWVudCBlbmNvZGluZyBjaGFuZ2VzIG1hZGUgdG8KKyAgICAg
ICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGluIHIyNTc2NjcuIEZvciBjb21wYXRp
YmlsaXR5IHdpdGggY29kZSBhZGRlZCBhZnRlciByMjU3NjY3LAorICAgICAgICBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgcmV0YWlucyBpdHMgbmV3IGJlaGF2aW9yIG9mIGNvcHlpbmcg
aW50byBhIFNoYXJlZEJ1ZmZlciB3aGVuCisgICAgICAgIGRlY29kZWQsIGJ1dCB0aGlzIHR5cGUg
aXMgbm93IG9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUgU2hhcmVkQnVmZmVyIGNhbiBiZSBy
ZWYnZCBpbnN0ZWFkCisgICAgICAgIG9mIGNvcGllZC4gUHJlLXIyNTc2NjcgaW5zdGFuY2VzIG9m
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ugd2VyZSBjaGFuZ2VkIHRvIGEgbmV3CisgICAgICAg
IExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgdHlwZSwgd2hpY2ggcmV2ZXJ0cyB0byB0
aGUgb2xkIGJlaGFpb3Igb2YgcHJvZHVjaW5nIGFuCisgICAgICAgIElQQzo6RGF0YVJlZmVyZW5j
ZSB3aGVuIGRlY29kZWQsIGF2b2lkaW5nIG1hbnkgY29waWVzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpidWZmZXJpbmdUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kQnVmZmVyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW46CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0VuY29kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5o
OgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9MZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZTo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSk6CisgICAgICAgIChJUEM6Okxl
Z2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZGVjb2RlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAoSVBDOjpT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjpkZWNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZmluaXNoZWRMb2FkaW5nSWNvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwOgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnByb2Nlc3NSZWNlaXZlZERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNlbGVjdGlv
bkFzV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNo
aXZlT2ZGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDgtMTggIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gVW5oYW5kbGVkIGtleURv
d246IGV2ZW50cyBjYXVzZSBhIHN5c3RlbSBiZWVwIGluIGZ1bGwgc2NyZWVuIG1vZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCA5NWMyYjJiYzJlMmUyOTlhZmQ1YTUyOTNhNDI0NTBiMjZlMWI0YzJkLi43ZmUz
OWZkMzFhNTM4OTM5NWNiMTZiYmI4OGIyMjNiZDk1NDI1NDI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0y
Niw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgiCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRm9y
bURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCIKQEAgLTQxLDcg
KzQxLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZEluZm8uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNz
YWdlcy5oIgpAQCAtMTA1MSw3ICsxMDUwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmJ1ZmZlcmluZ1RpbWVyRmlyZWQoKQogICAgIGlmIChtX2J1ZmZlcmVkRGF0YS0+aXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRl
cjo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcih7ICptX2J1ZmZlcmVkRGF0YSB9LCBtX2J1ZmZlcmVk
RGF0YUVuY29kZWREYXRhTGVuZ3RoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgKm1fYnVmZmVyZWREYXRhIH0sIG1fYnVmZmVyZWREYXRh
RW5jb2RlZERhdGFMZW5ndGgpKTsKIAogICAgIG1fYnVmZmVyZWREYXRhID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoKTsKICAgICBtX2J1ZmZlcmVkRGF0YUVuY29kZWREYXRhTGVuZ3RoID0gMDsKQEAg
LTEwNjEsNyArMTA2MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kQnVmZmVy
KFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBzaXplX3QgZW5jb2RlZERhdGFMCiB7CiAgICAgQVNTRVJU
KCFpc1N5bmNocm9ub3VzKCkpOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
ZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyBidWZmZXIgfSwgZW5jb2RlZERhdGFMZW5ndGgp
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZURhdGEo
eyBidWZmZXIgfSwgZW5jb2RlZERhdGFMZW5ndGgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmNwcAppbmRleCAzZmRhNzVmOWNjN2Q2NjVjODQ3OGI5Y2UxYjkwZmE3M2Fm
YzZiODJkLi41MTM4OWVlM2UwOGQ3ZTEzMTAxMjMxNTFhMjNiMzlhMWUwNzQ2M2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC0yOSwxMiArMjksMTEgQEAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0j
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlcy5oIgpAQCAtMTU5LDE1ICsxNTgsNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwg
aW50NgogICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJl
Y2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7CiB9CiAKLXZvaWQgU2Vydmlj
ZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihjb25zdCBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17
Ci0gICAgaWYgKG1faXNEb25lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIW1fdGlt
ZW91dFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIgeyBkYXRhLCBlbmNvZGVkRGF0YUxl
bmd0aCB9KTsKLX0KLQogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRm9y
bURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCiB7CiAgICAgaWYg
KG1faXNEb25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXggOTVl
ZDc1OTZhOGIxMWFkOWJkZThjOWIyZTJmMDVhYWY1NjdmNjBjNy4uMzllZTk0MDQwZWMzOTVmMDkz
MjgyY2JmYmEyZmZiYjkzNDFjNmYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5oCkBAIC04MCw3ICs4MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgYm9vbCBuZWVkc0Nv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQg
ZGlkRmluaXNoKCk7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2Fn
ZXMuaW4KaW5kZXggNDI3NGFkYzE2NjE4NzQwYWU4ODhmMjExZGY0OTIyMzRjZjM0NDZjNC4uYWM1
NDdiODI2MzQ3NmYyMTM1NDM0NzZlYzM3MzA2YzRlOGM3YTJlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRh
c2subWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KQEAgLTI3LDggKzI3LDcg
QEAgbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckZldGNoVGFzayBOb3RSZWZDb3VudGVkIHsKICAg
ICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgRGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBE
aWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9v
bCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZl
RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
LSAgICBEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQ
Qzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoKQogICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IGRhdGEpCiAgICAgRGlkRmluaXNoKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIu
aAppbmRleCAxM2YzYzQzZTQxN2E2NDQ0OWM5MDJiMmI2Mzg2Nzk2MWUyOWQ1MzE3Li4zNjc4ZDRm
YWUyOTE1MmQ5OTBmNGQzYTRmMGI3ZTBhZjZjZjc0NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRW5jb2Rlci5oCkBAIC05NSwxMiArOTUsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRB
dHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IHJlbGVhc2VB
dHRhY2htZW50cygpOworICAgIHZvaWQgcmVzZXJ2ZShzaXplX3QpOwogCiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgaXNJUENFbmNvZGVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHJlc2Vy
dmUoc2l6ZV90KTsKLQogICAgIHVpbnQ4X3QqIGdyb3coc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90
KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19l
bnVtPEU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hh
bmRsZU1lc3NhZ2UuaAppbmRleCA0NWM1MmEzNTRhZWIxMjI1MjUxMGQ4MjY4Y2JkN2E1OTE0NTkz
OTJmLi43MDZjM2I3NWRkYzNlYmVjM2I3MjFjNjk1MDc5NmQzNTNkYjJjZWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oCkBAIC05Niw2ICs5NiwxMiBAQCBz
dHJ1Y3QgQ29kaW5nVHlwZSB7CiAgICAgdHlwZWRlZiBzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6
cmVtb3ZlX3JlZmVyZW5jZV90PFQ+PiBUeXBlOwogfTsKIAorY2xhc3MgRGF0YVJlZmVyZW5jZTsK
K2NsYXNzIExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBDb2RpbmdUeXBlPGNvbnN0IExlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmPiB7Cisg
ICAgdXNpbmcgVHlwZSA9IERhdGFSZWZlcmVuY2U7Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBUcz4KIHN0cnVjdCBDb2RpbmdUeXBlPHN0ZDo6dHVwbGU8VHMuLi4+PiB7CiAgICAgdHlwZWRl
ZiBzdGQ6OnR1cGxlPHR5cGVuYW1lIENvZGluZ1R5cGU8VHM+OjpUeXBlLi4uPiBUeXBlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTGVnYWN5U2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTGVnYWN5U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZTMxMTIxZThjMWUzYmEzZDA2NWEwNDg2
ZjU1OWUyNGVmMjY1ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9MZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBFbmNvZGVyOworCitjbGFz
cyBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsKK3B1YmxpYzoKKyAgICBMZWdhY3lT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKCkgPSBkZWZhdWx0OworCisgICAgTGVnYWN5U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZShTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGJ1ZmZlcikKKyAg
ICAgICAgOiBtX2J1ZmZlck9yRGF0YShXVEZNb3ZlKGJ1ZmZlcikpIHsgfQorICAgIExlZ2FjeVNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiBidWZm
ZXIpCisgICAgICAgIDogbV9idWZmZXJPckRhdGEoV1RGTW92ZShidWZmZXIpKSB7IH0KKyAgICBM
ZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
ciYgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyT3JEYXRhKGJ1ZmZlcikgeyB9CisKKyAgICBM
ZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKERhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICAg
ICAgOiBtX2J1ZmZlck9yRGF0YShXVEZNb3ZlKGRhdGEpKSB7IH0KKyAgICBMZWdhY3lTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQorICAg
ICAgICA6IG1fYnVmZmVyT3JEYXRhKERhdGFSZWZlcmVuY2UoZGF0YSwgc2l6ZSkpIHsgfQorCisg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIFdU
Rjo6c3dpdGNoT24obV9idWZmZXJPckRhdGEsIFsmZW5jb2Rlcl0oYXV0byYgYnVmZmVyT3JEYXRh
KSB7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlck9yRGF0YTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFZhcmlhbnQ8U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSwg
RGF0YVJlZmVyZW5jZT4gbV9idWZmZXJPckRhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFkY2U2NTRiZjRhNzkxNjk4NDA4ZGNhMWQ4YTZl
Mjk5NjI4ZDRhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKworbmFtZXNwYWNlIElQQyB7CisKK3ZvaWQgU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgdWludDY0
X3QgYnVmZmVyU2l6ZSA9IG1fYnVmZmVyID8gbV9idWZmZXItPnNpemUoKSA6IDA7CisgICAgZW5j
b2Rlci5yZXNlcnZlKHNpemVvZihidWZmZXJTaXplKSArIGJ1ZmZlclNpemUpOworICAgIGVuY29k
ZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgIHJldHVybjsK
KyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiAqbV9idWZmZXIpCisgICAgICAgIGVuY29kZXIuZW5j
b2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNlZ21l
bnQuc2VnbWVudC0+ZGF0YSgpKSwgc2VnbWVudC5zZWdtZW50LT5zaXplKCksIDEpOworfQorCitP
cHRpb25hbDxTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoZGF0
YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgIGlmIChkYXRhLnNpemUoKSkKKyAgICAgICAgYnVmZmVy
ID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgp
KTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKGJ1ZmZlcikgfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
SVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmgKaW5kZXggMmNmYzdmYWM4MTE4YmViZDE4NTUzYWMyMmExZDg1ZDdkZjI4
MGFmMC4uZjAzZmM4ZWY1MmNiNDI0YzVkNjAyNWU2N2M3MmUwMDhiZmUwOTFjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNSwxMSArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogCiBu
YW1lc3BhY2UgSVBDIHsKIAorY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CisKIGNsYXNz
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgewogcHVibGljOgogICAgIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UoKSA9IGRlZmF1bHQ7CkBAIC00OCwyMiArNTAsMTEgQEAgcHVibGljOgogICAg
IHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgp
IDogMDsgfQogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9i
dWZmZXItPmlzRW1wdHkoKSA6IHRydWU7IH0KIAotICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Ci0gICAgewotICAgICAgICBlbmNvZGVyIDw8IG1fYnVmZmVyOwotICAgIH0K
LQotICAgIHN0YXRpYyBPcHRpb25hbDxTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKLSAgICB7Ci0gICAgICAgIE9wdGlvbmFsPFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+PiBidWZmZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOwotICAg
ICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
ICAgIHJldHVybiB7IFdURk1vdmUoKmJ1ZmZlcikgfTsKLSAgICB9CisgICAgdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gT3B0aW9uYWw8
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZT4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKIH07CiAKLX0KK30g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggZTlkYWU5ZTUzYzUwMmQ3Y2Y4Yzc0NGIxYTlhZjViZDVhNGIyNzFjYi4uNmFlNjkxZDdh
OTUxMjU0Y2Y2YjM1M2UxNzJmODExMWI1M2FlYzNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC01NzYsNyArNTc2LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgaGVhZGVyX2luZm9zX2FuZF90eXBlcyA9IGNsYXNzX3RlbXBsYXRlX2hl
YWRlcnModHlwZSkKIAogICAgIHNwZWNpYWxfY2FzZXMgPSB7Ci0gICAgICAgICdJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UnOiBbJyJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiJywg
JyJEYXRhUmVmZXJlbmNlLmgiJ10sCiAgICAgICAgICdNYWNoU2VuZFJpZ2h0JzogWyc8d3RmL01h
Y2hTZW5kUmlnaHQuaD4nXSwKICAgICAgICAgJ0pTQzo6TWVzc2FnZUxldmVsJzogWyc8SmF2YVNj
cmlwdENvcmUvQ29uc29sZVR5cGVzLmg+J10sCiAgICAgICAgICdKU0M6Ok1lc3NhZ2VTb3VyY2Un
OiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGFk
NzgyYzJlNjJmNzJmN2VlYTg1YzMxYjAwZjdiYTIwOWYyMmI0OTUuLmQ1ZjM3M2FlZDgyYWFiZDkz
NjVmMjQzZjY1MDQ3MzMxNjJiNWFlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTQwLDYgKzE0MCw3IEBA
IFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9FbmNvZGVy
LmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIEBuby11
bmlmeQogUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwIEBuby11bmlmeQorUGxhdGZvcm0v
SVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBD
L1N0cmluZ1JlZmVyZW5jZS5jcHAgQG5vLXVuaWZ5CiAKIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDNhYmE1MzdlZjQ2YjZhMjVhY2NiZjk2MWUxYjA1NTlmNjBjMmNmYzIu
LmI3Yzg5ODhhOGE1NWU2M2NkODQ0M2Q0MjkyYjYwYTJhNzQwYTFmM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTksNyArNTksNiBAQAogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0
aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCi0jaW5jbHVk
ZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRl
ICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgpA
QCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiRnJhbWVJbmZvRGF0YS5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCisj
aW5jbHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxv
YWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdGl2ZVdl
Ykdlc3R1cmVFdmVudC5oIgpAQCAtODYsNyArODYsNiBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJv
dHRsZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNh
ZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC03MDc0LDEz
ICs3MDczLDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2b2lkQ2FsbGJhY2soQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFjayhjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UmIGRhdGFSZWZlcmVuY2UsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkYXRhQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJl
bmNlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYXV0byBjYWxsYmFjayA9IG1fY2Fs
bGJhY2tzLnRha2U8RGF0YUNhbGxiYWNrPihjYWxsYmFja0lEKTsKICAgICBpZiAoIWNhbGxiYWNr
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKEFQSTo6RGF0YTo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpLnB0cigpKTsK
KyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6RGF0YTo6
Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSkucHRyKCkp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Ym9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCkBAIC05MzI0LDcgKzkzMjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Z2V0TG9hZERlY2lzaW9uRm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYgaWNvbiwg
Q2FsbGJhYwogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZmluaXNoZWRMb2FkaW5n
SWNvbihDYWxsYmFja0lEIGNhbGxiYWNrSUQsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSYgZGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpmaW5pc2hlZExvYWRpbmdJY29uKENh
bGxiYWNrSUQgY2FsbGJhY2tJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQogewog
ICAgIGRhdGFDYWxsYmFjayhkYXRhLCBjYWxsYmFja0lEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGU2NTQ2Yjg0OWYyODU2MzNhYjUzOTFiMWMwYjcwMWUx
MjkyMjE0ZS4uNDk3MWExNzA2NjU5M2Y3YjZhZjcyZTU1MjNjYjNjZTU5ODJkY2YxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIwNiw2ICsyMDYsNyBAQCBlbnVt
IGNsYXNzIEluc3BlY3RvclRhcmdldFR5cGUgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CiBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRm9ybURhdGFS
ZWZlcmVuY2U7CiBjbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOwpAQCAtMzA0LDcgKzMw
NSw2IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNs
YXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7Ci1jbGFzcyBTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3U25hcHNob3Q7CiBj
bGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAKICAgICB2b2lkIGdldExvYWREZWNp
c2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBXZWJLaXQ6OkNhbGxiYWNrSUQp
OwotICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNvbnN0
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZmluaXNoZWRMb2Fk
aW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwog
CiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3VzZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJh
bWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CkBAIC0yMTA0LDcgKzIxMDQsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wg
aGFuZGxlZCk7CiAKICAgICB2b2lkIHZvaWRDYWxsYmFjayhDYWxsYmFja0lEKTsKLSAgICB2b2lk
IGRhdGFDYWxsYmFjayhjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmLCBDYWxs
YmFja0lEKTsKKyAgICB2b2lkIGRhdGFDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGltYWdlQ2FsbGJhY2soY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGJvb2xDYWxsYmFjayhib29sIHJl
c3VsdCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBzdHJpbmdDYWxsYmFjayhjb25zdCBTdHJpbmcm
LCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBmNDUxYWI5ODg1NDA1NGRlM2JhNTk3YzliMzVhY2MwZjRkYmFj
YTIzLi5lNTk2ODM2NTQzNmNjYjNkODYyY2Y3YjliMjE2NmZiYzQ3MWZhYjcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNTcs
NyArMTU3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgQ2FsbGJhY2sg
bWVzc2FnZXMKICAgICBWb2lkQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgRGF0YUNhbGxiYWNrKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSByZXN1bHRE
YXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEYXRhQ2FsbGJhY2soSVBD
OjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEltYWdlQ2FsbGJhY2soV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBiaXRtYXBIYW5kbGUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIFN0cmluZ0NhbGxiYWNrKFN0cmluZyByZXN1bHRTdHJpbmcsIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogICAgIEJvb2xDYWxsYmFjayhib29sIHJlc3VsdCwgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC01MjIsNyArNTIyLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAgICAgR2V0TG9h
ZERlY2lzaW9uRm9ySWNvbihzdHJ1Y3QgV2ViQ29yZTo6TGlua0ljb24gaWNvbiwgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgRmluaXNoZWRMb2FkaW5nSWNvbihXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEp
OworICAgIEZpbmlzaGVkTG9hZGluZ0ljb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQs
IElQQzo6TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKTsKIAogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCmluZGV4IGFlYTc2ZTI3ZGVhYTBmN2Yy
MWMzNDFjOGZjZjc3MmMyNjBkMjQ1OWUuLjg5MzgyNzI1NzY4YmJjYjc2MmI2MWE2ZWEwNDQwODFl
MGEyYzkwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2su
Y3BwCkBAIC0yNyw4ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFzay5oIgogCiAj
aW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMZWdhY3lTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDFiZjYzYjMwMzk1MjgwMmUwOTBiZGM2ZjFiMDk4YTQwZTdiYjVhYTAuLmEzMDQwNDIyOTMw
YjE3ZGEzZDE0NTI2Mjc4NzA4ODZjYTI5ZDFjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzQ2LDYgKzc0Niw4IEBACiAJCTJEQzE4
RkIwMjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4RkFGMjE4OTEyNjQwMDI1QTg4RCAvKiBQ
ZW5jaWxLaXRTUEkuaCAqLzsgfTsKIAkJMkRDMThGQjMyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90
ZUxheWVyVHJlZVZpZXdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREMxOEZCMTIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3Mu
aCAqLzsgfTsKIAkJMkRDMThGQjQyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZp
ZXdzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRD
MThGQjIyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tICovOyB9Owor
CQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxODAw
MUQ5MERERDE1RkM2OTkxQTkgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi87IH07
CisJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5oICovOyB9OwogCQkyREM2RDlDMzE4QzQ0QTYxMDA0M0JBRDQgLyogV0tXZWJWaWV3Q29udGVu
dFByb3ZpZGVyUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQzZEOUMxMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50UHJv
dmlkZXJSZWdpc3RyeS5oICovOyB9OwogCQkyREQxMkEwODFBODE3N0YzMDAyQzc0RTYgLyogV0tQ
YWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERDEyQTA3MUE4MTc3RjMwMDJDNzRFNiAvKiBXS1BhZ2VSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJERDQ1QURFMUU1Rjg5NzIwMDZDMzU1RiAvKiBJbnB1dFZpZXdVcGRh
dGVEZWZlcnJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRENDVBREMxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVycmVyLmgg
Ki87IH07CkBAIC0zMTUwLDYgKzMxNTIsOCBAQAogCQkyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQg
LyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VHZXN0
dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2QUQgLyog
V0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb3Vz
ZUdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXpl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRCOTYwNTIyMzk4ODZCOTAwMTAy
NzkxIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuR1BV
LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREMxODAwMUQ5MERERDE1RkM2OTkx
QTkgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRDMTg4MUFDQkNBQjVENTdDNUM2RUYwIC8qIExlZ2FjeVNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREMxOEZBQjIxODkxMDQ4MDAyNUE4OEQgLyogV0tEcmF3aW5nVmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0RyYXdpbmdWaWV3Lmg7IHBhdGggPSBp
b3MvV0tEcmF3aW5nVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREMxOEZB
QzIxODkxMDQ4MDAyNUE4OEQgLyogV0tEcmF3aW5nVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRHJhd2luZ1ZpZXcubW07IHBhdGggPSBpb3MvV0tEcmF3
aW5nVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDMThGQUYyMTg5MTI2
NDAwMjVBODhEIC8qIFBlbmNpbEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQZW5jaWxLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MjIs
MTIgKzY0MjYsMTQgQEAKIAkJCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFS
ZWZlcmVuY2UuaCAqLywKIAkJCQlDMENFNzJBQzEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVz
c2FnZS5oICovLAogCQkJCTFDOUFGMzYxMjQxMzREMjMwMEQzRUMwMiAvKiBJbWFnZURhdGFSZWZl
cmVuY2UuaCAqLywKKwkJCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogTGVnYWN5U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAogCQkJCTFBQzRDODI4MTZCODc2QTkwMDY5RENDRCAv
KiBNZXNzYWdlRmxhZ3MuaCAqLywKIAkJCQkxQTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyLmggKi8sCiAJCQkJMUEzRUVEMEMxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3Nh
Z2VSZWNlaXZlck1hcC5jcHAgKi8sCiAJCQkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1l
c3NhZ2VSZWNlaXZlck1hcC5oICovLAogCQkJCTFBQUIwMzc3MTg1QTdDNkEwMEVERjUwMSAvKiBN
ZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJCQkxQUFCMDM3ODE4NUE3QzZBMDBFREY1MDEgLyogTWVz
c2FnZVNlbmRlci5oICovLAorCQkJCTJEQzE4MDAxRDkwREREMTVGQzY5OTFBOSAvKiBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJCQk1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTgg
LyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAogCQkJCTFBRTAwRDY5MTgzMjdDMTIw
MDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwICovLAogCQkJCTFBRTAwRDZBMTgzMjdDMTIw
MDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCAqLywKQEAgLTEwODkyLDYgKzEwODk4LDcgQEAK
IAkJCQkyOUFEMzA5MzE2NEI0QzVEMDA3MkRFQTkgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5ODRGNTdEMTY0QjkxNUYwMDRCQzBDNiAv
KiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTFEQzM0MDE5NjM0NkQ3MDBGRjcwNTkgLyogTGVnYWN5U2Vzc2lvblN0YXRlQ29k
aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREMxOEZGNkVGMkEzMTMwQzEzMDE3NjcgLyogTGVn
YWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExQjIy
NjQxRTM3MUJBNjAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzA3NUI0MURFODVGNTgwMDM5RUM2OSAvKiBMaWJXZWJSVENQcm92aWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGQUY1RjgxRTNDMTAyMTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29s
dmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyODQxLDYgKzEyODQ4LDcgQEAKIAkJCQlFMThFNjkx
NzE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4NzIxMkI2QUIxMDBG
NDkzRkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJEQzE4RkVC
RjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExQURBRkI2MjM2OEU2QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4
MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCBmNjg5M2FmMGI0YjQzMjcxODRmZGU1
NjRlMjYwMDcwZmFjNzNlNGM2Li5lZDFlNjAyNzFhM2JmMzYyMzhkZjhmNzNhZmE0NWY3OTgyYWM0
ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xOTEsNDcgKzE5MSwyNSBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGJvbwogICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlLCBX
VEZNb3ZlKHBvbGljeURlY2lzaW9uQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UmJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIExP
RyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlU2hh
cmVkQnVmZmVyIG9mIHNpemUgJWx1IGZvciAnJXMnIiwgZGF0YS5zaXplKCksIG1fY29yZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91
bGQgbm90IHNlbmQgZGF0YSB1bnRpbCB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7Ci0K
LSAgICBpZiAoVU5MSUtFTFkobV9pbnRlcmNlcHRDb250cm9sbGVyLmlzSW50ZXJjZXB0aW5nKG1f
Y29yZUxvYWRlci0+aWRlbnRpZmllcigpKSkpIHsKLSAgICAgICAgZGVmZXJSZWNlaXZpbmdTaGFy
ZWRCdWZmZXIoV1RGTW92ZShkYXRhKSwgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgcHJvY2Vzc1JlY2VpdmVkRGF0YShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0aCk7
Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJl
ZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhIG9m
IHNpemUgJWx1IGZvciAnJXMnIiwgZGF0YS5zaXplKCksIG1fY29yZUxvYWRlci0+dXJsKCkuc3Ry
aW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJv
Y2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQgbm90IHNlbmQg
ZGF0YSB1bnRpbCB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAgICBpZiAoVU5M
SUtFTFkobV9pbnRlcmNlcHRDb250cm9sbGVyLmlzSW50ZXJjZXB0aW5nKG1fY29yZUxvYWRlci0+
aWRlbnRpZmllcigpKSkpIHsKLSAgICAgICAgZGVmZXJSZWNlaXZpbmdTaGFyZWRCdWZmZXIoeyBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpIH0s
IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICBtX2ludGVyY2VwdENv
bnRyb2xsZXIuZGVmZXIobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgZW5jb2Rl
ZERhdGFMZW5ndGhdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAobV9jb3JlTG9hZGVyKQor
ICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKHsgYnVmZmVyLT5kYXRhQXNVSW50OFB0cigp
LCBidWZmZXItPnNpemUoKSB9LCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgICAgIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIHByb2Nlc3NSZWNlaXZlZERhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgZW5jb2RlZERhdGFM
ZW5ndGgpOwotfQogCi12b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkZWZlclJlY2VpdmluZ1NoYXJl
ZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBkYXRhLCBpbnQ2NF90IGVu
Y29kZWREYXRhTGVuZ3RoKQotewotICAgIG1faW50ZXJjZXB0Q29udHJvbGxlci5kZWZlcihtX2Nv
cmVMb2FkZXItPmlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGF0YSA9IFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRhTGVuZ3RoXSgpIG11dGFibGUg
ewotICAgICAgICBpZiAobV9jb3JlTG9hZGVyKQotICAgICAgICAgICAgZGlkUmVjZWl2ZVNoYXJl
ZEJ1ZmZlcihXVEZNb3ZlKGRhdGEpLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgfSk7Ci19Ci0K
LXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnByb2Nlc3NSZWNlaXZlZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IHNpemUsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgaWYg
KCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKKyAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVj
ZWl2aW5nIGRhdGEiKTsKLSAgICB9Ci0gICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IHNpemU7Cisg
ICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGRhdGEuc2l6ZSgpOwogCi0gICAgbV9jb3JlTG9hZGVy
LT5kaWRSZWNlaXZlRGF0YShkYXRhLCBzaXplLCBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRCeXRlcyk7CisgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBlbmNvZGVkRGF0YUxl
bmd0aCwgRGF0YVBheWxvYWRCeXRlcyk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2Fk
TWV0cmljcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDg0NmIwMDcyOTIyMmM0MzIxNzc5MTgwNGU3NjYyMjg5OTdk
MDBjMTguLjVhY2U4ODY5OWEwODExYWMwYWFiZDcyNjc2OTk5OGQ3MjA0NzM4YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
aApAQCAtODQsNyArODQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0
X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5l
ZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlJiYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHZvaWQgZGlkRmluaXNo
UmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpOwogICAgIHZv
aWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAg
ICAgdm9pZCBkaWRGYWlsU2VydmljZVdvcmtlckxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpOwpAQCAtOTMsOSArOTIsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdG9wTG9hZGlu
Z0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgZGVmZXJSZWNlaXZpbmdTaGFy
ZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpOwotICAgIHZvaWQgcHJvY2Vzc1JlY2VpdmVkRGF0YShjb25zdCBjaGFyKiwg
c2l6ZV90IGxlbmd0aCwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0KICNpZiBFTkFCTEUo
U0hBUkVBQkxFX1JFU09VUkNFKQogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdl
cy5pbgppbmRleCBhYjM5YjU5NDZjYWNhODFmNzViMTgwNzcxNGJmNzlkYTUyM2FhM2Q4Li4wYWRk
ZmE3NDA5MThlZTJlMzllZjllZWQ0MmZkYWMwYzMyYTNkZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsNyBAQCBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRl
ciBMZWdhY3lSZWNlaXZlciB7CiAgICAgV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgRGlkU2VuZERhdGEo
dWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCiAgICAgRGlk
UmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wg
bmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCi0gICAgRGlkUmVjZWl2ZURh
dGEoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0g
ICAgRGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
ZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRGF0YShJUEM6
OkxlZ2FjeVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCkKICAgICBEaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViQ29yZTo6TmV0d29ya0xvYWRN
ZXRyaWNzIG5ldHdvcmtMb2FkTWV0cmljcykKICAgICBEaWRGYWlsUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAgICAgRGlkRmFpbFNlcnZpY2VXb3JrZXJMb2FkKFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwCmluZGV4IGM4M2E3OGMxMzVhYzk5NzRjNTFlYjZlYzg5YTllOWY1MTYzMzk2MjAu
LmY5N2NhNDZlZTYzNzJkYWU4MWIxNjgwZGZkN2VmZmZhNGQ1MWJmM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0yOCwxMSArMjgsMTAgQEAKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkxlZ2FjeVNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlckZldGNoVGFza01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YkVycm9ycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAtODUsNyAr
ODQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVE
YXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpEaWRSZWNlaXZlU2hhcmVkQnVmZmVyIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2
NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURh
dGEgeyBidWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9
LCBtX2ZldGNoSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3Jt
RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGI1NjU3MWJhYmI4ZWJk
ODk5N2E4MWZlOWUzYTZjYjUxZTUzMTkwN2EuLjBlMjBjODk5MzRiOWNkYjQxYzQzYzAxNzM1MTBi
NTQ5NTA4OWJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjcsNyAr
MjcsNiBAQAogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJGaW5kQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCkBAIC0zNSwxMyArMzQsMTMgQEAKICNpbmNsdWRlICJJ
bmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCisjaW5j
bHVkZSAiTGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQ
SUNhc3QuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGRmNGU4N2Q4NGQ2
NjVjYTg4MjE5ZTUyZTJmZjhjZTVlYmJkNTIwNDUuLjQ5OWMzNTdhYmUyYWNlMTMxMjA5NDQ2MTE2
N2Y3NTIzMjMzMTk3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2lu
Y2x1ZGUgIkFQSUdlb21ldHJ5LmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNp
bmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgiCkBAIC00Myw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCisjaW5jbHVkZSAi
TGVnYWN5U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1By
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC02MSw3ICs2MSw2IEBACiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVk
ZSAiU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJWaWV3R2VzdHVyZUdl
b21ldHJ5Q29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIu
aCIKQEAgLTM1NjYsMTAgKzM1NjUsMTAgQEAgdm9pZCBXZWJQYWdlOjpnZXRTZWxlY3Rpb25Bc1dl
YkFyY2hpdmVEYXRhKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICAgICAgZGF0YSA9IExlZ2Fj
eVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21TZWxlY3Rpb24oZnJhbWUpLT5yYXdEYXRhUmVwcmVzZW50
YXRpb24oKTsKICNlbmRpZgogCi0gICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGFSZWZlcmVuY2U7CisgICAgSVBDOjpMZWdhY3lTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGFSZWZlcmVuY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGRhdGEpCi0gICAgICAg
IGRhdGFSZWZlcmVuY2UgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmdldCgpKTsKKyAgICAg
ICAgZGF0YVJlZmVyZW5jZSA9IHsgQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpIH07CiAjZW5kaWYKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNl
LCBjYWxsYmFja0lEKSk7CiB9CkBAIC0zNjQ3LDEwICszNjQ2LDEwIEBAIHZvaWQgV2ViUGFnZTo6
Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogI2VuZGlmCiAKLSAgICBJUEM6
OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKKyAgICBJUEM6OkxlZ2Fj
eVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBpZiAoZGF0YSkKLSAgICAgICAgZGF0YVJlZmVyZW5jZSA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKGRhdGEuZ2V0KCkpOworICAgICAgICBkYXRhUmVmZXJlbmNlID0geyBDRkRhdGFH
ZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExlbmd0
aChkYXRhLmdldCgpKSkgfTsKICNlbmRpZgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KQEAgLTUwMjks
NyArNTAyOCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvCiB7CiAgICAgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFt
ZUlELCBwcmludEluZm8sIGZpcnN0LCBjb3VudCwgcGRmUGFnZURhdGEpOwotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgU2hhcmVkQnVmZmVyOjpjcmVhdGUo
cGRmUGFnZURhdGEuZ2V0KCkpIH0sIGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7IENGRGF0YUdldEJ5dGVQdHIocGRmUGFnZURhdGEu
Z2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5n
ZXQoKSkpIH0sIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BE
RkltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRh
UmVmPiYgcGRmUGFnZURhdGEpCkBAIC02NzE1LDEyICs2NzE0LDEyIEBAIHZvaWQgV2ViUGFnZTo6
dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmll
ciwgdWludDY0CiAgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVSZXNwb25zZSh0YXNrSWRlbnRp
ZmllciwgcmVzcG9uc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRSZWNl
aXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYgZGF0YSkKK3ZvaWQgV2Vi
UGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50aWZpZXJUb1VSTFNjaGVtZUhhbmRs
ZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwogICAgIEFTU0VSVChoYW5kbGVyKTsK
IAotICAgIGhhbmRsZXItPnRhc2tEaWRSZWNlaXZlRGF0YSh0YXNrSWRlbnRpZmllciwgZGF0YS5z
aXplKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihkYXRhLmRhdGEoKSkpOwor
ICAgIGhhbmRsZXItPnRhc2tEaWRSZWNlaXZlRGF0YSh0YXNrSWRlbnRpZmllciwgZGF0YS5zaXpl
KCksIGRhdGEuZGF0YSgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVUYXNrRGlkQ29t
cGxldGUodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTY5MjYsNyArNjkyNSw3IEBAIHZvaWQg
V2ViUGFnZTo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlv
bmFsPHVpbnQ2NF90PiYmIGZpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWb2lk
Q2FsbGJhY2soY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVwZGF0ZUF0dGFjaG1l
bnRBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+
JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYgZW5jbG9zaW5nSW1h
Z2VEYXRhLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZUF0dGFj
aG1lbnRBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0
X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZW5jbG9zaW5nSW1hZ2VEYXRhLCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8gYXR0YWNobWVudCA9IGF0dGFj
aG1lbnRFbGVtZW50V2l0aElkZW50aWZpZXIoaWRlbnRpZmllcikpIHsKICAgICAgICAgYXR0YWNo
bWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2NDhhZGFiYTYxZmUyMDkzYmU5ZDc1NDg1MDQ2Mjg3
MmZiYzJhZjc4Li4yMzI5OTBhZDgxOWFhMTc4NDk0MWY3NzM3YjAyYTc4Yjk5NTY3YmUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNTYsOSArMTU2
LDkgQEAgY2xhc3MgQXJyYXk7CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsK
K2NsYXNzIERhdGFSZWZlcmVuY2U7CiBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRm9ybURhdGFSZWZl
cmVuY2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOwogfQogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0yMzAsNyArMjMwLDYgQEAgY2xhc3MgSFRNTEF0dGFjaG1lbnRFbGVtZW50
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgRGF0YVJlZmVyZW5jZTsKIGNsYXNzIERy
YXdpbmdBcmVhOwogY2xhc3MgRG93bmxvYWRJRDsKIGNsYXNzIEZpbmRDb250cm9sbGVyOwpAQCAt
MTIyNSw3ICsxMjI0LDcgQEAgcHVibGljOgogICAgIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCiAgICAgdm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
ciwgT3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgdXBkYXRl
QXR0YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1
aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBlbmNs
b3NpbmdJbWFnZURhdGEsIENhbGxiYWNrSUQpOworICAgIHZvaWQgdXBkYXRlQXR0YWNobWVudEF0
dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBm
aWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgdXBkYXRlQXR0YWNobWVudEljb24oY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgcWxUaHVtYm5haWxIYW5kbGUpOwog
I2VuZGlmCiAKQEAgLTE3MjgsNyArMTcyNyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVybFNj
aGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24odWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIHVybFNjaGVtZVRhc2tEaWRSZWNl
aXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCB1cmxT
Y2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Um
KTsKKyAgICB2b2lkIHVybFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVy
SWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYpOwogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRs
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpOwogCiAgICAgdm9pZCBzZXRJc1Rha2luZ1NuYXBzaG90c0ZvckFwcGxpY2F0
aW9uU3VzcGVuc2lvbihib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU1ODYxNGNlOWI5ZDEwZGQ2Y2QxZTU2
MjdhMmNmM2MwYjE5ZWZjNjQuLmFmYTk3MjU5YTc4MDRjNTEwNDhjZWY3YWQ2NThmZGMxMDZiZjYy
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtNTU0LDE0ICs1NTQsMTQgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKIAogICAgIFVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24odWludDY0X3QgaGFu
ZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAg
ICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKLSAgICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxl
cklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UgZGF0YSkKKyAgICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0
X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkxlZ2Fj
eVNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBVUkxTY2hlbWVUYXNrRGlkQ29t
cGxldGUodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogCiAgICAgU2V0SXNTdXNwZW5kZWQoYm9v
bCBzdXNwZW5kZWQpCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIEluc2Vy
dEF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6
ZSwgU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgY29udGVudFR5cGUsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQotICAgIFVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKFN0cmluZyBpZGVu
dGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBjb250ZW50VHlwZSwg
U3RyaW5nIGZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZW5jbG9zaW5n
SW1hZ2VEYXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBVcGRhdGVBdHRh
Y2htZW50QXR0cmlidXRlcyhTdHJpbmcgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZp
bGVTaXplLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlTmFtZSwgSVBDOjpMZWdhY3lT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGVuY2xvc2luZ0ltYWdlRGF0YSwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAgICAgVXBkYXRlQXR0YWNobWVudEljb24oU3RyaW5nIGlkZW50
aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgcWxUaHVtYm5haWxIYW5kbGUp
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTI5ZTBjYThkNmYxMjFi
ODM5MWM1YTExNDAwMjM0YzcxZTJlN2U0ZC4uY2QyM2VhODJkMjllOWY1ZGY3YWE3OWQ1YjdmOTU1
OGJkOTcxYzYyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDgsMTAgKzQwOCwx
MCBAQAogCQlCQ0ExOEI3OTBDOUIwOEYxMDAxMTQzNjkgLyogT2JqQ1BsdWdpbkZ1bmN0aW9uLm0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBPYmpDUGx1Z2luRnVuY3Rpb24u
bTsgcGF0aCA9IG1hYy9PYmpDUGx1Z2luRnVuY3Rpb24ubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNBMThDMEEwQzlCNTlFRjAwMTE0MzY5IC8qIER1bXBSZW5kZXJUcmVlTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJUcmVlTWFjLmg7IHBh
dGggPSBtYWMvRHVtcFJlbmRlclRyZWVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNBMThDNDYwQzlCNUI5NDAwMTE0MzY5IC8qIER1bXBSZW5kZXJUcmVlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IG5hbWUgPSBEdW1wUmVu
ZGVyVHJlZS5tbTsgcGF0aCA9IG1hYy9EdW1wUmVuZGVyVHJlZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07Ci0JCUJDQjI4MUVFMENGQTcxM0QwMDdFNTMzRSAvKiBCYXNlLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBCYXNlLnhjY29uZmlnOyBwYXRoID0gbWFj
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDQjI4MUYwMENGQTcxM0QwMDdFNTMzRSAvKiBEdW1wUmVuZGVyVHJlZS54Y2NvbmZpZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBuYW1lID0gRHVtcFJlbmRlclRyZWUueGNjb25maWc7
IHBhdGggPSBtYWMvQ29uZmlndXJhdGlvbnMvRHVtcFJlbmRlclRyZWUueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjI4MkY0MENGQTc0NTAwMDdFNTMzRSAvKiBEZWJ1
Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IERlYnVn
UmVsZWFzZS54Y2NvbmZpZzsgcGF0aCA9IG1hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2Uu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjI4M0RFMENGQTdDMjAw
MDdFNTMzRSAvKiBUZXN0TmV0c2NhcGVQbHVnSW4ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgbmFtZSA9IFRlc3ROZXRzY2FwZVBsdWdJbi54Y2NvbmZpZzsgcGF0aCA9IG1hYy9D
b25maWd1cmF0aW9ucy9UZXN0TmV0c2NhcGVQbHVnSW4ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDQjI4MUVFMENGQTcxM0QwMDdFNTMzRSAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IEJhc2UueGNjb25maWc7IHBhdGggPSBt
YWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkNCMjgxRjAwQ0ZBNzEzRDAwN0U1MzNFIC8qIER1bXBSZW5kZXJUcmVlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IER1bXBSZW5kZXJUcmVlLnhjY29uZmln
OyBwYXRoID0gbWFjL0NvbmZpZ3VyYXRpb25zL0R1bXBSZW5kZXJUcmVlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0IyODJGNDBDRkE3NDUwMDA3RTUzM0UgLyogRGVi
dWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgbmFtZSA9IERlYnVn
UmVsZWFzZS54Y2NvbmZpZzsgcGF0aCA9IG1hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2Uu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQjI4M0RFMENGQTdDMjAw
MDdFNTMzRSAvKiBUZXN0TmV0c2NhcGVQbHVnSW4ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBuYW1lID0gVGVzdE5ldHNjYXBlUGx1Z0luLnhjY29uZmlnOyBwYXRoID0gbWFjL0Nv
bmZpZ3VyYXRpb25zL1Rlc3ROZXRzY2FwZVBsdWdJbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNCMjg0ODgwQ0ZBODIwMjAwN0U1MzNFIC8qIFBpeGVsRHVtcFN1cHBv
cnRDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGl4ZWxEdW1w
U3VwcG9ydENHLmNwcDsgcGF0aCA9IGNnL1BpeGVsRHVtcFN1cHBvcnRDRy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjI4NDg5MENGQTgyMDIwMDdFNTMzRSAvKiBQaXhlbER1
bXBTdXBwb3J0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBpeGVsRHVt
cFN1cHBvcnRDRy5oOyBwYXRoID0gY2cvUGl4ZWxEdW1wU3VwcG9ydENHLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQjI4NDhBMENGQTgyMEYwMDdFNTMzRSAvKiBQaXhlbER1bXBT
dXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaXhlbER1bXBTdXBw
b3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406980</attachid>
            <date>2020-08-20 17:19:37 -0700</date>
            <delta_ts>2020-08-20 17:52:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215232-20200820171937.patch</filename>
            <type>text/plain</type>
            <size>95033</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLjExMzRmZmFhNTdlZjIyMzQwZGVlM2VlYzNlOGM1YzI5
YTU3ZWNjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU3IEBACisyMDIwLTA4LTIwICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjU3NjY3KTog
MS45eCBtb3JlIENQVSB0aW1lIGluIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkZWNv
ZGluZyBkdXJpbmcgTmV0ZmxpeCBwbGF5YmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MjMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NjYz
NzkyMD4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBQcmlv
ciB0byByMjU3NjY3LCBhbiBJUEMgbWVzc2FnZSBkZWZpbmVkIGEgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGFyZ3VtZW50IHRvIGFsbG93CisgICAgICAgIGl0cyBzZW5kZXIgdG8gZWFz
aWx5IGVuY29kZSBTaGFyZWRCdWZmZXIgZGF0YSBhcyBhIERhdGFSZWZlcmVuY2UuIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgY29zdCB0aGUgc2FtZSB0byBlbmNvZGUgYXMgYSBE
YXRhUmVmZXJlbmNlIC0tIGJvdGggY29waWVkIGRhdGEgaW50byB0aGUgRW5jb2RlciAtLSBidXQg
ZGlkCisgICAgICAgIHNvIGJ5IGl0ZXJhdGluZyBvdmVyIHRoZSBTaGFyZWRCdWZmZXIncyBkYXRh
IHNlZ21lbnRzIHJhdGhlciB0aGFuIGNvbWJpbmluZyB0aGVtIGludG8gYQorICAgICAgICBjb250
aWd1b3VzIGFsbG9jYXRpb24uIFRoZSBtZXNzYWdlIGFyZ3VtZW50IHdhcyByZWNlaXZlZCBhcyBh
IGRlY29kZWQgSVBDOjpEYXRhUmVmZXJlbmNlLAorICAgICAgICB3aGljaCBzdG9yZXMgYSBwb2lu
dGVyIGludG8gdGhlIElQQzo6RGVjb2RlcidzIGJ1ZmZlciByYXRoZXIgdGhhbiBtYWtpbmcgYSBj
b3B5LgorCisgICAgICAgIEluIHIyNTc2NjcsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBzd2l0Y2hlZCBpdHMgZW5jb2RlciB0byB1c2UgSVBDOjpBcmd1bWVudENvZGVyJ3MKKyAgICAg
ICAgU2hhcmVkQnVmZmVyIHNwZWNpYWxpemF0aW9uLCB3aGljaCB3b3JrcyBieSBhbGxvY2F0aW5n
IGEgU2hhcmVkTWVtb3J5IGJ1ZmZlciwgY29weWluZworICAgICAgICBTaGFyZWRCdWZmZXIgZGF0
YSBpbnRvIGl0LCBjcmVhdGluZyBhIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGZyb20gaXQsIGFu
ZCBlbmNvZGluZyB0aGUKKyAgICAgICAgaGFuZGxlLiBJdCBtYWtlcyBvbmx5IG9uZSBjb3B5IGxp
a2UgdGhlIG9sZCBlbmNvZGVyIGRpZCwgYnV0IHBheXMgdGhlIGFkZGVkIGNvc3Qgb2YKKyAgICAg
ICAgY29tYmluaW5nIFNoYXJlZEJ1ZmZlciBkYXRhIHNlZ21lbnRzIHByaW9yIHRvIGNvcHlpbmcg
YnkgbmVlZGxlc3NseSBjYWxsaW5nCisgICAgICAgIFNoYXJlZEJ1ZmZlcjo6ZGF0YSgpICh0aGlz
IHNob3VsZCBiZSBmaXhlZCBpbmRlcGVuZGVudGx5KS4KKworICAgICAgICBTaW5jZSB0aGlzIHNl
cmlhbGl6YXRpb24gY291bGQgbm8gbG9uZ2VyIGJlIGRlY29kZWQgYnkgRGF0YVJlZmVyZW5jZSdz
IGRlY29kZXIsCisgICAgICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgaW1wbGVtZW50ZWQg
YSBkZWNvZGVyLCBhbHNvIGluIHRlcm1zIG9mIEFyZ3VtZW50Q29kZXIncyBTaGFyZWRCdWZmZXIK
KyAgICAgICAgc3BlY2lhbGl6YXRpb24uIEl0IHdvcmtzIGJ5IG1hcHBpbmcgYSBTaGFyZWRNZW1v
cnkgYnVmZmVyIGZyb20gYSBkZWNvZGVkCisgICAgICAgIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
IGFuZCBjb3B5aW5nIHRoYXQgYnVmZmVyIGludG8gYSBuZXcgU2hhcmVkQnVmZmVyLiBUaGlzIGNv
cHkgaXMgYSBjb3N0CisgICAgICAgIHRoYXQgdGhlIG9sZCBkZWNvZGVyIGRpZCBub3QgaW5jdXIs
IGJ1dCBpbiBzb21lIGNhc2VzIHRoZSBtZXNzYWdlIHJlY2VpdmVyIHdvdWxkIGhhdmUgbWFkZQor
ICAgICAgICBzdWNoIGEgY29weSBhbnl3YXkgYW5kIGNhbiBpbnN0ZWFkIGp1c3QgcmVmIHRoZSBk
ZWNvZGVkIFNoYXJlZEJ1ZmZlci4gSW4gb3RoZXIgY2FzZXMgdGhvdWdoLAorICAgICAgICB0aGUg
cmVjZWl2ZXIgZWl0aGVyIG1hZGUgbm8gY29waWVzIG9yIGNvdWxkbid0IHVzZSB0aGUgZGVjb2Rl
ZCBTaGFyZWRCdWZmZXIgdG8gYXZvaWQgbWFraW5nCisgICAgICAgIGl0cyBvd24gY29weSBzbyBj
cmVhdGluZyB0aGUgU2hhcmVkQnVmZmVyIHdhcyBwdXJlIGFkZGVkIGNvc3QuCisKKyAgICAgICAg
VGhlcmUgYXJlIGFkZGl0aW9uYWwgY29zdHMgZnJvbSBhbGxvY2F0aW5nLCBtYXBwaW5nLCBhbmQg
ZGVsZXRpbmcgc2hhcmVkIG1lbW9yeSBhbmQgTWFjaAorICAgICAgICBzZW5kIHJpZ2h0cywgYnV0
IHRoZXkgYXJlIG9mZnNldCBieSBzYXZpbmdzIGR1ZSB0byBzbWFsbGVyIEVuY29kZXIgYW5kIERl
Y29kZXIgYnVmZmVycy4gVGhlCisgICAgICAgIGFkZGl0aW9uYWwgU2hhcmVkQnVmZmVyIGNvbWJp
bmluZyBhbmQgY29weWluZyBpcyBub3Qgb2Zmc2V0IGVsc2V3aGVyZSwgYW5kIG9uIG5ldCBtYWtl
cworICAgICAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlcyB1c2UgdXAgdG8gMnggbW9yZSBDUFUgdGltZSB3aGVuCisgICAgICAgIHBsYXlpbmcg
YSB2aWRlbyBvbiBuZXRmbGl4LmNvbSBpbiBTYWZhcmkuCisKKyAgICAgICAgUmVzb2x2ZSB0aGlz
IHNsb3dkb3duIGJ5IHJldmVydGluZyB0aGUgYXJndW1lbnQgZW5jb2RpbmcgY2hhbmdlcyBtYWRl
IHRvCisgICAgICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBpbiByMjU3NjY3LiBG
b3IgY29tcGF0aWJpbGl0eSB3aXRoIGNvZGUgYWRkZWQgYWZ0ZXIgcjI1NzY2NywKKyAgICAgICAg
dGhlIGN1cnJlbnQgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHdhcyBjb3BpZWQgdG8g
SVBDOjpTaGFyZWRCdWZmZXJDb3B5IGFuZCByZXRhaW5zCisgICAgICAgIHRoZSBiZWhhdmlvciBv
ZiBjb3B5aW5nIGludG8gYSBTaGFyZWRCdWZmZXIgd2hlbiBkZWNvZGVkLiBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2Ugbm93CisgICAgICAgIGhhcyB0aGUgcHJlLXIyNTc2NjcgYmVoYXZp
b3Igb2YgZGVjb2RpbmcgdG8gYW4gSVBDOjpEYXRhUmVmZXJlbmNlLiBNZXNzYWdlcyBhZGRlZCBh
ZnRlcgorICAgICAgICByMjU3NjY3IHdob3NlIHJlY2VpdmVycyB3ZXJlIGRlc2lnbmVkIHRvIGhh
bmRsZSBhIFNoYXJlZEJ1ZmZlciB3ZXJlIGNoYW5nZWQgdG8gdXNlCisgICAgICAgIElQQzo6U2hh
cmVkQnVmZmVyQ29weSwgYW5kIGFsbCBvdGhlciByZWNlaXZlcnMgb2YgbWVzc2FnZXMgd2l0aCBJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgYXJndW1lbnRzIHdlcmUgY2hh
bmdlZCB0byBoYW5kbGUgYW4gSVBDOjpEYXRhUmVmZXJlbmNlLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6c2V0U2VydmVyQ2VydGlmaWNhdGUpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnJlcXVlc3RM
aWNlbnNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6
OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25Qcm94eTo6cmVtb3ZlU2Vzc2lvbkRhdGEpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRU
b1VpbnQ4QXJyYXkpOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9PcHRpb25hbERhdGFSZWZl
cmVuY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6Omdl
bmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxlZ2FjeUNETVNlc3Np
b25Qcm94eTo6dXBkYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVn
YWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6YnVmZmVyaW5nVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c2VuZEJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9F
bmNvZGVyLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyQ29weS5jcHA6IEFkZGVkLgorICAgICAgICAo
SVBDOjpTaGFyZWRCdWZmZXJDb3B5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFy
ZWRCdWZmZXJDb3B5OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRCdWZm
ZXJDb3B5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyQ29weTo6U2hh
cmVkQnVmZmVyQ29weSk6CisgICAgICAgIChJUEM6OlNoYXJlZEJ1ZmZlckNvcHk6OmJ1ZmZlcik6
CisgICAgICAgIChJUEM6OlNoYXJlZEJ1ZmZlckNvcHk6OmJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHk6OmRhdGEgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFy
ZWRCdWZmZXJDb3B5OjpzaXplIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyQ29w
eTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKToKKyAgICAgICAgKElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZTo6YnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZTo6YnVmZmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZGF0YSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OnNpemUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjppc0VtcHR5IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cGxh
dGZvcm1SZWdpc3RlckF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluaXNoZWRMb2FkaW5nSWNvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZy
b21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVy
QXR0YWNobWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRh
c2suY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5OjpyZWFkQnVmZmVyKToKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb246OnJlcXVlc3RMaWNlbnNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uOjpyZW1vdmVTZXNzaW9uRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29udmVydFRvQXJyYXlCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0Ojpjb252ZXJ0VG9VaW50OEFycmF5KToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydFRv
U2hhcmVkQnVmZmVyQ29weSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxlZ2FjeUNETVNlc3Np
b246OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxlZ2FjeUNE
TVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxlZ2FjeUNETVNlc3Np
b246OmNhY2hlZEtleUZvcktleUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGVn
YWN5Q0RNU2Vzc2lvbjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9P
cHRpb25hbERhdGFSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0
VG9EYXRhUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnByb2Nlc3NSZWNlaXZlZERh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tQ2xpcGJvYXJkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRyYXdQYWdlc1RvUERGKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lVGFz
a0RpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlQXR0YWNo
bWVudEF0dHJpYnV0ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKIDIwMjAtMDgtMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gVW5oYW5kbGVkIGtleURvd246IGV2ZW50cyBjYXVzZSBhIHN5c3RlbSBiZWVwIGlu
IGZ1bGwgc2NyZWVuIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAppbmRleCAyZTI0OGZkZmM4MmQ5NGFl
NmUwZWQxNzViMzUxYzFiMjZiNTVhMzEzLi4xYjQwYWI1YjAwNDdlZDYxNGU3Yzk0YjU5YTlhNzc1
MTJmM2JjNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNs
dWRlICJSZW1vdGVDRE1JbnN0YW5jZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DRE1JbnN0YW5jZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU5LDcgKzU5LDcgQEAg
dm9pZCBSZW1vdGVDRE1JbnN0YW5jZVByb3h5Ojppbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24o
Y29uc3QgV2ViQ29yZTo6Q0RNS2V5U3kKICAgICBtX2luc3RhbmNlLT5pbml0aWFsaXplV2l0aENv
bmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbiwgYWxsb3dEaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBh
bGxvd1BlcnNpc3RlbnRTdGF0ZSwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKLXZvaWQgUmVt
b3RlQ0RNSW5zdGFuY2VQcm94eTo6c2V0U2VydmVyQ2VydGlmaWNhdGUoSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJiYgY2VydGlmaWNhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Vj
Y2Vzc1ZhbHVlKT4mJiBjb21wbGV0aW9uKQordm9pZCBSZW1vdGVDRE1JbnN0YW5jZVByb3h5Ojpz
ZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBjZXJ0aWZpY2F0ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdWNjZXNzVmFsdWUpPiYmIGNvbXBsZXRpb24pCiB7CiAg
ICAgaWYgKCFjZXJ0aWZpY2F0ZS5idWZmZXIoKSkgewogICAgICAgICBjb21wbGV0aW9uKENETUlu
c3RhbmNlOjpGYWlsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmgKaW5kZXggZTcxMTJkNWY4NGI4ODQ3MzE5ZGM0
MDRmZWExNTA2YzhiMWVmMzBlNC4uNTE0YTMwNjVhOThjYzMxZWU2NDMzMzdmOWJhZDk3NDg0Yjky
ZmZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQ0RNSW5zdGFuY2VQcm94eS5oCkBAIC00Miw3ICs0Miw3IEBAIHN0cnVjdCBDRE1LZXlTeXN0
ZW1Db25maWd1cmF0aW9uOwogfQogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzCiAg
ICAgdm9pZCBpbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oY29uc3QgV2ViQ29yZTo6Q0RNS2V5
U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlzdGluY3RpdmVJZGVudGlmaWVycywgQWxsb3dQ
ZXJzaXN0ZW50U3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3VjY2Vzc1ZhbHVlKT4mJik7
Ci0gICAgdm9pZCBzZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdWNjZXNzVmFsdWUpPiYmKTsKKyAgICB2
b2lkIHNldFNlcnZlckNlcnRpZmljYXRlKElQQzo6U2hhcmVkQnVmZmVyQ29weSYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN1Y2Nlc3NWYWx1ZSk+JiYpOwogICAgIHZvaWQgc2V0U3RvcmFnZURp
cmVjdG9yeShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNyZWF0ZVNlc3Npb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJik+
JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU1MGU4NTM0MWMy
ZWIzNWJiNmVjMDgwOTVkNWEwMDRlY2NhMTM5ZjkuLmM1MDk1YjY4OWRmNjA0OTI5ZmZkMTQxY2Jj
ZGI5NDFlN2NjYWQwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
OCw3ICsyOCw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIENyZWF0ZVNlc3Npb24oKSAtPiAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25JZGVudGlmaWVyIGlkKSBTeW5jaHJvbm91cwogICAgIEluaXRpYWxpemVXaXRoQ29u
ZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6OkFsbG93RGlzdGluY3Rp
dmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzQWxsb3dlZCwgZW51bTpib29sIFdl
YkNvcmU6OkNETUluc3RhbmNlOjpBbGxvd1BlcnNpc3RlbnRTdGF0ZSBwZXJzaXN0ZW50U3RhdGVB
bGxvd2VkKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUg
c3VjY2VzcykgQXN5bmMKLSAgICBTZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UgY2VydGlmaWNhdGUpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5z
dGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZXNzKSBBc3luYworICAgIFNldFNlcnZlckNlcnRpZmlj
YXRlKElQQzo6U2hhcmVkQnVmZmVyQ29weSBjZXJ0aWZpY2F0ZSkgLT4gKGVudW06Ym9vbCBXZWJD
b3JlOjpDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIEFzeW5jCiAgICAgU2V0U3Rv
cmFnZURpcmVjdG9yeShTdHJpbmcgZGlyZWN0b3J5KQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lv
blByb3h5LmNwcAppbmRleCAxOGE2NjNhNDMwYjdhMWNjZDY4NmFlY2ViOTliMGU4NzU1NTViYTEy
Li45ZjdlOGJmZmY2ZDFiYTQ1MTQ5MDlkOWFmNWRjN2U5MGU5MDE4NzYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9yeVByb3h5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ29w
eS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTYsNyArNTYsNyBAQCBSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eTo6flJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5KCkKIHsK
IH0KIAotdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6cmVxdWVzdExpY2Vuc2Uo
TGljZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSYmIGluaXREYXRhLCBMaWNlbnNlQ2FsbGJhY2smJiBjb21wbGV0aW9u
KQordm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6cmVxdWVzdExpY2Vuc2UoTGlj
ZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVy
Q29weSYmIGluaXREYXRhLCBMaWNlbnNlQ2FsbGJhY2smJiBjb21wbGV0aW9uKQogewogICAgIGlm
ICghaW5pdERhdGEuYnVmZmVyKCkpIHsKICAgICAgICAgY29tcGxldGlvbih7IH0sIGVtcHR5U3Ry
aW5nKCksIGZhbHNlLCBmYWxzZSk7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5z
dGFuY2VTZXNzaW9uUHJveHk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIHR5cGUsIEF0b21T
dHJpbmcKICAgICB9KTsKIH0KIAotdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6
dXBkYXRlTGljZW5zZShTdHJpbmcgc2Vzc2lvbklkLCBMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiByZXNwb25zZSwgTGljZW5zZVVwZGF0ZUNhbGxiYWNr
JiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnVwZGF0
ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgTGljZW5zZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRC
dWZmZXJDb3B5JiYgcmVzcG9uc2UsIExpY2Vuc2VVcGRhdGVDYWxsYmFjayYmIGNvbXBsZXRpb24p
CiB7CiAgICAgaWYgKCFyZXNwb25zZS5idWZmZXIoKSkgewogICAgICAgICBjb21wbGV0aW9uKHRy
dWUsIHsgfSwgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQsIGZhbHNlKTsKQEAgLTExNSw5ICsx
MTUsOSBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpjbG9zZVNlc3Npb24o
Y29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIENsb3NlUwogdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExp
Y2Vuc2VUeXBlIHR5cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2smJiBjb21wbGV0aW9uKQog
ewogICAgIG1fc2Vzc2lvbi0+cmVtb3ZlU2Vzc2lvbkRhdGEoc2Vzc2lvbklkLCB0eXBlLCBbY29t
cGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbildIChDRE1JbnN0YW5jZVNlc3Npb246OktleVN0
YXR1c1ZlY3RvciYmIGtleVN0YXR1c2VzLCBPcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4mJiBl
eHBpcmVkU2Vzc2lvbnNEYXRhLCBDRE1JbnN0YW5jZVNlc3Npb246OlN1Y2Nlc3NWYWx1ZSBzdWNj
ZWVkZWQpIG11dGFibGUgewotICAgICAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2U+IGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVyZW5jZTsKKyAgICAgICAgT3B0aW9uYWw8
SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBleHBpcmVkU2Vzc2lvbkRhdGFSZWZlcmVuY2U7CiAgICAg
ICAgIGlmIChleHBpcmVkU2Vzc2lvbnNEYXRhKQotICAgICAgICAgICAgZXhwaXJlZFNlc3Npb25E
YXRhUmVmZXJlbmNlID0gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKFdURk1vdmUoKmV4
cGlyZWRTZXNzaW9uc0RhdGEpKTsKKyAgICAgICAgICAgIGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVy
ZW5jZSA9IElQQzo6U2hhcmVkQnVmZmVyQ29weShXVEZNb3ZlKCpleHBpcmVkU2Vzc2lvbnNEYXRh
KSk7CiAgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShrZXlTdGF0dXNlcyksIFdURk1vdmUoZXhw
aXJlZFNlc3Npb25EYXRhUmVmZXJlbmNlKSwgc3VjY2VlZGVkID09IENETUluc3RhbmNlU2Vzc2lv
bjo6U3VjY2VlZGVkKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmgKaW5k
ZXggMmQxOTQ4ZWE1YzBjMDA1ZjdmMDliMmY0MDExOGFhZDg3NmU2N2I3Yi4uNTE4ZmNhY2QxYWQy
MWI5NTIwNmQxYzk5Mjc1ZDFiZGE2MTcyZjZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5
LmgKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRC
dWZmZXJDb3B5OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU5LDE2ICs1OSwxNiBAQCBw
cml2YXRlOgogICAgIHVzaW5nIEtleVN0YXR1c1ZlY3RvciA9IFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yOwogICAgIHVzaW5nIE1lc3NhZ2UgPSBXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U7CiAgICAgdXNpbmcgU2Vzc2lvbkxvYWRGYWlsdXJl
ID0gV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpTZXNzaW9uTG9hZEZhaWx1cmU7Ci0gICAg
dXNpbmcgTGljZW5zZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wsIGJv
b2wpPjsKKyAgICB1c2luZyBMaWNlbnNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6U2hhcmVkQnVmZmVyQ29weSYmLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgYm9vbCwg
Ym9vbCk+OwogICAgIHVzaW5nIExpY2Vuc2VVcGRhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCwgT3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9yPiYmLCBPcHRpb25hbDxkb3Vi
bGU+JiYsIE9wdGlvbmFsPE1lc3NhZ2U+JiYsIGJvb2wpPjsKICAgICB1c2luZyBMb2FkU2Vzc2lv
bkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxLZXlTdGF0dXNWZWN0
b3I+JiYsIE9wdGlvbmFsPGRvdWJsZT4mJiwgT3B0aW9uYWw8TWVzc2FnZT4mJiwgYm9vbCwgU2Vz
c2lvbkxvYWRGYWlsdXJlKT47CiAgICAgdXNpbmcgQ2xvc2VTZXNzaW9uQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+OwotICAgIHVzaW5nIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEtleVN0YXR1c1ZlY3RvciYmLCBPcHRpb25hbDxJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+JiYsIGJvb2wpPjsKKyAgICB1c2luZyBSZW1v
dmVTZXNzaW9uRGF0YUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChLZXlTdGF0dXNW
ZWN0b3ImJiwgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiYmLCBib29sKT47CiAgICAg
dXNpbmcgU3RvcmVSZWNvcmRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CiAK
ICAgICAvLyBNZXNzYWdlcwotICAgIHZvaWQgcmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUsIEF0
b21TdHJpbmcgaW5pdERhdGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBp
bml0RGF0YSwgTGljZW5zZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgdXBkYXRlTGljZW5zZShTdHJp
bmcgc2Vzc2lvbklkLCBMaWNlbnNlVHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
JiYgcmVzcG9uc2UsIExpY2Vuc2VVcGRhdGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlcXVlc3RM
aWNlbnNlKExpY2Vuc2VUeXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwgSVBDOjpTaGFyZWRC
dWZmZXJDb3B5JiYgaW5pdERhdGEsIExpY2Vuc2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIHVwZGF0
ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgTGljZW5zZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVy
Q29weSYmIHJlc3BvbnNlLCBMaWNlbnNlVXBkYXRlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBsb2Fk
U2Vzc2lvbihMaWNlbnNlVHlwZSwgU3RyaW5nIHNlc3Npb25JZCwgU3RyaW5nIG9yaWdpbiwgTG9h
ZFNlc3Npb25DYWxsYmFjayYmKTsKICAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTdHJpbmcm
IHNlc3Npb25JZCwgQ2xvc2VTZXNzaW9uQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZW1vdmVTZXNz
aW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5cGUsIFJlbW92ZVNlc3Np
b25EYXRhQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggZWQ3ODJmNTQwYTJiODc1M2E5MmRlNDVkMDI4YTdhZmY0MmIwNmQ2ZS4u
MTYxODcyZWIwYzZmMDNjNDNiOWE4MDBlNDk1YjcxNTZiNmMzNDZjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsMTEgKzI2LDExIEBACiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eSBOb3RSZWZDb3VudGVkIHsKLSAg
ICBSZXF1ZXN0TGljZW5zZShXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBl
IHR5cGUsIEF0b21TdHJpbmcgaW5pdERhdGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UgaW5pdERhdGEpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgbWVzc2Fn
ZSwgU3RyaW5nIHNlc3Npb25JZCwgYm9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKLSAgICBVcGRhdGVMaWNlbnNlKFN0cmluZyBzZXNzaW9uSWQsIFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlIHJlc3BvbnNlKSAtPiAoYm9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBPcHRp
b25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3Rvcj4gY2hhbmdl
ZEtleXMsIE9wdGlvbmFsPGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIE9wdGlvbmFsPFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQp
IEFzeW5jCisgICAgUmVxdWVzdExpY2Vuc2UoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpM
aWNlbnNlVHlwZSB0eXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwgSVBDOjpTaGFyZWRCdWZm
ZXJDb3B5IGluaXREYXRhKSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IG1lc3NhZ2UsIFN0cmlu
ZyBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlvbiwgYm9vbCBzdWNjZWVkZWQp
IEFzeW5jCisgICAgVXBkYXRlTGljZW5zZShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1J
bnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBy
ZXNwb25zZSkgLT4gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgT3B0aW9uYWw8V2ViQ29yZTo6Q0RN
SW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBPcHRpb25hbDxk
b3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBPcHRpb25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb246Ok1lc3NhZ2U+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYwogICAgIExvYWRT
ZXNzaW9uKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgU3Ry
aW5nIHNlc3Npb25JZCwgU3RyaW5nIG9yaWdpbikgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkNETUlu
c3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5cywgT3B0aW9uYWw8ZG91
YmxlPiBjaGFuZ2VkRXhwaXJhdGlvbiwgT3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNz
aW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6U2Vzc2lvbkxvYWRGYWlsdXJlIGxvYWRGYWlsdXJlKSBB
c3luYwogICAgIENsb3NlU2Vzc2lvbihTdHJpbmcgc2Vzc2lvbklkKSAtPiAoKSBBc3luYwotICAg
IFJlbW92ZVNlc3Npb25EYXRhKFN0cmluZyBzZXNzaW9uSWQsIFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSkgLT4gKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bjo6S2V5U3RhdHVzVmVjdG9yIGNoYW5nZWRLZXlzLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2U+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFJlbW92
ZVNlc3Npb25EYXRhKFN0cmluZyBzZXNzaW9uSWQsIFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bjo6TGljZW5zZVR5cGUgdHlwZSkgLT4gKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5
U3RhdHVzVmVjdG9yIGNoYW5nZWRLZXlzLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+
IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYwogICAgIFN0b3JlUmVjb3JkT2ZLZXlVc2Fn
ZShTdHJpbmcgc2Vzc2lvbklkKQogICAgIERpc3BsYXlJRENoYW5nZWQodWludDMyX3QgZGlzcGxh
eUlEKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Q
cm94eS5jcHAKaW5kZXggNjFhYzkyZmQwOTdhZjFjZjliOGZmOGJiNDBkYjFiZWE1ZTNhODBhMy4u
ODM0OTgwY2JiYzRkNzJkMDQyNTdlNDA3YjE1MmIzMTlhZTM4MWE2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJl
bW90ZUNETUluc3RhbmNlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUluc3Rh
bmNlUHJveHkuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9DRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9DRE1Qcml2YXRlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETVByb3h5LmgKaW5kZXggMmM5ZDU1OGRmZmExNTJjMGRkNWEwYzBiMmI1YTgxNzMy
YTFkYjViMS4uNTEwYjljZTkwNDAyMzYyODUyYmFkYWJjMWM0MTZmMjdkYzA0ZTQ4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmgKQEAgLTQz
LDEwICs0Myw2IEBAIHN0cnVjdCBDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uOwogc3RydWN0IENE
TVJlc3RyaWN0aW9uczsKIH0KIAotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQ0RN
SW5zdGFuY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5jcHAKaW5kZXggMGEwZTMzZmM2
YjQ0NGQzMTFlNjYwMmY4YTc1NWUzMzQyMDJlYzE1Mi4uMWRjMzQ3MjNhM2YwZDUxNWJhY2FkYjUx
YjViZGZhNTlkYzA0OWYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5jcHAKQEAgLTMxLDcg
KzMxLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5
Q0RNU2Vzc2lvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyLDcgKzUyLDcgQEAgUmVt
b3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkoV2Vh
a1B0cjxSZW1vdGVMZWdhY3lDRE0KIAogUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Ojp+UmVt
b3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5KCkgPSBkZWZhdWx0OwogCi1zdGF0aWMgUmVmUHRyPFVp
bnQ4QXJyYXk+IGNvbnZlcnRUb1VpbnQ4QXJyYXkoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiYgYnVmZmVyKQorc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFy
cmF5KElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGJ1ZmZlcikKIHsKICAgICBpZiAoIWJ1ZmZlci5i
dWZmZXIoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MywxNCArNjMsMTQgQEAgc3Rh
dGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSYmIGIKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMg
T3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBjb252ZXJ0VG9PcHRpb25h
bERhdGFSZWZlcmVuY2UoVCBhcnJheSkKK3N0YXRpYyBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZl
ckNvcHk+IGNvbnZlcnRUb09wdGlvbmFsRGF0YVJlZmVyZW5jZShUIGFycmF5KQogewogICAgIGlm
ICghYXJyYXkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHsgU2hh
cmVkQnVmZmVyOjpjcmVhdGUoKGNvbnN0IGNoYXIqKWFycmF5LT5kYXRhKCksIGFycmF5LT5ieXRl
TGVuZ3RoKCkpIH07CiB9CiAKLXZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpnZW5l
cmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlJiYgaW5pdERhdGEsIEdlbmVyYXRlS2V5Q2FsbGJhY2smJiBjb21wbGV0aW9u
KQordm9pZCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OmdlbmVyYXRlS2V5UmVxdWVzdChj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBpbml0RGF0YSwg
R2VuZXJhdGVLZXlDYWxsYmFjayYmIGNvbXBsZXRpb24pCiB7CiAgICAgYXV0byBpbml0RGF0YUFy
cmF5ID0gY29udmVydFRvVWludDhBcnJheShXVEZNb3ZlKGluaXREYXRhKSk7CiAgICAgaWYgKCFp
bml0RGF0YUFycmF5KSB7CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vz
c2lvblByb3h5OjpyZWxlYXNlS2V5cygpCiAgICAgbV9zZXNzaW9uLT5yZWxlYXNlS2V5cygpOwog
fQogCi12b2lkIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6dXBkYXRlKElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSYmIHVwZGF0ZSwgVXBkYXRlQ2FsbGJhY2smJiBjb21wbGV0aW9u
KQordm9pZCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OnVwZGF0ZShJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkmJiB1cGRhdGUsIFVwZGF0ZUNhbGxiYWNrJiYgY29tcGxldGlvbikKIHsKICAgICBh
dXRvIHVwZGF0ZUFycmF5ID0gY29udmVydFRvVWludDhBcnJheShXVEZNb3ZlKHVwZGF0ZSkpOwog
ICAgIGlmICghdXBkYXRlQXJyYXkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuaAppbmRleCBhOTNl
YzgyMThkNTA3Y2U0ZmY5ZDA5NGRiNGIwMmYyNjdjMzcxMWYyLi5iMDQ5ZjdhNDBhMjA4YWZiYmMz
OTlhYzZjYTUzZjc5MDllZTgzZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5oCkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIH0KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFz
cyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOworY2xhc3MgU2hhcmVkQnVmZmVyQ29weTsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03OCwxMiArNzgsMTIgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8g
TWVzc2FnZXMKLSAgICB1c2luZyBHZW5lcmF0ZUtleUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+JiYsIGNvbnN0
IFN0cmluZyYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OwotICAgIHZvaWQgZ2VuZXJhdGVL
ZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSYmIGluaXREYXRhLCBHZW5lcmF0ZUtleUNhbGxiYWNrJiYpOworICAgIHVzaW5nIEdl
bmVyYXRlS2V5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6
U2hhcmVkQnVmZmVyQ29weT4mJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQsIHVpbnQz
Ml90KT47CisgICAgdm9pZCBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgaW5pdERhdGEsIEdlbmVyYXRlS2V5Q2FsbGJhY2sm
Jik7CiAgICAgdm9pZCByZWxlYXNlS2V5cygpOwotICAgIHVzaW5nIFVwZGF0ZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2U+JiYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OwotICAgIHZvaWQgdXBk
YXRlKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIHVwZGF0ZSwgVXBkYXRlQ2FsbGJh
Y2smJik7Ci0gICAgdXNpbmcgQ2FjaGVkS2V5Rm9yS2V5SURDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYmKT47
CisgICAgdXNpbmcgVXBkYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2ws
IE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4mJiwgdW5zaWduZWQgc2hvcnQsIHVpbnQz
Ml90KT47CisgICAgdm9pZCB1cGRhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgdXBkYXRlLCBV
cGRhdGVDYWxsYmFjayYmKTsKKyAgICB1c2luZyBDYWNoZWRLZXlGb3JLZXlJRENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+JiYp
PjsKICAgICB2b2lkIGNhY2hlZEtleUZvcktleUlEKFN0cmluZyBrZXlJZCwgQ2FjaGVkS2V5Rm9y
S2V5SURDYWxsYmFjayYmKTsKIAogICAgIFdlYWtQdHI8UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5PiBtX2ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5tZXNzYWdlcy5p
bgppbmRleCAxNDk2MmNlOTFkZjU1OTVmYzdhY2UyYzA1MDc3YjA1MWVhMGRlMzcwLi5hNmNjNzZh
MWJhZmIyYWM0OTM1MzRiNzE0OWI5NWMyOTU0MGI3NTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDEwICsyNCwxMCBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKIG1lc3NhZ2Vz
IC0+IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBHZW5l
cmF0ZUtleVJlcXVlc3QoU3RyaW5nIG1pbWVUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UgaW5pdERhdGEpIC0+IChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U+IG5leHRNZXNzYWdlLCBTdHJpbmcgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0IGVy
cm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkgU3luY2hyb25vdXMKKyAgICBHZW5lcmF0ZUtl
eVJlcXVlc3QoU3RyaW5nIG1pbWVUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgaW5pdERhdGEp
IC0+IChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG5leHRNZXNzYWdlLCBTdHJpbmcg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0IGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVt
Q29kZSkgU3luY2hyb25vdXMKICAgICBSZWxlYXNlS2V5cygpCi0gICAgVXBkYXRlKElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSB1cGRhdGUpIC0+IChib29sIHN1Y2NlZWRlZCwgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBuZXh0TWVzc2FnZSwgdW5zaWduZWQg
c2hvcnQgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKSBTeW5jaHJvbm91cwotICAgIENh
Y2hlZEtleUZvcktleUlEKFN0cmluZyBrZXlJZCkgLT4gKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZT4ga2V5KSBTeW5jaHJvbm91cworICAgIFVwZGF0ZShJUEM6OlNoYXJl
ZEJ1ZmZlckNvcHkgdXBkYXRlKSAtPiAoYm9vbCBzdWNjZWVkZWQsIE9wdGlvbmFsPElQQzo6U2hh
cmVkQnVmZmVyQ29weT4gbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0IGVycm9yQ29kZSwgdWlu
dDMyX3Qgc3lzdGVtQ29kZSkgU3luY2hyb25vdXMKKyAgICBDYWNoZWRLZXlGb3JLZXlJRChTdHJp
bmcga2V5SWQpIC0+IChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGtleSkgU3luY2hy
b25vdXMKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTVjMmIyYmMyZTJlMjk5YWZkNWE1
MjkzYTQyNDUwYjI2ZTFiNGMyZC4uZjNiNGYwMzc4OTVlNDFiMThmMGVmNGJlMGQzMzI4YTM3MWUy
MzNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogCi0jaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgpAQCAtMTA1MSw3ICsxMDUwLDcgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmJ1ZmZlcmluZ1RpbWVyRmlyZWQoKQogICAgIGlm
IChtX2J1ZmZlcmVkRGF0YS0+aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcih7ICpt
X2J1ZmZlcmVkRGF0YSB9LCBtX2J1ZmZlcmVkRGF0YUVuY29kZWREYXRhTGVuZ3RoKSk7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgKm1fYnVm
ZmVyZWREYXRhIH0sIG1fYnVmZmVyZWREYXRhRW5jb2RlZERhdGFMZW5ndGgpKTsKIAogICAgIG1f
YnVmZmVyZWREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKICAgICBtX2J1ZmZlcmVkRGF0
YUVuY29kZWREYXRhTGVuZ3RoID0gMDsKQEAgLTEwNjEsNyArMTA2MCw3IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzZW5kQnVmZmVyKFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBzaXplX3Qg
ZW5jb2RlZERhdGFMCiB7CiAgICAgQVNTRVJUKCFpc1N5bmNocm9ub3VzKCkpOwogCi0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyBi
dWZmZXIgfSwgZW5jb2RlZERhdGFMZW5ndGgpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRlcjo6RGlkUmVjZWl2ZURhdGEoeyBidWZmZXIgfSwgZW5jb2RlZERhdGFMZW5ndGgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCAzZmRhNzVm
OWNjN2Q2NjVjODQ3OGI5Y2UxYjkwZmE3M2FmYzZiODJkLi4xODVlYTAwZmY1MjY3Zjg0ZDUwN2Y0
MGFiZTViYWIxZGVmM2UzNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRh
c2suY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzcy5oIgpAQCAtMTU5LDE1ICsxNTgsNiBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgaW50NgogICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRp
ZFJlY2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7CiB9CiAKLXZvaWQgU2Vy
dmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihjb25zdCBJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgp
Ci17Ci0gICAgaWYgKG1faXNEb25lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIW1f
dGltZW91dFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIHNlbmRUb0NsaWVudChNZXNzYWdlczo6V2Vi
UmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVTaGFyZWRCdWZmZXIgeyBkYXRhLCBlbmNvZGVkRGF0
YUxlbmd0aCB9KTsKLX0KLQogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZl
Rm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCiB7CiAgICAg
aWYgKG1faXNEb25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXgg
OTVlZDc1OTZhOGIxMWFkOWJkZThjOWIyZTJmMDVhYWY1NjdmNjBjNy4uZDMzY2JmZjEwODljYzEw
NWRkMWEwMGJlYmZkZjYxZDMzYzdmNjZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5oCkBAIC00NCw3ICs0NCw2IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBuYW1l
c3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEYXRhUmVmZXJlbmNlOwotY2xh
c3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKIGNsYXNzIERlY29kZXI7CiBjbGFzcyBGb3Jt
RGF0YVJlZmVyZW5jZTsKIH0KQEAgLTgwLDcgKzc5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBi
b29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcihjb25zdCBJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7
CiAgICAgdm9pZCBkaWRGaW5pc2goKTsKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5tZXNzYWdlcy5pbgppbmRleCA0Mjc0YWRjMTY2MTg3NDBhZTg4OGYyMTFkZjQ5MjIzNGNm
MzQ0NmM0Li4xOGU2MjlmMGQxNDZlZDJkNDI5ZGIxYmEyODcwMWU4M2ZiOTZlNjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgpAQCAt
MjcsOCArMjcsNyBAQCBtZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIE5vdFJlZkNv
dW50ZWQgewogICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBE
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlKQogICAgIERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQotICAg
IERpZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoKQotICAgIERpZFJlY2VpdmVTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVj
ZWl2ZURhdGEoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpCiAgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgZGF0YSkKICAgICBEaWRGaW5pc2goKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5j
b2Rlci5oCmluZGV4IDEzZjNjNDNlNDE3YTY0NDQ5YzkwMmIyYjYzODY3OTYxZTI5ZDUzMTcuLjM2
NzhkNGZhZTI5MTUyZDk5MGY0ZDNhNGYwYjdlMGFmNmNmNzQ3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9FbmNvZGVyLmgKQEAgLTk1LDEyICs5NSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGFkZEF0dGFjaG1lbnQoQXR0YWNobWVudCYmKTsKICAgICBWZWN0b3I8QXR0YWNobWVudD4gcmVs
ZWFzZUF0dGFjaG1lbnRzKCk7CisgICAgdm9pZCByZXNlcnZlKHNpemVfdCk7CiAKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBpc0lQQ0VuY29kZXIgPSB0cnVlOwogCiBwcml2YXRlOgotICAgIHZvaWQg
cmVzZXJ2ZShzaXplX3QpOwotCiAgICAgdWludDhfdCogZ3JvdyhzaXplX3QgYWxpZ25tZW50LCBz
aXplX3QpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6
OmlzX2VudW08RT46OnZhbHVlPiogPSBudWxscHRyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvSGFuZGxlTWVzc2FnZS5oCmluZGV4IDQ1YzUyYTM1NGFlYjEyMjUyNTEwZDgyNjhjYmQ3YTU5
MTQ1OTM5MmYuLjdmZDE4M2E1NmFlOThiMDY2NDVmZjc1MTQ4YWMyOTgzYzUyZTRhZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKQEAgLTk2LDYgKzk2LDEy
IEBAIHN0cnVjdCBDb2RpbmdUeXBlIHsKICAgICB0eXBlZGVmIHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8
c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+IFR5cGU7CiB9OwogCitjbGFzcyBEYXRhUmVmZXJl
bmNlOworY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKK3RlbXBsYXRlPD4gc3RydWN0
IENvZGluZ1R5cGU8Y29uc3QgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSY+IHsKKyAgICB1c2lu
ZyBUeXBlID0gRGF0YVJlZmVyZW5jZTsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFRzPgog
c3RydWN0IENvZGluZ1R5cGU8c3RkOjp0dXBsZTxUcy4uLj4+IHsKICAgICB0eXBlZGVmIHN0ZDo6
dHVwbGU8dHlwZW5hbWUgQ29kaW5nVHlwZTxUcz46OlR5cGUuLi4+IFR5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckNvcHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
M2NiMzM4NzYzNmRjYWZjZWFjZWFkOTFiODYzOWI3YmE3NjM2YzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmNwcApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyQ29weS5oIgorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2lu
Y2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisKK25hbWVzcGFjZSBJUEMg
eworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBTaGFyZWRCdWZmZXJDb3B5Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICB1aW50NjRfdCBidWZmZXJTaXpl
ID0gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgpIDogMDsKKyAgICBlbmNvZGVyLnJlc2VydmUo
c2l6ZW9mKGJ1ZmZlclNpemUpICsgYnVmZmVyU2l6ZSk7CisgICAgZW5jb2RlciA8PCBidWZmZXJT
aXplOworICAgIGlmICghYnVmZmVyU2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoYXV0
byYgc2VnbWVudCA6ICptX2J1ZmZlcikKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0
aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc2VnbWVudC5zZWdtZW50LT5k
YXRhKCkpLCBzZWdtZW50LnNlZ21lbnQtPnNpemUoKSwgMSk7Cit9CisKK09wdGlvbmFsPFNoYXJl
ZEJ1ZmZlckNvcHk+IFNoYXJlZEJ1ZmZlckNvcHk6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVW
YXJpYWJsZUxlbmd0aEJ5dGVBcnJheShkYXRhKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGRhdGEuc2l6ZSgp
KQorICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOworICAgIHJldHVybiB7IFdURk1vdmUoYnVmZmVyKSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJl
ZEJ1ZmZlckNvcHkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckNv
cHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMWMxOGQ2NDI3NmU2YTMxOTAxMWFjYzQxMmIxNjgxMTY1ZWMzZmQx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVm
ZmVyQ29weS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEVuY29kZXMg
YSBTaGFyZWRCdWZmZXIgdGhhdCBpcyByZWNlaXZlZCBhcyBhIGNvcHkgb2YgdGhlIGRlY29kZWQg
ZGF0YSBpbiBhIG5ldyBTaGFyZWRCdWZmZXIuCisvLyBUbyBhdm9pZCBjb3B5aW5nIGZyb20gdGhl
IERlY29kZXIsIHVzZSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHRvIHJlY2VpdmUgYSBEYXRh
UmVmZXJlbmNlIGluc3RlYWQuCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIERlY29kZXI7CitjbGFz
cyBFbmNvZGVyOworCitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5IHsKK3B1YmxpYzoKKyAgICBTaGFy
ZWRCdWZmZXJDb3B5KCkgPSBkZWZhdWx0OworCisgICAgU2hhcmVkQnVmZmVyQ29weShSZWZQdHI8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlcihXVEZN
b3ZlKGJ1ZmZlcikpIHsgfQorICAgIFNoYXJlZEJ1ZmZlckNvcHkoUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJiBidWZmZXIpCisgICAgICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7
IH0KKyAgICBTaGFyZWRCdWZmZXJDb3B5KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQorICAgICAgICA6IG1fYnVmZmVyKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkp
CisgICAgeworICAgICAgICBtX2J1ZmZlci0+YXBwZW5kKGJ1ZmZlcik7CisgICAgfQorCisgICAg
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIHsgcmV0dXJuIG1fYnVmZmVy
OyB9CisgICAgY29uc3QgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIGNv
bnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9CisKKyAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+ZGF0YSgpIDogbnVsbHB0cjsgfQorICAgIHNp
emVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgpIDog
MDsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZm
ZXItPmlzRW1wdHkoKSA6IHRydWU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIE9wdGlvbmFsPFNoYXJlZEJ1ZmZlckNv
cHk+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4gbV9idWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmY3Mjg1YWMwYjRiZDZkZTExZGZlYjlmZTMyOGYwMWM5OTk5NTBh
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCisKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisKK25hbWVzcGFjZSBJUEMgeworCit2b2lkIFNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGlmIChtX2RhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIFNoYXJlZEJ1ZmZlckNvcHk6
OmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCgh
YnVmZmVyKCkpOworICAgIGVuY29kZXIgPDwgbV9kYXRhOworfQorCit9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaAppbmRleCAyY2ZjN2ZhYzgxMThiZWJkMTg1NTNhYzIyYTFkODVkN2RmMjgw
YWYwLi5kM2QwZWM1ZTk3ODU1OTliNjM0YTg0YzZjNDQ3MWI1MmNkMjIxM2YxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTIzLDQ3ICsyMywzMiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIEVuY29kZXMgYSBTaGFyZWRCdWZmZXIgb3IgRGF0YVJlZmVyZW5jZSB0aGF0IGlz
IHJlY2VpdmVkIGFzIGEgRGF0YVJlZmVyZW5jZSB0byB0aGUgZGVjb2RlZCBkYXRhLgorCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKIAogbmFtZXNwYWNlIElQQyB7CiAKLWNsYXNzIFNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgeworY2xhc3MgRW5jb2RlcjsKKworY2xhc3MgU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSA6IHByaXZhdGUgU2hhcmVkQnVmZmVyQ29weSB7CiBwdWJsaWM6
CiAgICAgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSgpID0gZGVmYXVsdDsKLSAgICBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
KSA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9Ci0gICAgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikgOiBtX2J1ZmZlcihX
VEZNb3ZlKGJ1ZmZlcikpIHsgfQotICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UoY29uc3Qg
V2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBidWZmZXIpCi0gICAgICAgIDogbV9idWZmZXIoV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKLSAgICB7Ci0gICAgICAgIG1fYnVmZmVyLT5hcHBl
bmQoYnVmZmVyKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYg
YnVmZmVyKCkgeyByZXR1cm4gbV9idWZmZXI7IH0KLSAgICBjb25zdCBSZWZQdHI8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPiYgYnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXI7IH0KLQotICAg
IGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5k
YXRhKCkgOiBudWxscHRyOyB9Ci0gICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2J1
ZmZlciA/IG1fYnVmZmVyLT5zaXplKCkgOiAwOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+aXNFbXB0eSgpIDogdHJ1ZTsgfQorICAgIHVz
aW5nIFNoYXJlZEJ1ZmZlckNvcHk6OlNoYXJlZEJ1ZmZlckNvcHk7CiAKLSAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBtX2J1
ZmZlcjsKLSAgICB9CisgICAgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShEYXRhUmVmZXJlbmNl
IGRhdGEpCisgICAgICAgIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpIHsgfQorICAgIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCisgICAg
ICAgIDogbV9kYXRhKGRhdGEsIHNpemUpIHsgfQogCi0gICAgc3RhdGljIE9wdGlvbmFsPFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsKLSAg
ICAgICAgT3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+IGJ1ZmZlcjsKLSAg
ICAgICAgZGVjb2RlciA+PiBidWZmZXI7Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSgqYnVmZmVy
KSB9OwotICAgIH0KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgLy8gVXNl
IElQQzo6RGF0YVJlZmVyZW5jZSB0byBkZWNvZGUuCiAKIHByaXZhdGU6Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7CisgICAgRGF0YVJlZmVyZW5jZSBtX2RhdGE7
CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CmluZGV4IGU5ZGFlOWU1M2M1MDJkN2NmOGM3NDRiMWE5YWY1YmQ1YTRiMjcx
Y2IuLjZhZTY5MWQ3YTk1MTI1NGNmNmIzNTNlMTcyZjgxMTFiNTNhZWMzYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNTc2LDcgKzU3Niw2IEBAIGRlZiBo
ZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgIGhlYWRlcl9pbmZvc19hbmRfdHlwZXMgPSBjbGFz
c190ZW1wbGF0ZV9oZWFkZXJzKHR5cGUpCiAKICAgICBzcGVjaWFsX2Nhc2VzID0gewotICAgICAg
ICAnSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJzogWyciU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZS5oIicsICciRGF0YVJlZmVyZW5jZS5oIiddLAogICAgICAgICAnTWFjaFNlbmRSaWdo
dCc6IFsnPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+J10sCiAgICAgICAgICdKU0M6Ok1lc3NhZ2VMZXZl
bCc6IFsnPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPiddLAogICAgICAgICAnSlNDOjpN
ZXNzYWdlU291cmNlJzogWyc8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+J10sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCBhZDc4MmMyZTYyZjcyZjdlZWE4NWMzMWIwMGY3YmEyMDlmMjJiNDk1Li5kMjIz
ZjNlNTJkMmNhZTE3YmZkMzA3N2ZmZGZmZmM2NWE5OWU2NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTE0
MCw2ICsxNDAsOCBAQCBQbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9y
bS9JUEMvRW5jb2Rlci5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNwcCBAbm8tdW5p
ZnkKK1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmNwcCBAbm8tdW5pZnkKK1BsYXRmb3Jt
L0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQ
Qy9TdHJpbmdSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogCiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGE4YjUyYjcyYTA4M2ZjMDRkNWEx
NTI1NjZkMDMxMjhhMWU5NTEzZWUuLmMwNzlmMTE4ZGQ0ZWVmNzc1ODcyZjk3NTBiZGZkM2JmNzg1
M2U3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCkBAIC0zNiw3ICszNiw3IEBACiAjaW1wb3J0ICJRdWlja0xvb2tUaHVtYm5h
aWxMb2FkZXIuaCIKICNpbXBvcnQgIlNhZmVCcm93c2luZ1NQSS5oIgogI2ltcG9ydCAiU2FmZUJy
b3dzaW5nV2FybmluZy5oIgotI2ltcG9ydCAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgor
I2ltcG9ydCAiU2hhcmVkQnVmZmVyQ29weS5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgpAQCAtMjM4LDEyICsyMzgsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdDYXJl
dFJlY3QoY29uc3QgSW50UmVjdCYgZHJhZ0NhcmV0UmVjdCkKIAogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNo
bWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYmIGF0dGFjaG1lbnQsIGNvbnN0IFN0cmluZyYgcHJl
ZmVycmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYgZGF0
YVJlZmVyZW5jZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dChSZWY8QVBJOjpBdHRhY2htZW50PiYmIGF0dGFjaG1lbnQsIGNvbnN0IFN0cmluZyYgcHJlZmVy
cmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYgYnVmZmVyQ29weSkKIHsK
LSAgICBpZiAoZGF0YVJlZmVyZW5jZS5pc0VtcHR5KCkpCisgICAgaWYgKGJ1ZmZlckNvcHkuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGZpbGVXcmFwcGVyID0gYWRvcHRO
UyhbcGFnZUNsaWVudCgpLmFsbG9jRmlsZVdyYXBwZXJJbnN0YW5jZSgpIGluaXRSZWd1bGFyRmls
ZVdpdGhDb250ZW50czpkYXRhUmVmZXJlbmNlLmJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKS5hdXRv
cmVsZWFzZSgpXSk7CisgICAgYXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW3BhZ2VDbGllbnQo
KS5hbGxvY0ZpbGVXcmFwcGVySW5zdGFuY2UoKSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6
YnVmZmVyQ29weS5idWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCldKTsKICAgICBbZmlsZVdy
YXBwZXIgc2V0UHJlZmVycmVkRmlsZW5hbWU6cHJlZmVycmVkRmlsZU5hbWVdOwogICAgIGF0dGFj
aG1lbnQtPnNldEZpbGVXcmFwcGVyKGZpbGVXcmFwcGVyLmdldCgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNhYmE1MzdlZjQ2YjZhMjVhY2NiZjk2
MWUxYjA1NTlmNjBjMmNmYzIuLmI2ZjQxNWU4ZDNlZmZlM2IxMzc0OWFhNGNhNjhjYmNiNGU0N2Nl
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTksNyAr
NTksNiBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JN
YW5hZ2VyLmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2Fk
UHJveHkuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFQcm94eS5oIgpAQCAtNzA3NCwxMyArNzA3MywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6dm9pZENhbGxiYWNrKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBjYWxsYmFjay0+cGVy
Zm9ybUNhbGxiYWNrKCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkYXRhQ2FsbGJhY2soY29u
c3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPERhdGFDYWxsYmFjaz4oY2Fs
bGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2Fs
bGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShBUEk6OkRhdGE6OmNyZWF0ZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhUmVmZXJlbmNlLmRhdGEoKSksIGRh
dGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFj
a1dpdGhSZXR1cm5WYWx1ZShBUEk6OkRhdGE6OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEoKSwg
ZGF0YVJlZmVyZW5jZS5zaXplKCkpLnB0cigpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmJv
b2xDYWxsYmFjayhib29sIHJlc3VsdCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtOTMyNCw3
ICs5MzIzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldExvYWREZWNpc2lvbkZvckljb24oY29u
c3QgV2ViQ29yZTo6TGlua0ljb24mIGljb24sIENhbGxiYWMKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmZpbmlzaGVkTG9hZGluZ0ljb24oQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBj
b25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZmluaXNoZWRMb2FkaW5nSWNvbihDYWxsYmFja0lEIGNhbGxiYWNrSUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKICAgICBkYXRhQ2FsbGJhY2soZGF0YSwgY2FsbGJh
Y2tJRCk7CiB9CkBAIC05NTc0LDcgKzk1NzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRl
QXR0YWNobWVudEljb24oY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBSZWZQdHI8Uwog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckF0dGFjaG1lbnRJZGVudGlm
aWVyRnJvbURhdGEoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwg
Y29uc3QgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiBkYXRhKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
bV9wcm9jZXNzLCBtX3ByZWZlcmVuY2VzLT5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKSk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIElkZW50aWZpZXJUb0F0dGFjaG1lbnRNYXA6Omlz
VmFsaWRLZXkoaWRlbnRpZmllcikpOwpAQCAtOTY5Miw3ICs5NjkxLDcgQEAgV2ViUGFnZVByb3h5
OjpTaG91bGRVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyBXZWJQYWdlUHJveHk6OndpbGxVcGRh
dGVBdHRhY2htZW4KIAogI2lmICFQTEFURk9STShDT0NPQSkKIAotdm9pZCBXZWJQYWdlUHJveHk6
OnBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVu
dD4mJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JikKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwZTY1NDZiODQ5ZjI4
NTYzM2FiNTM5MWIxYzBiNzAxZTEyOTIyMTRlLi5mOWNlZmQ5NzI3NmUzM2Q5ZDFiMjBiN2Y5MzAx
NWZmZWQzNmI5ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MjA2LDkgKzIwNiwxMCBAQCBlbnVtIGNsYXNzIEluc3BlY3RvclRhcmdldFR5cGUgOiB1aW50OF90
OwogfQogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CiBjbGFzcyBEZWNv
ZGVyOwogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlOworY2xhc3MgU2hhcmVkQnVmZmVyQ29weTsKIH0KIE9CSkNfQ0xBU1MgTlNGaWxlV3Jh
cHBlcjsKIE9CSkNfQ0xBU1MgV0tRTFRodW1ibmFpbExvYWRPcGVyYXRpb247CkBAIC0zMDQsNyAr
MzA1LDYgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhOwog
Y2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKLWNsYXNzIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2U7CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFZpZXdTbmFwc2hvdDsK
IGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKIAogICAgIHZvaWQgZ2V0TG9hZERl
Y2lzaW9uRm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIFdlYktpdDo6Q2FsbGJhY2tJ
RCk7Ci0gICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJY29uKFdlYktpdDo6Q2FsbGJhY2tJRCwgY29u
c3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBmaW5pc2hlZExv
YWRpbmdJY29uKFdlYktpdDo6Q2FsbGJhY2tJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7
CiAKICAgICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9pZCBzZXRXaW5kb3dG
cmFtZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKQEAgLTIxMDQsNyArMjEwNCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9v
bCBoYW5kbGVkKTsKIAogICAgIHZvaWQgdm9pZENhbGxiYWNrKENhbGxiYWNrSUQpOwotICAgIHZv
aWQgZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgaW1hZ2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgYm9vbENhbGxiYWNrKGJvb2wg
cmVzdWx0LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmlu
ZyYsIENhbGxiYWNrSUQpOwpAQCAtMjI3NCwxMiArMjI3NCwxMiBAQCBwcml2YXRlOgogICAgIHZv
aWQgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKFdlYlByb2Nlc3NQcm94eSogPSBudWxscHRyKTsKIAog
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgdm9pZCByZWdpc3RlckF0dGFjaG1l
bnRJZGVudGlmaWVyRnJvbURhdGEoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCByZWdpc3RlckF0dGFjaG1lbnRJZGVudGlm
aWVyRnJvbURhdGEoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29u
c3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJDb3B5
Jik7CiAgICAgdm9pZCByZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgZmls
ZVBhdGgpOwogICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50c0Zyb21TZXJpYWxpemVkRGF0YShW
ZWN0b3I8V2ViQ29yZTo6U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiYmKTsKICAgICB2b2lkIGNs
b25lQXR0YWNobWVudERhdGEoY29uc3QgU3RyaW5nJiBmcm9tSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiB0b0lkZW50aWZpZXIpOwogCi0gICAgdm9pZCBwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dChSZWY8QVBJOjpBdHRhY2htZW50PiYmLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1l
LCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIHBsYXRm
b3JtUmVnaXN0ZXJBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYsIGNvbnN0IFN0cmlu
ZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYpOwogICAg
IHZvaWQgcGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiwg
Y29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNsb25lQXR0YWNobWVu
dChSZWY8QVBJOjpBdHRhY2htZW50PiYmIGZyb21BdHRhY2htZW50LCBSZWY8QVBJOjpBdHRhY2ht
ZW50PiYmIHRvQXR0YWNobWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmNDUxYWI5ODg1NDA1NGRlM2JhNTk3YzliMzVh
Y2MwZjRkYmFjYTIzLi5lMWJjZmNkNjFmOWVlMDBjZDZjZWQwOTRjNDkwNDI4MjhkNDI4NTQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC01MzksNyArNTM5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBSZWdpc3RlckF0dGFjaG1lbnRJ
ZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwg
U3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
ZGF0YSkKKyAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlk
ZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJ
UEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlm
aWVyRnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0
cmluZyBmaWxlUGF0aCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKFN0cmluZyBp
ZGVudGlmaWVyKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudHNGcm9tU2VyaWFsaXplZERhdGEoVmVj
dG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gZGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXggOWNjMjQ1MTc3MWFjYmM1
YzY3YTI4NTRlNTFkYTRmZjZiNmM5ODJiNC4uNDM0ZDE3NjRkMGUwZWZmODEyYjEyYTc0MjY1MzQy
MmFmZWQwYmIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5LmgKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAog
bmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOworY2xhc3Mg
U2hhcmVkQnVmZmVyQ29weTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI2LDcgKzEy
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRUeXBlcyhjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsKICAg
ICB2b2lkIHJlYWRUZXh0KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmKTsKICAgICB2b2lkIHJlYWRGaWxlUGF0aHMoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3Ry
aW5nPiYmKT4mJik7Ci0gICAgdm9pZCByZWFkQnVmZmVyKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYpPiYmKTsKKyAgICB2b2lkIHJlYWRC
dWZmZXIoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJik+
JiYpOwogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhJiYpOwogICAgIHZvaWQgY2xlYXJDbGlwYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlOWE4NzUz
NGM2MWQ5MmE3NmY2OTY2Y2VlZjhlNTllZTc5ZTZkMTgyLi5hOTU2ZDVhNzYzZDEzNDRlOGU2MTBh
ZGI0MTM0YTY3NTE1ZDhjYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC02NCw3ICs2NCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhc3RlYm9hcmRQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBHZXRUeXBlcyhT
dHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25v
dXMKICAgICBSZWFkVGV4dChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJpbmcgdGV4dCkg
U3luY2hyb25vdXMKICAgICBSZWFkRmlsZVBhdGhzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4g
KFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJvbm91cwotICAgIFJlYWRCdWZmZXIoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkgU3luY2hyb25vdXMKKyAgICBSZWFkQnVmZmVyKFN0cmlu
ZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoSVBDOjpTaGFyZWRC
dWZmZXJDb3B5IGRhdGEpIFN5bmNocm9ub3VzCiAgICAgV3JpdGVUb0NsaXBib2FyZChTdHJpbmcg
cGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQp
CiAgICAgQ2xlYXJDbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCmluZGV4IGFlYTc2ZTI3
ZGVhYTBmN2YyMWMzNDFjOGZjZjc3MmMyNjBkMjQ1OWUuLmJhYWQ3ODY1NDkwODY1MDgyMTM1MjRj
Y2QwMzJjMGU3OWNiMmY1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZVRhc2suY3BwCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFz
ay5oIgogCiAjaW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5j
ZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJV
UkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcAppbmRleCAzZGViZjM4YTU0Zjk1ZDI0OTM5
OWNmNDhlN2FjYTBkM2RmYTdjM2ZkLi5mY2Q3Mjc2ZDliODFkNTI2NThlMzE4MjAwYzQ1ZTc2YTgy
MDRjMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFzdGVi
b2FyZFByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFz
dGVib2FyZFByb3h5R3RrLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgogCiAjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCi0jaW5jbHVkZSAiU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oPgpAQCAtNTYsNyArNTYs
NyBAQCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZEZpbGVQYXRocyhjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lLCBDb21wbGV0aW9uSAogICAgIENsaXBib2FyZDo6Z2V0KHBhc3RlYm9h
cmROYW1lKS5yZWFkRmlsZVBhdGhzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRCdWZmZXIoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZEJ1ZmZlcihjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKElQQzo6U2hhcmVkQnVmZmVyQ29weSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBDbGlwYm9hcmQ6OmdldChwYXN0ZWJvYXJkTmFtZSkucmVhZEJ1ZmZlcihwYXN0ZWJv
YXJkVHlwZS51dGY4KCkuZGF0YSgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
YmY2M2IzMDM5NTI4MDJlMDkwYmRjNmYxYjA5OGE0MGU3YmI1YWEwLi40NTUwNzdkYjBlOWYzYWYy
OThjZGU4Y2Y0NzJiYWE5NTFhZmY2M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0MiwxMCArNzQyLDEzIEBACiAJCTJEQUYwNkQ2
MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFGMDZENDE4QkQxQTQ3
MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovOyB9OwogCQkyREI5
NDI5OTIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI5NDI5NzIzNEU3QTdG
MDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCTJEQjk2MDUz
MjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCOTYwNTIyMzk4ODZCOTAwMTAy
NzkxIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiICovOyB9OworCQkyREMxODEyNDVCNTQ5MzQz
QkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxODU1RURCRkI4NTBCQTBCNkQwNkQg
LyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi87IH07CiAJCTJEQzE4RkFEMjE4OTEw
NDkwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZBQjIxODkxMDQ4MDAyNUE4OEQgLyogV0tEcmF3aW5n
Vmlldy5oICovOyB9OwogCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZB
RjIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggKi87IH07CiAJCTJEQzE4RkIzMjE4
QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMThGQjEyMThBNkU5RTAwMjVBODhEIC8q
IFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi87IH07CiAJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4
RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXll
clRyZWVWaWV3cy5tbSAqLzsgfTsKKwkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJl
ZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICov
OyB9OworCQkyREMxOEZGNkVGMkEzMTMwQzEzMDE3NjcgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRD
MTg4MUFDQkNBQjVENTdDNUM2RUYwIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLzsg
fTsKIAkJMkRDNkQ5QzMxOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRl
clJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREM2RDlDMTE4QzQ0QTYxMDA0M0JBRDQgLyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVn
aXN0cnkuaCAqLzsgfTsKIAkJMkREMTJBMDgxQTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDQ1
QURDMUU1Rjg5NzIwMDZDMzU1RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oICovOyB9OwpA
QCAtMTQ0MSw2ICsxNDQ0LDcgQEAKIAkJQTE3OThCNTEyMjMwQTEwRTAwMDc2NEJEIC8qIFBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTE3OThCNEYyMjMwQTBGRTAwMDc2NEJEIC8qIFBheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlci5oICovOyB9OwogCQlBMTgxQTc5ODIxQUNDNzRCMDA1OUEzMTYg
LyogV2ViS2l0QWRkaXRpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE4MUE3OTcyMUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9ucy5t
bSAqLzsgfTsKIAkJQTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODJENUIz
MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggKi87IH07CisJCUExODM0OTQy
MjRFRjQ2NzgwMEJEQzlBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTggLyog
U2hhcmVkQnVmZmVyQ29weS5oICovOyB9OwogCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgyM0IgLyog
X1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUREM0JGMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tX
ZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oICovOyB9OwogCQlBMUE0RkU1QTE4RENFOUZB
MDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExQTRG
RTVDMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1OTE4RENFOUZBMDBCNUVB
OEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovOyB9OwpAQCAtMzE1MCw2ICszMTU0LDkgQEAK
IAkJMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9X
S01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9
IGlvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEQjk2MDUyMjM5ODg2QjkwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5z
YiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyQ29weS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQzE4NTVFREJGQjg1MEJBMEI2RDA2RCAv
KiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzE4
RkFCMjE4OTEwNDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLRHJhd2luZ1ZpZXcuaDsgcGF0aCA9IGlvcy9XS0RyYXdpbmdWaWV3
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzE4RkFDMjE4OTEwNDgwMDI1QTg4
RCAvKiBXS0RyYXdpbmdWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tEcmF3aW5nVmlldy5tbTsgcGF0aCA9IGlvcy9XS0RyYXdpbmdWaWV3Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREMxOEZBRjIxODkxMjY0MDAyNUE4OEQgLyogUGVu
Y2lsS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmNpbEtpdFNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDEwMSw3ICs0MTA4LDcgQEAKIAkJ
NUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFU
YXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFzay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0Yg
LyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNUNDNURCOTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0M1REI5MTIxNDg4
RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTaGFyZWRCdWZmZXJDb3B5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDRDE1MDc2MjI2OEY3RjAwMDZGQjRBRiAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtQ29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrQ2Fj
aGVGaWxlU3lzdGVtQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRDI4
NjQ5MUU3MjJGNDQwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRDI4NjRBMUU3MjJGNDQwMDk0RkRD
OCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0NvbnRlbnRSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQy
OCw3ICs2NDM1LDEwIEBACiAJCQkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VS
ZWNlaXZlck1hcC5oICovLAogCQkJCTFBQUIwMzc3MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdl
U2VuZGVyLmNwcCAqLywKIAkJCQkxQUFCMDM3ODE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNl
bmRlci5oICovLAotCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmggKi8sCisJCQkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJl
ZEJ1ZmZlckNvcHkuY3BwICovLAorCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFy
ZWRCdWZmZXJDb3B5LmggKi8sCisJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLAorCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVG
MCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJMUFFMDBENjkxODMyN0Mx
MjAwMDg3REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMUFFMDBENkExODMyN0Mx
MjAwMDg3REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5oICovLAogCQkJKTsKQEAgLTExMTQyLDYgKzEx
MTUyLDggQEAKIAkJCQk0NkJFQjZERjIyRkJCMTZCMDAyNjk4NjcgLyogU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjQyMEU1MTJEQ0UyRkYwMENBQUUyQyAv
KiBTaGFyZWFibGVCaXRtYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDYxMTY0QzIwRTMw
MDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE4MzQ5
NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFkZXJzICovLAor
CQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVk
TWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyog
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3
REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApA
QCAtMTI4NDEsNiArMTI4NTMsOCBAQAogCQkJCUUxOEU2OTE3MTY5QjY2N0IwMDlCNjY3MCAvKiBT
ZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
REU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRt
YXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNo
YXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMTgxMjQ1QjU0OTM0M0JD
OTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFBREFGQjYyMzY4RTZBODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5wdXREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVDMTVFNSAv
KiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0J1c0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9CdXNEYXRhLmgKaW5kZXggZDIxZDQwNTVhZjQ3MmJhYmI2N2JmZjM5ZGQ0Njgy
YzgzYWEzNGU3Yy4uMWZjMmYwYzY2MDY5NmFlMzQ4NjFjMGIyNDgwYWQwNTdmZWExOTYwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1
c0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvQnVzRGF0YS5oCkBAIC0yNyw4ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9JT0NhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RN
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcApp
bmRleCA0OWZkMzhkMTgyZTJmOTE1NjMzZmE0MGIzYTE4YTRmNGE1NzlkZTNlLi4wOGJhOTg4Y2Iz
ZjExNjc1MGMxNDYzODdmODJmZjUwNWQzZmQ0ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCkBAIC0yOCwxMyArMjgsMTEgQEAKIAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAotI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5z
dGFuY2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1LZXlT
eXN0ZW1Db25maWd1cmF0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmluZGV4IDQzZmI4ZDVmNjNjNTMx
N2M4OWExMGNkOTkxMzM4MWQ3NDNjZTM4NWEuLmRlMTY2NmU5NTlmNjY2MDYwZDg4OGQ3YzYzMmVh
MjkzY2I0OTJjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVk
ZSAiUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RN
SW5zdGFuY2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRl
bnRpZmllci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNS2V5U3lz
dGVtQ29uZmlndXJhdGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3BwCmluZGV4IDkw
NWNjYmUyMzk2ZjliMmY4NmM5YzZiMjZmMzNlMWJhMjM1YjAxNzkuLjk4OGVmMDEyZDU1MmEwZjZi
ZThiYmRhYzI0NzUyZDgzMGNhYTlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlcy5oIgotI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJD
b3B5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uOjpy
ZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSB0eXBlLCBjb25zdCBBdG9tU3RyaW5nCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHk6OlJlcXVlc3RMaWNlbnNlKHR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92
ZShpbml0RGF0YSkpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBi
b29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAg
ICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OlJlcXVl
c3RMaWNlbnNlKHR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSkpLCBbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJv
b2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtZXNzYWdlLmJ1ZmZlcigpKSB7
CiAgICAgICAgICAgICBjYWxsYmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCBlbXB0eVN0cmlu
ZygpLCBmYWxzZSwgRmFpbGVkKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwNyw3ICsxMDcs
NyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbjo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2VucwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpSZW1v
dmVTZXNzaW9uRGF0YShzZXNzaW9uSWQsIHR5cGUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKEtleVN0YXR1c1ZlY3RvciYmIGNoYW5nZWRLZXlzLCBPcHRpb25hbDxJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2U+JiYgbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQpIG11dGFibGUg
eworICAgIG1fZmFjdG9yeS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6
UmVtb3ZlU2Vzc2lvbkRhdGEoc2Vzc2lvbklkLCB0eXBlKSwgW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChLZXlTdGF0dXNWZWN0b3ImJiBjaGFuZ2VkS2V5cywgT3B0aW9uYWw8SVBDOjpT
aGFyZWRCdWZmZXJDb3B5PiYmIG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAg
ICAgICAgT3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+IHJlYWxNZXNzYWdlID0gV1RGOjpudWxs
b3B0OwogICAgICAgICBpZiAobWVzc2FnZSAmJiBtZXNzYWdlLnZhbHVlKCkuYnVmZmVyKCkpCiAg
ICAgICAgICAgICByZWFsTWVzc2FnZSA9IG1lc3NhZ2UudmFsdWUoKS5idWZmZXIoKS5yZWxlYXNl
Tm9uTnVsbCgpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNz
aW9uOjp1cGRhdGVLZXlTdGF0dXNlcyhLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNlcykKICAg
ICAgICAgbV9jbGllbnQtPnVwZGF0ZUtleVN0YXR1c2VzKFdURk1vdmUoa2V5U3RhdHVzZXMpKTsK
IH0KIAotdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OnNlbmRNZXNzYWdlKFdlYkNvcmU6
OkNETU1lc3NhZ2VUeXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIG1l
c3NhZ2UpCit2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbjo6c2VuZE1lc3NhZ2UoV2ViQ29y
ZTo6Q0RNTWVzc2FnZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgbWVzc2FnZSkK
IHsKICAgICBpZiAobV9jbGllbnQgJiYgbWVzc2FnZS5idWZmZXIoKSkKICAgICAgICAgbV9jbGll
bnQtPnNlbmRNZXNzYWdlKHR5cGUsIG1lc3NhZ2UuYnVmZmVyKCkucmVsZWFzZU5vbk51bGwoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaAppbmRleCAyNmMyOGJlNzY3NTAxNDE2ZjY3ODQzOGMz
NjA1NWE1M2FmMWYwN2FiLi40ZmZlNGNhY2VjY2RlNDNkNWNiMTFlMjM2Y2EwNDVhY2RhODNhN2Vi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0NETUluc3RhbmNlU2Vzc2lvbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNz
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8v
IE1lc3NhZ2VzCiAgICAgdm9pZCB1cGRhdGVLZXlTdGF0dXNlcyhLZXlTdGF0dXNWZWN0b3ImJik7
Ci0gICAgdm9pZCBzZW5kTWVzc2FnZShXZWJDb3JlOjpDRE1NZXNzYWdlVHlwZSwgSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgc2VuZE1lc3NhZ2UoV2ViQ29yZTo6
Q0RNTWVzc2FnZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmKTsKICAgICB2b2lkIHNlc3Np
b25JZENoYW5nZWQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHNldENsaWVudChXZWFrUHRy
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4mJiBjbGllbnQpIGZpbmFsIHsgbV9j
bGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b24ubWVzc2FnZXMuaW4KaW5kZXggYzhjMjM5MmU3ZWY4NjIwNDYyMWQyODQxNDM4YjVlZGY0ZDM4
MTUzNi4uYWEyZDM3YmRmNWVmNmQwNTdhZGY2OWFmNjBjZTZiOGE3YjgzOGU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAK
IAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uIE5vdFJlZkNvdW50ZWQgewog
ICAgIFVwZGF0ZUtleVN0YXR1c2VzKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3Rh
dHVzVmVjdG9yIGtleVN0YXR1c2VzKQotICAgIFNlbmRNZXNzYWdlKGVudW06dWludDhfdCBXZWJD
b3JlOjpDRE1NZXNzYWdlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
bWVzc2FnZSkKKyAgICBTZW5kTWVzc2FnZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q0RNTWVzc2Fn
ZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IG1lc3NhZ2UpCiAgICAgU2Vzc2lvbklk
Q2hhbmdlZChTdHJpbmcgc2Vzc2lvbklkKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmNwcApp
bmRleCA2MTg0MzgzMjg5NzdkYjdmZThlODMyM2JhODNhMjRjNWNjNzY0NjFkLi5hYzM1NzQyYTli
NzYxNDkzOWUxM2M0ZDU0MjRjOTQzY2RhMWUwNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5j
cHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ29weS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgpAQCAtMzks
MTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAotc3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY29udmVydFRvQXJyYXlCdWZmZXIoSVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKQorc3RhdGljIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gY29udmVydFRvQXJyYXlCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgYnVm
ZmVyKQogewogICAgIGlmIChidWZmZXIuYnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBBcnJheUJ1
ZmZlcjo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPFVpbnQ4QXJyYXk+IGNvbnZlcnRUb1VpbnQ4QXJy
YXkoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKQorc3RhdGljIFJlZlB0
cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hhcmVkQnVmZmVyQ29weSYm
IGJ1ZmZlcikKIHsKICAgICBhdXRvIGFycmF5QnVmZmVyID0gY29udmVydFRvQXJyYXlCdWZmZXIo
V1RGTW92ZShidWZmZXIpKTsKICAgICBpZiAoIWFycmF5QnVmZmVyKQpAQCAtNTcsMTUgKzU3LDcg
QEAgc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGIKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1z
dGF0aWMgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBjb252ZXJ0VG9P
cHRpb25hbERhdGFSZWZlcmVuY2UoVCBhcnJheSkKLXsKLSAgICBpZiAoIWFycmF5KQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGFycmF5LT5kYXRhKCksIGFycmF5LT5ieXRlTGVuZ3RoKCkpIH07Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotc3RhdGljIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBjb252ZXJ0
VG9EYXRhUmVmZXJlbmNlKFQgYXJyYXkpCitzdGF0aWMgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGNv
bnZlcnRUb1NoYXJlZEJ1ZmZlckNvcHkoVCBhcnJheSkKIHsKICAgICBpZiAoIWFycmF5KQogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtODgsOCArODAsOCBAQCBSZWZQdHI8VWludDhBcnJheT4gUmVt
b3RlTGVnYWN5Q0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZQogICAgIGlmICghbV9mYWN0b3J5IHx8ICFpbml0RGF0YSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBhdXRvIGlwY0luaXREYXRhID0gY29udmVydFRvRGF0YVJlZmVyZW5jZShpbml0
RGF0YSk7Ci0gICAgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBpcGNO
ZXh0TWVzc2FnZTsKKyAgICBhdXRvIGlwY0luaXREYXRhID0gY29udmVydFRvU2hhcmVkQnVmZmVy
Q29weShpbml0RGF0YSk7CisgICAgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBpcGNO
ZXh0TWVzc2FnZTsKICAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6Okdl
bmVyYXRlS2V5UmVxdWVzdChtaW1lVHlwZSwgaXBjSW5pdERhdGEpLCBNZXNzYWdlczo6UmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpHZW5lcmF0ZUtleVJlcXVlc3Q6OlJlcGx5KGlwY05leHRN
ZXNzYWdlLCBkZXN0aW5hdGlvblVSTCwgZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKSwgbV9pZGVudGlm
aWVyKTsKIAogICAgIGlmICghaXBjTmV4dE1lc3NhZ2UpCkBAIC0xMTIsOSArMTA0LDkgQEAgYm9v
bCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5RGF0YSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXgKICAgICBpZiAoIW1fZmFjdG9yeSB8fCAha2V5RGF0YSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBpcGNLZXlEYXRhID0gY29udmVydFRvRGF0
YVJlZmVyZW5jZShXVEZNb3ZlKGtleURhdGEpKTsKKyAgICBhdXRvIGlwY0tleURhdGEgPSBjb252
ZXJ0VG9TaGFyZWRCdWZmZXJDb3B5KFdURk1vdmUoa2V5RGF0YSkpOwogICAgIGJvb2wgc3VjY2Vl
ZGVkIHsgZmFsc2UgfTsKLSAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U+IGlwY05leHRNZXNzYWdlOworICAgIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4g
aXBjTmV4dE1lc3NhZ2U7CiAgICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5
OjpVcGRhdGUoaXBjS2V5RGF0YSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJv
eHk6OlVwZGF0ZTo6UmVwbHkoc3VjY2VlZGVkLCBpcGNOZXh0TWVzc2FnZSwgZXJyb3JDb2RlLCBz
eXN0ZW1Db2RlKSwgbV9pZGVudGlmaWVyKTsKIAogICAgIGlmIChpcGNOZXh0TWVzc2FnZSkKQEAg
LTEzMiw3ICsxMjQsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJlbW90ZUxlZ2FjeUNETVNlc3Np
b246OmNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYga2V5SQogICAgIGlmIChmb3VuZElu
Q2FjaGUgIT0gbV9jYWNoZWRLZXlDYWNoZS5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZvdW5kSW5D
YWNoZS0+dmFsdWU7CiAKLSAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U+IGlwY0tleTsKKyAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGlwY0tleTsK
ICAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OkNhY2hlZEtleUZvcktl
eUlEKGtleUlkKSwgTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Q2FjaGVk
S2V5Rm9yS2V5SUQ6OlJlcGx5KGlwY0tleSksIG1faWRlbnRpZmllcik7CiAKICAgICBpZiAoIWlw
Y0tleSkKQEAgLTE0Myw3ICsxMzUsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJlbW90ZUxlZ2Fj
eUNETVNlc3Npb246OmNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYga2V5SQogICAgIHJl
dHVybiBpcGNLZXlCdWZmZXI7CiB9CiAKLXZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbjo6c2Vu
ZE1lc3NhZ2UoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkwpCit2b2lkIFJlbW90ZUxlZ2FjeUNETVNl
c3Npb246OnNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4mJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9jbGllbnQp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKaW5kZXggYzhhOTcxOWViNmIy
Y2YwNjYwNDY3ZDA3MjY4ODI0ODdlNTJkYjJmYS4uNGQ1YmVjZTA1OTExNWU1MmYwMzRlMGE1MTQ1
ZDAyNDllZWIyMWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAK
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIHNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVy
Q29weT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKTsKICAgICB2b2lk
IHNlbmRFcnJvcihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9y
Q29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSk7CiAKICAgICBXZWFrUHRyPFJlbW90ZUxlZ2FjeUNE
TUZhY3Rvcnk+IG1fZmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdl
cy5pbgppbmRleCA4NDdhZjYwNDAxZjkxZTM0MTBjMmZlNGQ0ZTQ0NzE1MjYxM2ExMjg2Li4xMmY2
ODc4YTgzMzcwMjIwNDlmMDU1MDcxZTkzZGE0ZWMyYjE0ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24ubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdh
Y3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIAogbWVzc2FnZXMg
LT4gUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKLSAgICBTZW5kTWVzc2Fn
ZShPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IG1lc3NhZ2UsIFN0cmlu
ZyBkZXN0aW5hdGlvblVSTCkKKyAgICBTZW5kTWVzc2FnZShPcHRpb25hbDxJUEM6OlNoYXJlZEJ1
ZmZlckNvcHk+IG1lc3NhZ2UsIFN0cmluZyBkZXN0aW5hdGlvblVSTCkKICAgICBTZW5kRXJyb3Io
ZW51bTp1aW50OF90IFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJy
b3JDb2RlIGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmlu
ZGV4IDg2NDRkNTkwZjY3NmMzZjUwMDUzYjc4MjJmMDQ3MTg1OGNiYjJmMDAuLjk3ZWI1YjM0ZTc1
NjU0NTk3YmFhNjYyNzFjODY4MzkwNjFiZWJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI2LDEzICsy
NiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5
LmgiCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSGFuZ0RldGVjdGlv
bkRpc2FibGVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2ODkzYWYwYjRiNDMy
NzE4NGZkZTU2NGUyNjAwNzBmYWM3M2U0YzYuLjg2NTcxMWIzNjZjMjhkZjQ4NGI0Y2RjMDdhYTNm
Y2YzZGNlYmYyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTE5MSw0NyAr
MTkwLDI1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFdURk1vdmUocG9saWN5RGVjaXNpb25Db21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlU2hhcmVk
QnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpCi17Ci0gICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVTaGFyZWRCdWZmZXIgb2Ygc2l6ZSAlbHUgZm9yICclcyci
LCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3Bv
bnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZh
bGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKLQotICAgIGlmIChVTkxJS0VMWShtX2ludGVyY2VwdENv
bnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKSkgewot
ICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcihXVEZNb3ZlKGRhdGEpLCBlbmNvZGVk
RGF0YUxlbmd0aCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcm9jZXNzUmVjZWl2
ZWREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5z
aXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVk
RGF0YUxlbmd0aCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsK
ICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEgb2Ygc2l6ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3Vs
ZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIAog
ICAgIGlmIChVTkxJS0VMWShtX2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9j
b3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJl
ZEJ1ZmZlcih7IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRh
LnNpemUoKSkgfSwgZW5jb2RlZERhdGFMZW5ndGgpOworICAgICAgICBhdXRvIGJ1ZmZlciA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIG1f
aW50ZXJjZXB0Q29udHJvbGxlci5kZWZlcihtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYnVmZmVyID0gV1RGTW92ZShidWZm
ZXIpLCBlbmNvZGVkRGF0YUxlbmd0aF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChtX2Nv
cmVMb2FkZXIpCisgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoeyBidWZmZXItPmRhdGFB
c1VJbnQ4UHRyKCksIGJ1ZmZlci0+c2l6ZSgpIH0sIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcHJvY2Vzc1JlY2VpdmVkRGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBl
bmNvZGVkRGF0YUxlbmd0aCk7Ci19CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVj
ZWl2aW5nU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEs
IGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgbV9pbnRlcmNlcHRDb250cm9sbGVy
LmRlZmVyKG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgZW5jb2RlZERhdGFMZW5ndGhd
KCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChtX2NvcmVMb2FkZXIpCi0gICAgICAgICAgICBkaWRS
ZWNlaXZlU2hhcmVkQnVmZmVyKFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRhTGVuZ3RoKTsKLSAg
ICB9KTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6cHJvY2Vzc1JlY2VpdmVkRGF0YShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
LXsKLSAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkgeworICAgIGlmICghbV9udW1CeXRlc1Jl
Y2VpdmVkKQogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTog
U3RhcnRlZCByZWNlaXZpbmcgZGF0YSIpOwotICAgIH0KLSAgICBtX251bUJ5dGVzUmVjZWl2ZWQg
Kz0gc2l6ZTsKKyAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKLSAgICBt
X2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZEJ5dGVzKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVu
Y29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggODQ2YjAwNzI5MjIyYzQzMjE3NzkxODA0
ZTc2NjIyODk5N2QwMGMxOC4uNTgzZTM3OWM4OWVjZmE5NTMwYjBhYmZhMWM2OWZlYTlkNTM5NjZm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFz
cyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CiAKQEAgLTgzLDgg
KzgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3Qg
Ynl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7
CiAgICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzJik7CiAgICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZEZhaWxTZXJ2aWNlV29ya2VyTG9hZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CkBAIC05Myw5ICs5Miw2IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQ
b2xpY3lEZW5pZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9p
ZCBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UmJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBwcm9jZXNzUmVjZWl2
ZWREYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKTsKLQogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmluZGV4IGFiMzliNTk0NmNhY2E4MWY3NWIxODA3NzE0
YmY3OWRhNTIzYWEzZDguLjAyYTE0ZjU5YTMwNDc0NGMyZDE4M2VhNzllOTllYmFlYjRjZmJiYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKICAgICBXaWxsU2VuZFJlcXVl
c3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25z
ZSkKICAgICBEaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlU2VudCkKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSkKLSAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBl
bmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAg
IERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2
NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZEZpbmlzaFJlc291cmNlTG9hZChXZWJDb3Jl
OjpOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya0xvYWRNZXRyaWNzKQogICAgIERpZEZhaWxSZXNv
dXJjZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBEaWRGYWlsU2Vydmlj
ZVdvcmtlckxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggYzgzYTc4YzEzNWFjOTk3NGM1MWViNmVjODlh
OWU5ZjUxNjMzOTYyMC4uYTY1MjBjYzE2NzUwZjA4MjM2YTc0YWY3YTMzMjg2M2E5NjAyNmZiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKQEAgLTg1LDcg
Kzg0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlciB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50
NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVE
YXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkg
fSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYgZm9y
bURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDljNmI3YmE3Y2I1NmE0MjM1YjAwNWI5
ZmJhYmIxYWMyOTFjYzQ4NzguLmRiOTdjMGIxN2I3ZTFhMjQxNDIxOGMyNTk3OGFhOTQ0NjE4MjEx
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAi
V2ViRWRpdG9yQ2xpZW50LmgiCiAKICNpbmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5
LmgiCiAjaW5jbHVkZSAiVW5kb09yUmVkby5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyYTdlY2QxMjY3MGZjNDliMzRjMWZjZGYwYjA3
YzBjMGUxZGQ3NzJjLi4zNjZmYjgxMTQ1NzBlOTRlOGVmOTE0ZjNjMjEwNjk4MzM0N2E2NWU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCi0jaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ckNvcHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtMzE5LDcgKzMxOSw3IEBAIFZl
Y3RvcjxTdHJpbmc+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZpbGVQYXRoc0Zyb21DbGlw
Ym9hcmQoY29uc3QgU3RyaW5nJiBwCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCiB7CiAKLSAgICBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YTsKKyAgICBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0
YTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkQnVmZmVyKHBhc3Rl
Ym9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6
OlJlYWRCdWZmZXI6OlJlcGx5KGRhdGEpLCAwKTsKICAgICByZXR1cm4gZGF0YS5idWZmZXIoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
ZGY0ZTg3ZDg0ZDY2NWNhODgyMTllNTJlMmZmOGNlNWViYmQ1MjA0NS4uNWNhMDgxOGM1YTM0YjJh
N2Q5ZTQ0ZWE1NDdiZTQzMjE2MTBjODVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM1NjksNyArMzU2OSw3IEBAIHZvaWQgV2ViUGFnZTo6
Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgaWYgKGRhdGEpCi0gICAgICAgIGRhdGFSZWZlcmVuY2UgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhLmdldCgpKTsKKyAgICAgICAgZGF0YVJlZmVyZW5jZSA9IHsgQ0ZE
YXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRM
ZW5ndGgoZGF0YS5nZXQoKSkpIH07CiAjZW5kaWYKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7CiB9CkBAIC0z
NjUwLDcgKzM2NTAsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSQogICAgIElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGlmIChkYXRhKQotICAgICAgICBkYXRhUmVmZXJlbmNlID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoZGF0YS5nZXQoKSk7CisgICAgICAgIGRhdGFSZWZlcmVuY2UgPSB7IENGRGF0YUdldEJ5dGVQ
dHIoZGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEu
Z2V0KCkpKSB9OwogI2VuZGlmCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRh
Q2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtNTAyOSw3ICs1MDI5
LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8KIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxl
RGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHBy
aW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBTaGFyZWRCdWZmZXI6OmNyZWF0ZShwZGZQYWdl
RGF0YS5nZXQoKSkgfSwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQoKSks
IHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRhLmdldCgpKSkg
fSwgY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBw
ZGZQYWdlRGF0YSkKQEAgLTY3MTUsMTIgKzY3MTUsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cmxTY2hl
bWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjQKICAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHRhc2tJZGVudGlmaWVyLCBy
ZXNwb25zZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRh
KHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29u
c3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBXZWJQYWdlOjp1
cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVp
bnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7
CiAgICAgYXV0byogaGFuZGxlciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclByb3h5
TWFwLmdldChoYW5kbGVySWRlbnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwogCi0gICAg
aGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUoKSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGRhdGEuZGF0YSgpKSk7CisgICAgaGFu
ZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUoKSwgZGF0
YS5kYXRhKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRDb21wbGV0ZSh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtNjkyNiw3ICs2OTI2LDcgQEAgdm9pZCBXZWJQYWdl
OjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWlu
dDY0X3Q+JiYgZmkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFj
ayhjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0dHJp
YnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxl
U2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0
dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBm
aWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byBhdHRhY2htZW50ID0gYXR0YWNobWVudEVs
ZW1lbnRXaXRoSWRlbnRpZmllcihpZGVudGlmaWVyKSkgewogICAgICAgICBhdHRhY2htZW50LT5k
b2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDY0OGFkYWJhNjFmZTIwOTNiZTlkNzU0ODUwNDYyODcyZmJjMmFm
NzguLjIzMjk5MGFkODE5YWExNzg0OTQxZjc3MzdiMDJhNzhiOTk1NjdiZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Niw5ICsxNTYsOSBAQCBj
bGFzcyBBcnJheTsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3Mg
RGF0YVJlZmVyZW5jZTsKIGNsYXNzIERlY29kZXI7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsK
LWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTIzMCw3ICsyMzAsNiBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRHJhd2luZ0Fy
ZWE7CiBjbGFzcyBEb3dubG9hZElEOwogY2xhc3MgRmluZENvbnRyb2xsZXI7CkBAIC0xMjI1LDcg
KzEyMjQsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRp
b25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCB1cGRhdGVBdHRhY2ht
ZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90
PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGVuY2xvc2luZ0lt
YWdlRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50QXR0cmlidXRl
cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXpl
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCB1cGRhdGVBdHRhY2htZW50SWNvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBxbFRodW1ibmFpbEhhbmRsZSk7CiAjZW5kaWYK
IApAQCAtMTcyOCw3ICsxNzI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXJsU2NoZW1lVGFz
a0RpZFBlcmZvcm1SZWRpcmVjdGlvbih1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0
X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNw
b25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVybFNjaGVtZVRh
c2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFz
a0lkZW50aWZpZXIsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOworICAg
IHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7
CiAgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJik7CiAKICAgICB2b2lkIHNldElzVGFraW5nU25hcHNob3RzRm9yQXBwbGljYXRpb25TdXNw
ZW5zaW9uKGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406989</attachid>
            <date>2020-08-20 17:52:39 -0700</date>
            <delta_ts>2020-08-20 18:09:40 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-215232-20200820175238.patch</filename>
            <type>text/plain</type>
            <size>94016</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLmUwMWU5YjdkM2MzNGU2MzEwZDU0ODNjNTlmY2VmYjIy
MTdiYTIzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI1IEBACisyMDIwLTA4LTIwICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjU3NjY3KTog
MS45eCBtb3JlIENQVSB0aW1lIGluIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkZWNv
ZGluZyBkdXJpbmcgTmV0ZmxpeCBwbGF5YmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MjMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NjYz
NzkyMD4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBQcmlv
ciB0byByMjU3NjY3LCBhbiBJUEMgbWVzc2FnZSBkZWZpbmVkIGEgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGFyZ3VtZW50IHRvIGFsbG93CisgICAgICAgIGl0cyBzZW5kZXIgdG8gZWFz
aWx5IGVuY29kZSBTaGFyZWRCdWZmZXIgZGF0YSBhcyBhIERhdGFSZWZlcmVuY2UuIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgY29zdCB0aGUgc2FtZSB0byBlbmNvZGUgYXMgYSBE
YXRhUmVmZXJlbmNlIC0tIGJvdGggY29waWVkIGRhdGEgaW50byB0aGUgRW5jb2RlciAtLSBidXQg
ZGlkCisgICAgICAgIHNvIGJ5IGl0ZXJhdGluZyBvdmVyIHRoZSBTaGFyZWRCdWZmZXIncyBkYXRh
IHNlZ21lbnRzIHJhdGhlciB0aGFuIGNvbWJpbmluZyB0aGVtIGludG8gYQorICAgICAgICBjb250
aWd1b3VzIGFsbG9jYXRpb24uIFRoZSBtZXNzYWdlIGFyZ3VtZW50IHdhcyByZWNlaXZlZCBhcyBh
IGRlY29kZWQgSVBDOjpEYXRhUmVmZXJlbmNlLAorICAgICAgICB3aGljaCBzdG9yZXMgYSBwb2lu
dGVyIGludG8gdGhlIElQQzo6RGVjb2RlcidzIGJ1ZmZlciByYXRoZXIgdGhhbiBtYWtpbmcgYSBj
b3B5LgorCisgICAgICAgIEluIHIyNTc2NjcsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBzd2l0Y2hlZCBpdHMgZW5jb2RlciB0byB1c2UgSVBDOjpBcmd1bWVudENvZGVyJ3MKKyAgICAg
ICAgU2hhcmVkQnVmZmVyIHNwZWNpYWxpemF0aW9uLCB3aGljaCB3b3JrcyBieSBhbGxvY2F0aW5n
IGEgU2hhcmVkTWVtb3J5IGJ1ZmZlciwgY29weWluZworICAgICAgICBTaGFyZWRCdWZmZXIgZGF0
YSBpbnRvIGl0LCBjcmVhdGluZyBhIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGZyb20gaXQsIGFu
ZCBlbmNvZGluZyB0aGUKKyAgICAgICAgaGFuZGxlLiBJdCBtYWtlcyBvbmx5IG9uZSBjb3B5IGxp
a2UgdGhlIG9sZCBlbmNvZGVyIGRpZCwgYnV0IHBheXMgdGhlIGFkZGVkIGNvc3Qgb2YKKyAgICAg
ICAgY29tYmluaW5nIFNoYXJlZEJ1ZmZlciBkYXRhIHNlZ21lbnRzIHByaW9yIHRvIGNvcHlpbmcg
YnkgbmVlZGxlc3NseSBjYWxsaW5nCisgICAgICAgIFNoYXJlZEJ1ZmZlcjo6ZGF0YSgpICh0aGlz
IHNob3VsZCBiZSBmaXhlZCBpbmRlcGVuZGVudGx5KS4KKworICAgICAgICBTaW5jZSB0aGlzIHNl
cmlhbGl6YXRpb24gY291bGQgbm8gbG9uZ2VyIGJlIGRlY29kZWQgYnkgRGF0YVJlZmVyZW5jZSdz
IGRlY29kZXIsCisgICAgICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgaW1wbGVtZW50ZWQg
YSBkZWNvZGVyLCBhbHNvIGluIHRlcm1zIG9mIEFyZ3VtZW50Q29kZXIncyBTaGFyZWRCdWZmZXIK
KyAgICAgICAgc3BlY2lhbGl6YXRpb24uIEl0IHdvcmtzIGJ5IG1hcHBpbmcgYSBTaGFyZWRNZW1v
cnkgYnVmZmVyIGZyb20gYSBkZWNvZGVkCisgICAgICAgIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
IGFuZCBjb3B5aW5nIHRoYXQgYnVmZmVyIGludG8gYSBuZXcgU2hhcmVkQnVmZmVyLiBUaGlzIGNv
cHkgaXMgYSBjb3N0CisgICAgICAgIHRoYXQgdGhlIG9sZCBkZWNvZGVyIGRpZCBub3QgaW5jdXIs
IGJ1dCBpbiBzb21lIGNhc2VzIHRoZSBtZXNzYWdlIHJlY2VpdmVyIHdvdWxkIGhhdmUgbWFkZQor
ICAgICAgICBzdWNoIGEgY29weSBhbnl3YXkgYW5kIGNhbiBpbnN0ZWFkIGp1c3QgcmVmIHRoZSBk
ZWNvZGVkIFNoYXJlZEJ1ZmZlci4gSW4gb3RoZXIgY2FzZXMgdGhvdWdoLAorICAgICAgICB0aGUg
cmVjZWl2ZXIgZWl0aGVyIG1hZGUgbm8gY29waWVzIG9yIGNvdWxkbid0IHVzZSB0aGUgZGVjb2Rl
ZCBTaGFyZWRCdWZmZXIgdG8gYXZvaWQgbWFraW5nCisgICAgICAgIGl0cyBvd24gY29weSBzbyBj
cmVhdGluZyB0aGUgU2hhcmVkQnVmZmVyIHdhcyBwdXJlIGFkZGVkIGNvc3QuCisKKyAgICAgICAg
VGhlcmUgYXJlIGFkZGl0aW9uYWwgY29zdHMgZnJvbSBhbGxvY2F0aW5nLCBtYXBwaW5nLCBhbmQg
ZGVsZXRpbmcgc2hhcmVkIG1lbW9yeSBhbmQgTWFjaAorICAgICAgICBzZW5kIHJpZ2h0cywgYnV0
IHRoZXkgYXJlIG9mZnNldCBieSBzYXZpbmdzIGR1ZSB0byBzbWFsbGVyIEVuY29kZXIgYW5kIERl
Y29kZXIgYnVmZmVycy4gVGhlCisgICAgICAgIGFkZGl0aW9uYWwgU2hhcmVkQnVmZmVyIGNvbWJp
bmluZyBhbmQgY29weWluZyBpcyBub3Qgb2Zmc2V0IGVsc2V3aGVyZSwgYW5kIG9uIG5ldCBtYWtl
cworICAgICAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlcyB1c2UgdXAgdG8gMnggbW9yZSBDUFUgdGltZSB3aGVuCisgICAgICAgIHBsYXlpbmcg
YSB2aWRlbyBvbiBuZXRmbGl4LmNvbSBpbiBTYWZhcmkuCisKKyAgICAgICAgUmVzb2x2ZSB0aGlz
IHNsb3dkb3duIGJ5IHJldmVydGluZyB0aGUgYXJndW1lbnQgZW5jb2RpbmcgY2hhbmdlcyBtYWRl
IHRvCisgICAgICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBpbiByMjU3NjY3LiBG
b3IgY29tcGF0aWJpbGl0eSB3aXRoIGNvZGUgYWRkZWQgYWZ0ZXIgcjI1NzY2NywKKyAgICAgICAg
dGhlIGN1cnJlbnQgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHdhcyBjb3BpZWQgdG8g
SVBDOjpTaGFyZWRCdWZmZXJDb3B5IGFuZCByZXRhaW5zCisgICAgICAgIHRoZSBiZWhhdmlvciBv
ZiBjb3B5aW5nIGludG8gYSBTaGFyZWRCdWZmZXIgd2hlbiBkZWNvZGVkLiBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2Ugbm93CisgICAgICAgIGhhcyB0aGUgcHJlLXIyNTc2NjcgYmVoYXZp
b3Igb2YgZGVjb2RpbmcgdG8gYW4gSVBDOjpEYXRhUmVmZXJlbmNlLiBNZXNzYWdlcyBhZGRlZCBh
ZnRlcgorICAgICAgICByMjU3NjY3IHdob3NlIHJlY2VpdmVycyB3ZXJlIGRlc2lnbmVkIHRvIGhh
bmRsZSBhIFNoYXJlZEJ1ZmZlciB3ZXJlIGNoYW5nZWQgdG8gdXNlCisgICAgICAgIElQQzo6U2hh
cmVkQnVmZmVyQ29weSwgYW5kIGFsbCBvdGhlciByZWNlaXZlcnMgb2YgbWVzc2FnZXMgd2l0aCBJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgYXJndW1lbnRzIHdlcmUgY2hh
bmdlZCB0byBoYW5kbGUgYW4gSVBDOjpEYXRhUmVmZXJlbmNlLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHA6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmNwcDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlH
dGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3Rh
bmNlU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOiBSZXBsYWNl
ZAorICAgICAgICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ugd2l0aCBJUEM6OlNoYXJl
ZEJ1ZmZlckNvcHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDogUmVt
b3ZlZCB0aGUgRGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcgorICAgICAgICBtZXNzYWdlIGFuZCByZXZl
cnRlZCB0aGUgRGlkUmVjZWl2ZURhdGEgbWVzc2FnZSBiYWNrIHRvIHRha2luZyBhbgorICAgICAg
ICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRW5jb2Rlci5oOiBNYWRlIEVuY29kZXI6OnJlc2VydmUoc2l6ZV90KSBwdWJsaWMgc28KKyAg
ICAgICAgU2hhcmVkQnVmZmVyQ29weTo6ZW5jb2RlKEVuY29kZXImKSBjYW4gY2FsbCBpdC4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6IFJlc3RvcmVkIHRoZSBDb2Rp
bmdUeXBlIHNwZWNpYWxpemF0aW9uIHRoYXQgZGVjb2RlcworICAgICAgICBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGFyZ3VtZW50cyBhcyBEYXRhUmVmZXJlbmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
U2hhcmVkQnVmZmVyQ29weS5oOiBDb3BpZWQgZnJvbSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmguIEltcGxlbWVudGVkIHRoZQorICAgICAgICBpbnRlcmZhY2UgYW5kIGRlY29kaW5nIGJlaGF2
aW9yIHRoYXQgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBoYWQgYmV0d2VlbiByMjU3NjY3IGFu
ZCB0aGlzCisgICAgICAgIGNoYW5nZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmNwcDogCisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaDogUmV2ZXJ0ZWQgdG8gdGhlIHByZS1yMjU3NjY3IGludGVyZmFj
ZSBhbmQKKyAgICAgICAgZGVjb2RpbmcgYmVodmlvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OiBSZW1vdmVkIGFuIHVubmVlZGVkIHNwZWNpYWwgY2FzZS4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGRlZCBTaGFyZWRCdWZmZXJ7Q29weSxEYXRhUmVmZXJlbmNlfS5jcHAuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkYXRhQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogVXNlZCBgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJmAgaW4gbWVzc2FnZSByZWNlaXZlcgorICAgICAgICBzaWduYXR1cmVzIGZvciBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIGFyZ3VtZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0J1c0RhdGEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6
IFJlbW92ZWQgdW51c2VkIGluY2x1ZGVzLgorCiAyMDIwLTA4LTE4ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVuaGFuZGxlZCBrZXlEb3duOiBldmVu
dHMgY2F1c2UgYSBzeXN0ZW0gYmVlcCBpbiBmdWxsIHNjcmVlbiBtb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5j
cHAKaW5kZXggMmUyNDhmZGZjODJkOTRhZTZlMGVkMTc1YjM1MWMxYjI2YjU1YTMxMy4uMWI0MGFi
NWIwMDQ3ZWQ2MTRlN2M5NGI1OWE5YTc3NTEyZjNiYzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcApA
QCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuaCIKLSNpbmNs
dWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
Q29weS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNSW5zdGFuY2UuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6aW5p
dGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IFdlYkNvcmU6OkNETUtleVN5CiAgICAgbV9p
bnN0YW5jZS0+aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGFsbG93
RGlzdGluY3RpdmVJZGVudGlmaWVycywgYWxsb3dQZXJzaXN0ZW50U3RhdGUsIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCi12b2lkIFJlbW90ZUNETUluc3RhbmNlUHJveHk6OnNldFNlcnZlckNl
cnRpZmljYXRlKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGNlcnRpZmljYXRlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN1Y2Nlc3NWYWx1ZSk+JiYgY29tcGxldGlvbikKK3ZvaWQg
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6c2V0U2VydmVyQ2VydGlmaWNhdGUoSVBDOjpTaGFyZWRC
dWZmZXJDb3B5JiYgY2VydGlmaWNhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3VjY2Vzc1Zh
bHVlKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlmICghY2VydGlmaWNhdGUuYnVmZmVyKCkpIHsK
ICAgICAgICAgY29tcGxldGlvbihDRE1JbnN0YW5jZTo6RmFpbGVkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oCmlu
ZGV4IGU3MTEyZDVmODRiODg0NzMxOWRjNDA0ZmVhMTUwNmM4YjFlZjMwZTQuLjUxNGEzMDY1YTk4
Y2MzMWVlNjQzMzM3ZjliYWQ5NzQ4NGI5MmZmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuaApAQCAtNDIsNyAr
NDIsNyBAQCBzdHJ1Y3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbjsKIH0KIAogbmFtZXNwYWNl
IElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOworY2xhc3MgU2hhcmVkQnVm
ZmVyQ29weTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBNZXNzYWdlcwogICAgIHZvaWQgaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0
aW9uKGNvbnN0IFdlYkNvcmU6OkNETUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mLCBBbGxvd0Rpc3Rp
bmN0aXZlSWRlbnRpZmllcnMsIEFsbG93UGVyc2lzdGVudFN0YXRlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN1Y2Nlc3NWYWx1ZSk+JiYpOwotICAgIHZvaWQgc2V0U2VydmVyQ2VydGlmaWNhdGUo
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3VjY2Vzc1ZhbHVlKT4mJik7CisgICAgdm9pZCBzZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNo
YXJlZEJ1ZmZlckNvcHkmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdWNjZXNzVmFsdWUpPiYm
KTsKICAgICB2b2lkIHNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBjcmVhdGVTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQ0RNSW5z
dGFuY2VTZXNzaW9uSWRlbnRpZmllciYpPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA1NTBlODUzNDFjMmViMzViYjZlYzA4MDk1ZDVhMDA0ZWNjYTEzOWY5Li5j
NTA5NWI2ODlkZjYwNDkyOWZmZDE0MWNiY2RiOTQxZTdjY2FkMDJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQAogbWVzc2FnZXMgLT4gUmVtb3Rl
Q0RNSW5zdGFuY2VQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVTZXNzaW9uKCkgLT4g
KFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllciBpZCkgU3luY2hyb25v
dXMKICAgICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtl
eVN5c3RlbUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNE
TUluc3RhbmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlm
aWVyc0FsbG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJzaXN0
ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpD
RE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIEFzeW5jCi0gICAgU2V0U2VydmVyQ2Vy
dGlmaWNhdGUoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGNlcnRpZmljYXRlKSAtPiAo
ZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykgQXN5
bmMKKyAgICBTZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgY2VydGlm
aWNhdGUpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBz
dWNjZXNzKSBBc3luYwogICAgIFNldFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nIGRpcmVjdG9yeSkK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKaW5kZXggMThhNjYzYTQzMGI3YTFj
Y2Q2ODZhZWNlYjk5YjBlODc1NTU1YmExMi4uOWY3ZThiZmZmNmQxYmE0NTE0OTA5ZDlhZjVkYzdl
OTBlOTAxODc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgor
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTU2LDcgKzU2LDcgQEAgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6On5SZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNz
aW9uUHJveHk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIHR5cGUsIEF0b21TdHJpbmcgaW5p
dERhdGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBpbml0RGF0YSwgTGlj
ZW5zZUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIHR5cGUsIEF0b21TdHJpbmcgaW5pdERh
dGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBpbml0RGF0YSwgTGljZW5zZUNhbGxiYWNr
JiYgY29tcGxldGlvbikKIHsKICAgICBpZiAoIWluaXREYXRhLmJ1ZmZlcigpKSB7CiAgICAgICAg
IGNvbXBsZXRpb24oeyB9LCBlbXB0eVN0cmluZygpLCBmYWxzZSwgZmFsc2UpOwpAQCAtNzQsNyAr
NzQsNyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpyZXF1ZXN0TGljZW5z
ZShMaWNlbnNlVHlwZSB0eXBlLCBBdG9tU3RyaW5nCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwg
TGljZW5zZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgcmVzcG9u
c2UsIExpY2Vuc2VVcGRhdGVDYWxsYmFjayYmIGNvbXBsZXRpb24pCit2b2lkIFJlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5Ojp1cGRhdGVMaWNlbnNlKFN0cmluZyBzZXNzaW9uSWQsIExpY2Vu
c2VUeXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIHJlc3BvbnNlLCBMaWNlbnNlVXBk
YXRlQ2FsbGJhY2smJiBjb21wbGV0aW9uKQogewogICAgIGlmICghcmVzcG9uc2UuYnVmZmVyKCkp
IHsKICAgICAgICAgY29tcGxldGlvbih0cnVlLCB7IH0sIFdURjo6bnVsbG9wdCwgV1RGOjpudWxs
b3B0LCBmYWxzZSk7CkBAIC0xMTUsOSArMTE1LDkgQEAgdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBDbG9zZVMK
IHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnJlbW92ZVNlc3Npb25EYXRhKGNv
bnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVHlwZSB0eXBlLCBSZW1vdmVTZXNzaW9uRGF0
YUNhbGxiYWNrJiYgY29tcGxldGlvbikKIHsKICAgICBtX3Nlc3Npb24tPnJlbW92ZVNlc3Npb25E
YXRhKHNlc3Npb25JZCwgdHlwZSwgW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAo
Q0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNlcywgT3B0aW9u
YWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgZXhwaXJlZFNlc3Npb25zRGF0YSwgQ0RNSW5zdGFuY2VT
ZXNzaW9uOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKLSAgICAgICAgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBleHBpcmVkU2Vzc2lvbkRhdGFSZWZl
cmVuY2U7CisgICAgICAgIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4gZXhwaXJlZFNl
c3Npb25EYXRhUmVmZXJlbmNlOwogICAgICAgICBpZiAoZXhwaXJlZFNlc3Npb25zRGF0YSkKLSAg
ICAgICAgICAgIGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVyZW5jZSA9IElQQzo6U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZShXVEZNb3ZlKCpleHBpcmVkU2Vzc2lvbnNEYXRhKSk7CisgICAgICAgICAg
ICBleHBpcmVkU2Vzc2lvbkRhdGFSZWZlcmVuY2UgPSBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkoV1RG
TW92ZSgqZXhwaXJlZFNlc3Npb25zRGF0YSkpOwogICAgICAgICBjb21wbGV0aW9uKFdURk1vdmUo
a2V5U3RhdHVzZXMpLCBXVEZNb3ZlKGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVyZW5jZSksIHN1Y2Nl
ZWRlZCA9PSBDRE1JbnN0YW5jZVNlc3Npb246OlN1Y2NlZWRlZCk7CiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eS5oCmluZGV4IDJkMTk0OGVhNWMwYzAwNWY3ZjA5YjJmNDAxMThh
YWQ4NzZlNjdiN2IuLjUxOGZjYWNkMWFkMjFiOTUyMDZkMWM5OTI3NWQxYmRhNjE3MmY2ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlOworY2xhc3MgU2hhcmVkQnVmZmVyQ29weTsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01OSwxNiArNTksMTYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBLZXlTdGF0dXNWZWN0
b3IgPSBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvcjsKICAgICB1
c2luZyBNZXNzYWdlID0gV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlOwogICAg
IHVzaW5nIFNlc3Npb25Mb2FkRmFpbHVyZSA9IFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6
U2Vzc2lvbkxvYWRGYWlsdXJlOwotICAgIHVzaW5nIExpY2Vuc2VDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIGNvbnN0IFN0
cmluZyYgc2Vzc2lvbklkLCBib29sLCBib29sKT47CisgICAgdXNpbmcgTGljZW5zZUNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wsIGJvb2wpPjsKICAgICB1c2luZyBMaWNlbnNlVXBkYXRl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIE9wdGlvbmFsPEtleVN0YXR1
c1ZlY3Rvcj4mJiwgT3B0aW9uYWw8ZG91YmxlPiYmLCBPcHRpb25hbDxNZXNzYWdlPiYmLCBib29s
KT47CiAgICAgdXNpbmcgTG9hZFNlc3Npb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9yPiYmLCBPcHRpb25hbDxkb3VibGU+JiYsIE9wdGlv
bmFsPE1lc3NhZ2U+JiYsIGJvb2wsIFNlc3Npb25Mb2FkRmFpbHVyZSk+OwogICAgIHVzaW5nIENs
b3NlU2Vzc2lvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKLSAgICB1c2lu
ZyBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChLZXlT
dGF0dXNWZWN0b3ImJiwgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYm
LCBib29sKT47CisgICAgdXNpbmcgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoS2V5U3RhdHVzVmVjdG9yJiYsIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVm
ZmVyQ29weT4mJiwgYm9vbCk+OwogICAgIHVzaW5nIFN0b3JlUmVjb3JkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+OwogCiAgICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIHJlcXVl
c3RMaWNlbnNlKExpY2Vuc2VUeXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwgSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgaW5pdERhdGEsIExpY2Vuc2VDYWxsYmFjayYmKTsKLSAg
ICB2b2lkIHVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgTGljZW5zZVR5cGUsIElQQzo6
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIHJlc3BvbnNlLCBMaWNlbnNlVXBkYXRlQ2FsbGJh
Y2smJik7CisgICAgdm9pZCByZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSwgQXRvbVN0cmluZyBp
bml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGluaXREYXRhLCBMaWNlbnNlQ2Fs
bGJhY2smJik7CisgICAgdm9pZCB1cGRhdGVMaWNlbnNlKFN0cmluZyBzZXNzaW9uSWQsIExpY2Vu
c2VUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiByZXNwb25zZSwgTGljZW5zZVVwZGF0ZUNh
bGxiYWNrJiYpOwogICAgIHZvaWQgbG9hZFNlc3Npb24oTGljZW5zZVR5cGUsIFN0cmluZyBzZXNz
aW9uSWQsIFN0cmluZyBvcmlnaW4sIExvYWRTZXNzaW9uQ2FsbGJhY2smJik7CiAgICAgdm9pZCBj
bG9zZVNlc3Npb24oY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIENsb3NlU2Vzc2lvbkNhbGxiYWNr
JiYpOwogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQs
IExpY2Vuc2VUeXBlLCBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVkNzgyZjU0MGEyYjg3NTNh
OTJkZTQ1ZDAyOGE3YWZmNDJiMDZkNmUuLjE2MTg3MmViMGM2ZjAzYzQzYjlhODAwZTQ5NWI3MTU2
YjZjMzQ2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI2LDExICsyNiwxMSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVxdWVzdExpY2Vuc2UoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGluaXREYXRhKSAtPiAoSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0cmluZyBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJ
bmRpdmlkdWFsaXphdGlvbiwgYm9vbCBzdWNjZWVkZWQpIEFzeW5jCi0gICAgVXBkYXRlTGljZW5z
ZShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VU
eXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSByZXNwb25zZSkgLT4gKGJv
b2wgc2Vzc2lvbldhc0Nsb3NlZCwgT3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9u
OjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBPcHRpb25hbDxkb3VibGU+IGNoYW5nZWRF
eHBpcmF0aW9uLCBPcHRpb25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U+
IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0
RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVk
QnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVh
bGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5n
IHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBl
LCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2UpIC0+IChib29sIHNlc3Npb25XYXNDbG9z
ZWQsIE9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9y
PiBjaGFuZ2VkS2V5cywgT3B0aW9uYWw8ZG91YmxlPiBjaGFuZ2VkRXhwaXJhdGlvbiwgT3B0aW9u
YWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKICAgICBMb2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b246OkxpY2Vuc2VUeXBlIHR5cGUsIFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+
IChPcHRpb25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3Rvcj4g
Y2hhbmdlZEtleXMsIE9wdGlvbmFsPGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIE9wdGlvbmFs
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNj
ZWVkZWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25M
b2FkRmFpbHVyZSBsb2FkRmFpbHVyZSkgQXN5bmMKICAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNl
c3Npb25JZCkgLT4gKCkgQXN5bmMKLSAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lv
bklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywg
T3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBtZXNzYWdlLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKKyAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3Jl
OjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkgQXN5bmMK
ICAgICBTdG9yZVJlY29yZE9mS2V5VXNhZ2UoU3RyaW5nIHNlc3Npb25JZCkKICAgICBEaXNwbGF5
SURDaGFuZ2VkKHVpbnQzMl90IGRpc3BsYXlJRCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwCmluZGV4IDYxYWM5MmZkMDk3YWYxY2Y5
YjhmZjhiYjQwZGIxYmVhNWUzYTgwYTMuLjgzNDk4MGNiYmM0ZDcyZDA0MjU3ZTQwN2IxNTJiMzE5
YWUzODFhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETVByb3h5LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUNvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVDRE1JbnN0YW5jZUNvbmZpZ3VyYXRpb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVDRE1JbnN0YW5jZVByb3h5LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNS2V5U3lzdGVtQ29uZmln
dXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNUHJpdmF0ZS5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5oCmluZGV4IDJjOWQ1NThk
ZmZhMTUyYzBkZDVhMGMwYjJiNWE4MTczMmExZGI1YjEuLjUxMGI5Y2U5MDQwMjM2Mjg1MmJhZGFi
YzFjNDE2ZjI3ZGMwNGU0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1Qcm94eS5oCkBAIC00MywxMCArNDMsNiBAQCBzdHJ1Y3QgQ0RNS2V5U3lzdGVt
Q29uZmlndXJhdGlvbjsKIHN0cnVjdCBDRE1SZXN0cmljdGlvbnM7CiB9CiAKLW5hbWVzcGFjZSBJ
UEMgewotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKLX0KLQogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFJlbW90ZUNETUluc3RhbmNlUHJveHk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHkuY3BwCmluZGV4IDBhMGUzM2ZjNmI0NDRkMzExZTY2MDJmOGE3NTVlMzM0MjAyZWMxNTIu
LjFkYzM0NzIzYTNmMGQ1MTViYWNhZGI1MWI1YmRmYTU5ZGMwNDlmMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHkuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVNlc3Npb25NZXNzYWdlcy5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01Miw3ICs1Miw3IEBAIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6UmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5KFdlYWtQdHI8UmVtb3RlTGVnYWN5Q0RNCiAKIFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25Qcm94eTo6flJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eSgpID0gZGVm
YXVsdDsKIAotc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGJ1ZmZlcikKK3N0YXRpYyBSZWZQdHI8VWlu
dDhBcnJheT4gY29udmVydFRvVWludDhBcnJheShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBidWZm
ZXIpCiB7CiAgICAgaWYgKCFidWZmZXIuYnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtNjMsMTQgKzYzLDE0IEBAIHN0YXRpYyBSZWZQdHI8VWludDhBcnJheT4gY29udmVydFRv
VWludDhBcnJheShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBiCiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZT4gY29udmVydFRvT3B0aW9uYWxEYXRhUmVmZXJlbmNlKFQgYXJyYXkpCitzdGF0aWMg
T3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBjb252ZXJ0VG9PcHRpb25hbERhdGFSZWZl
cmVuY2UoVCBhcnJheSkKIHsKICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogICAgIHJldHVybiB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKChjb25zdCBjaGFyKilh
cnJheS0+ZGF0YSgpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKSB9OwogfQogCi12b2lkIFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25Qcm94eTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGluaXREYXRhLCBHZW5lcmF0
ZUtleUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblBy
b3h5OjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSVBDOjpTaGFy
ZWRCdWZmZXJDb3B5JiYgaW5pdERhdGEsIEdlbmVyYXRlS2V5Q2FsbGJhY2smJiBjb21wbGV0aW9u
KQogewogICAgIGF1dG8gaW5pdERhdGFBcnJheSA9IGNvbnZlcnRUb1VpbnQ4QXJyYXkoV1RGTW92
ZShpbml0RGF0YSkpOwogICAgIGlmICghaW5pdERhdGFBcnJheSkgewpAQCAtOTQsNyArOTQsNyBA
QCB2b2lkIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6cmVsZWFzZUtleXMoKQogICAgIG1f
c2Vzc2lvbi0+cmVsZWFzZUtleXMoKTsKIH0KIAotdm9pZCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHk6OnVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiB1cGRhdGUsIFVw
ZGF0ZUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblBy
b3h5Ojp1cGRhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgdXBkYXRlLCBVcGRhdGVDYWxsYmFj
ayYmIGNvbXBsZXRpb24pCiB7CiAgICAgYXV0byB1cGRhdGVBcnJheSA9IGNvbnZlcnRUb1VpbnQ4
QXJyYXkoV1RGTW92ZSh1cGRhdGUpKTsKICAgICBpZiAoIXVwZGF0ZUFycmF5KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lv
blByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
U2Vzc2lvblByb3h5LmgKaW5kZXggYTkzZWM4MjE4ZDUwN2NlNGZmOWQwOTRkYjRiMDJmMjY3YzM3
MTFmMi4uYjA0OWY3YTQwYTIwOGFmYmJjMzk5YWM2Y2E1M2Y3OTA5ZWU4M2Y4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Q
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lD
RE1TZXNzaW9uUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9
CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKK2Ns
YXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzgsMTIg
Kzc4LDEyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnko
KSBjb25zdCBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzCi0gICAgdXNpbmcgR2VuZXJhdGVLZXlD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCwgdWludDMy
X3QpPjsKLSAgICB2b2lkIGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBpbml0RGF0YSwgR2VuZXJhdGVLZXlD
YWxsYmFjayYmKTsKKyAgICB1c2luZyBHZW5lcmF0ZUtleUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+JiYsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OworICAgIHZvaWQgZ2VuZXJhdGVLZXlSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGluaXRE
YXRhLCBHZW5lcmF0ZUtleUNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVsZWFzZUtleXMoKTsKLSAg
ICB1c2luZyBVcGRhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgT3B0
aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYmLCB1bnNpZ25lZCBzaG9ydCwg
dWludDMyX3QpPjsKLSAgICB2b2lkIHVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UmJiB1cGRhdGUsIFVwZGF0ZUNhbGxiYWNrJiYpOwotICAgIHVzaW5nIENhY2hlZEtleUZvcktl
eUlEQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZT4mJik+OworICAgIHVzaW5nIFVwZGF0ZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+
JiYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OworICAgIHZvaWQgdXBkYXRlKElQQzo6U2hh
cmVkQnVmZmVyQ29weSYmIHVwZGF0ZSwgVXBkYXRlQ2FsbGJhY2smJik7CisgICAgdXNpbmcgQ2Fj
aGVkS2V5Rm9yS2V5SURDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiYmKT47CiAgICAgdm9pZCBjYWNoZWRLZXlGb3JLZXlJRChT
dHJpbmcga2V5SWQsIENhY2hlZEtleUZvcktleUlEQ2FsbGJhY2smJik7CiAKICAgICBXZWFrUHRy
PFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eT4gbV9mYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lD
RE1TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTQ5NjJjZTkxZGY1NTk1ZmM3YWNlMmMw
NTA3N2IwNTFlYTBkZTM3MC4uYTZjYzc2YTFiYWZiMmFjNDkzNTM0YjcxNDliOTVjMjk1NDBiNzU0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCwx
MCArMjQsMTAgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShMRUdBQ1lfRU5D
UllQVEVEX01FRElBKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgR2VuZXJhdGVLZXlSZXF1ZXN0KFN0cmluZyBtaW1lVHlwZSwg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGluaXREYXRhKSAtPiAoT3B0aW9uYWw8SVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBuZXh0TWVzc2FnZSwgU3RyaW5nIGRlc3RpbmF0
aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCBlcnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5
bmNocm9ub3VzCisgICAgR2VuZXJhdGVLZXlSZXF1ZXN0KFN0cmluZyBtaW1lVHlwZSwgSVBDOjpT
aGFyZWRCdWZmZXJDb3B5IGluaXREYXRhKSAtPiAoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJD
b3B5PiBuZXh0TWVzc2FnZSwgU3RyaW5nIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCBl
cnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5bmNocm9ub3VzCiAgICAgUmVsZWFzZUtl
eXMoKQotICAgIFVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgdXBkYXRlKSAt
PiAoYm9vbCBzdWNjZWVkZWQsIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZT4gbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0IGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVt
Q29kZSkgU3luY2hyb25vdXMKLSAgICBDYWNoZWRLZXlGb3JLZXlJRChTdHJpbmcga2V5SWQpIC0+
IChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGtleSkgU3luY2hyb25v
dXMKKyAgICBVcGRhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IHVwZGF0ZSkgLT4gKGJvb2wgc3Vj
Y2VlZGVkLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG5leHRNZXNzYWdlLCB1bnNp
Z25lZCBzaG9ydCBlcnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5bmNocm9ub3VzCisg
ICAgQ2FjaGVkS2V5Rm9yS2V5SUQoU3RyaW5nIGtleUlkKSAtPiAoT3B0aW9uYWw8SVBDOjpTaGFy
ZWRCdWZmZXJDb3B5PiBrZXkpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDk1YzJiMmJjMmUyZTI5OWFmZDVhNTI5M2E0MjQ1MGIyNmUxYjRjMmQuLmYzYjRmMDM3ODk1
ZTQxYjE4ZjBlZjRiZTBkMzMyOGEzNzFlMjMzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI2LDcgKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaCIKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUu
aCIKQEAgLTEwNTEsNyArMTA1MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZm
ZXJpbmdUaW1lckZpcmVkKCkKICAgICBpZiAobV9idWZmZXJlZERhdGEtPmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRp
ZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyAqbV9idWZmZXJlZERhdGEgfSwgbV9idWZmZXJlZERhdGFF
bmNvZGVkRGF0YUxlbmd0aCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVy
OjpEaWRSZWNlaXZlRGF0YSh7ICptX2J1ZmZlcmVkRGF0YSB9LCBtX2J1ZmZlcmVkRGF0YUVuY29k
ZWREYXRhTGVuZ3RoKSk7CiAKICAgICBtX2J1ZmZlcmVkRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKCk7CiAgICAgbV9idWZmZXJlZERhdGFFbmNvZGVkRGF0YUxlbmd0aCA9IDA7CkBAIC0xMDYx
LDcgKzEwNjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZEJ1ZmZlcihTaGFy
ZWRCdWZmZXImIGJ1ZmZlciwgc2l6ZV90IGVuY29kZWREYXRhTAogewogICAgIEFTU0VSVCghaXNT
eW5jaHJvbm91cygpKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpE
aWRSZWNlaXZlU2hhcmVkQnVmZmVyKHsgYnVmZmVyIH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgYnVm
ZmVyIH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5jcHAKaW5kZXggM2ZkYTc1ZjljYzdkNjY1Yzg0NzhiOWNlMWI5MGZhNzNhZmM2Yjgy
ZC4uMTg1ZWEwMGZmNTI2N2Y4NGQ1MDdmNDBhYmU1YmFiMWRlZjNlMzRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKQEAgLTE1OSwxNSAr
MTU4LDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDYKICAgICBzZW5kVG9DbGllbnQoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRh
TGVuZ3RoIH0pOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVT
aGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhLCBp
bnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIGlmIChtX2lzRG9uZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQVNTRVJUKCFtX3RpbWVvdXRUaW1lci5pc0FjdGl2ZSgpKTsKLSAgICBz
ZW5kVG9DbGllbnQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlU2hhcmVk
QnVmZmVyIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7Ci19Ci0KIHZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQogewogICAgIGlmIChtX2lzRG9uZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5oCmluZGV4IDk1ZWQ3NTk2YThiMTFhZDliZGU4YzliMmUyZjA1YWFm
NTY3ZjYwYzcuLmQzM2NiZmYxMDg5Y2MxMDVkZDFhMDBiZWJmZGY2MWQzM2M3ZjY2YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtNDQsNyArNDQsNiBAQCBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwog
Y2xhc3MgRGF0YVJlZmVyZW5jZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CiBj
bGFzcyBEZWNvZGVyOwogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CkBAIC04MCw3ICs3OSw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVT
aGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQgZGlkRmluaXNoKCk7CiAgICAgdm9p
ZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KaW5kZXggNDI3NGFkYzE2
NjE4NzQwYWU4ODhmMjExZGY0OTIyMzRjZjM0NDZjNC4uMThlNjI5ZjBkMTQ2ZWQyZDQyOWRiMWJh
Mjg3MDFlODNmYjk2ZTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2subWVzc2FnZXMuaW4KQEAgLTI3LDggKzI3LDcgQEAgbWVzc2FnZXMgLT4gU2Vydmlj
ZVdvcmtlckZldGNoVGFzayBOb3RSZWZDb3VudGVkIHsKICAgICBEaWRGYWlsKFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IpCiAgICAgRGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVu
Y2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlU2hhcmVk
QnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZFJlY2VpdmVG
b3JtRGF0YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgRGlkRmluaXNoKCkKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAppbmRleCAxM2YzYzQzZTQxN2E2NDQ0OWM5
MDJiMmI2Mzg2Nzk2MWUyOWQ1MzE3Li4zNjc4ZDRmYWUyOTE1MmQ5OTBmNGQzYTRmMGI3ZTBhZjZj
Zjc0NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCkBAIC05NSwxMiArOTUs
MTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAg
ICAgVmVjdG9yPEF0dGFjaG1lbnQ+IHJlbGVhc2VBdHRhY2htZW50cygpOworICAgIHZvaWQgcmVz
ZXJ2ZShzaXplX3QpOwogCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNJUENFbmNvZGVyID0gdHJ1
ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHJlc2VydmUoc2l6ZV90KTsKLQogICAgIHVpbnQ4X3Qq
IGdyb3coc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPEU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA0NWM1MmEz
NTRhZWIxMjI1MjUxMGQ4MjY4Y2JkN2E1OTE0NTkzOTJmLi43ZmQxODNhNTZhZTk4YjA2NjQ1ZmY3
NTE0OGFjMjk4M2M1MmU0YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9IYW5kbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oCkBAIC05Niw2ICs5NiwxMiBAQCBzdHJ1Y3QgQ29kaW5nVHlwZSB7CiAgICAgdHlw
ZWRlZiBzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+PiBUeXBl
OwogfTsKIAorY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2U7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2RpbmdUeXBlPGNvbnN0IFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UmPiB7CisgICAgdXNpbmcgVHlwZSA9IERhdGFSZWZlcmVuY2U7Cit9OworCiB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUcz4KIHN0cnVjdCBDb2RpbmdUeXBlPHN0ZDo6dHVwbGU8VHMu
Li4+PiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPHR5cGVuYW1lIENvZGluZ1R5cGU8VHM+OjpU
eXBlLi4uPiBUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyQ29weS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZm
ZXJDb3B5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTNjYjMzODc2MzZkY2FmY2VhY2VhZDkxYjg2MzliN2Jh
NzYzNmM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyQ29weS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKKworI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5j
b2Rlci5oIgorCituYW1lc3BhY2UgSVBDIHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K3ZvaWQgU2hhcmVkQnVmZmVyQ29weTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgdWludDY0X3QgYnVmZmVyU2l6ZSA9IG1fYnVmZmVyID8gbV9idWZmZXItPnNpemUoKSA6
IDA7CisgICAgZW5jb2Rlci5yZXNlcnZlKHNpemVvZihidWZmZXJTaXplKSArIGJ1ZmZlclNpemUp
OworICAgIGVuY29kZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAg
ICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiAqbV9idWZmZXIpCisgICAgICAg
IGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHNlZ21lbnQuc2VnbWVudC0+ZGF0YSgpKSwgc2VnbWVudC5zZWdtZW50LT5zaXplKCks
IDEpOworfQorCitPcHRpb25hbDxTaGFyZWRCdWZmZXJDb3B5PiBTaGFyZWRCdWZmZXJDb3B5Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoZGF0YSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyOworICAgIGlmIChkYXRhLnNpemUoKSkKKyAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICByZXR1cm4geyBXVEZNb3Zl
KGJ1ZmZlcikgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFjMThkNjQyNzZlNmEz
MTkwMTFhY2M0MTJiMTY4MTE2NWVjM2ZkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckNvcHkuaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvLyBFbmNvZGVzIGEgU2hhcmVkQnVmZmVyIHRoYXQgaXMgcmVjZWl2ZWQg
YXMgYSBjb3B5IG9mIHRoZSBkZWNvZGVkIGRhdGEgaW4gYSBuZXcgU2hhcmVkQnVmZmVyLgorLy8g
VG8gYXZvaWQgY29weWluZyBmcm9tIHRoZSBEZWNvZGVyLCB1c2UgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSB0byByZWNlaXZlIGEgRGF0YVJlZmVyZW5jZSBpbnN0ZWFkLgorCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisKK25hbWVzcGFjZSBJUEMg
eworCitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKKworY2xhc3MgU2hhcmVkQnVmZmVy
Q29weSB7CitwdWJsaWM6CisgICAgU2hhcmVkQnVmZmVyQ29weSgpID0gZGVmYXVsdDsKKworICAg
IFNoYXJlZEJ1ZmZlckNvcHkoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIp
CisgICAgICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KKyAgICBTaGFyZWRCdWZm
ZXJDb3B5KFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQorICAgICAgICA6IG1f
YnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9CisgICAgU2hhcmVkQnVmZmVyQ29weShjb25zdCBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXImIGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlcihXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpKQorICAgIHsKKyAgICAgICAgbV9idWZmZXItPmFwcGVu
ZChidWZmZXIpOworICAgIH0KKworICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiBi
dWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlcjsgfQorICAgIGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+JiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcjsgfQorCisgICAg
Y29uc3QgY2hhciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmRh
dGEoKSA6IG51bGxwdHI7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVm
ZmVyID8gbV9idWZmZXItPnNpemUoKSA6IDA7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5pc0VtcHR5KCkgOiB0cnVlOyB9CisKKyAgICB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBPcHRpb25hbDxTaGFyZWRCdWZmZXJDb3B5PiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzI4NWFjMGI0YmQ2
ZGUxMWRmZWI5ZmUzMjhmMDFjOTk5OTUwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorCisjaW5jbHVkZSAiRW5jb2Rlci5oIgorCitu
YW1lc3BhY2UgSVBDIHsKKwordm9pZCBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBpZiAobV9kYXRhLmlzRW1wdHkoKSkgewor
ICAgICAgICBTaGFyZWRCdWZmZXJDb3B5OjplbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoIWJ1ZmZlcigpKTsKKyAgICBlbmNvZGVyIDw8IG1fZGF0
YTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKaW5kZXggMmNmYzdmYWM4MTE4
YmViZDE4NTUzYWMyMmExZDg1ZDdkZjI4MGFmMC4uZDNkMGVjNWU5Nzg1NTk5YjYzNGE4NGM2YzQ0
NzFiNTJjZDIyMTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw0NyArMjMsMzIgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBFbmNvZGVzIGEgU2hhcmVkQnVmZmVy
IG9yIERhdGFSZWZlcmVuY2UgdGhhdCBpcyByZWNlaXZlZCBhcyBhIERhdGFSZWZlcmVuY2UgdG8g
dGhlIGRlY29kZWQgZGF0YS4KKwogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAKIG5h
bWVzcGFjZSBJUEMgewogCi1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsKK2NsYXNz
IEVuY29kZXI7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgOiBwcml2YXRlIFNo
YXJlZEJ1ZmZlckNvcHkgewogcHVibGljOgogICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uo
KSA9IGRlZmF1bHQ7Ci0gICAgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpIHsg
fQotICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mJiBidWZmZXIpIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KLSAgICBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgYnVmZmVyKQot
ICAgICAgICA6IG1fYnVmZmVyKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkpCi0gICAg
ewotICAgICAgICBtX2J1ZmZlci0+YXBwZW5kKGJ1ZmZlcik7Ci0gICAgfQotCi0gICAgUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIHsgcmV0dXJuIG1fYnVmZmVyOyB9Ci0g
ICAgY29uc3QgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYnVmZmVyOyB9Ci0KLSAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3QgeyByZXR1
cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+ZGF0YSgpIDogbnVsbHB0cjsgfQotICAgIHNpemVfdCBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgpIDogMDsgfQot
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmlz
RW1wdHkoKSA6IHRydWU7IH0KKyAgICB1c2luZyBTaGFyZWRCdWZmZXJDb3B5OjpTaGFyZWRCdWZm
ZXJDb3B5OwogCi0gICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLSAgICB7
Ci0gICAgICAgIGVuY29kZXIgPDwgbV9idWZmZXI7Ci0gICAgfQorICAgIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UoRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgICAgICA6IG1fZGF0YShXVEZNb3Zl
KGRhdGEpKSB7IH0KKyAgICBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IHVpbnQ4X3Qq
IGRhdGEsIHNpemVfdCBzaXplKQorICAgICAgICA6IG1fZGF0YShkYXRhLCBzaXplKSB7IH0KIAot
ICAgIHN0YXRpYyBPcHRpb25hbDxTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLSAgICB7Ci0gICAgICAgIE9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+PiBidWZmZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOwotICAgICAg
ICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAg
IHJldHVybiB7IFdURk1vdmUoKmJ1ZmZlcikgfTsKLSAgICB9CisgICAgdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIC8vIFVzZSBJUEM6OkRhdGFSZWZlcmVuY2UgdG8gZGVjb2RlLgog
CiBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwor
ICAgIERhdGFSZWZlcmVuY2UgbV9kYXRhOwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBlOWRhZTllNTNjNTAy
ZDdjZjhjNzQ0YjFhOWFmNWJkNWE0YjI3MWNiLi42YWU2OTFkN2E5NTEyNTRjZjZiMzUzZTE3MmY4
MTExYjUzYWVjM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTU3Niw3ICs1NzYsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBoZWFk
ZXJfaW5mb3NfYW5kX3R5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCiAgICAg
c3BlY2lhbF9jYXNlcyA9IHsKLSAgICAgICAgJ0lQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSc6IFsnIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCInLCAnIkRhdGFSZWZlcmVuY2UuaCIn
XSwKICAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAog
ICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4nXSwKICAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsnPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYWQ3ODJjMmU2MmY3MmY3ZWVhODVj
MzFiMDBmN2JhMjA5ZjIyYjQ5NS4uZDIyM2YzZTUyZDJjYWUxN2JmZDMwNzdmZmRmZmZjNjVhOTll
NjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xNDAsNiArMTQwLDggQEAgUGxhdGZvcm0vSVBDL0RlY29k
ZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIEBuby11bmlmeQogUGxh
dGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5jcHAgQG5vLXVuaWZ5CitQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyQ29w
eS5jcHAgQG5vLXVuaWZ5CitQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5j
cHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkK
IAogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIEBuby11bmlmeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpp
bmRleCBhOGI1MmI3MmEwODNmYzA0ZDVhMTUyNTY2ZDAzMTI4YTFlOTUxM2VlLi5jMDc5ZjExOGRk
NGVlZjc3NTg3MmY5NzUwYmRmZDNiZjc4NTNlNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMzYsNyArMzYsNyBAQAog
I2ltcG9ydCAiUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmgiCiAjaW1wb3J0ICJTYWZlQnJvd3Np
bmdTUEkuaCIKICNpbXBvcnQgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbXBvcnQgIlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNp
bXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFzdGVib2FyZFByb3h5Lmgi
CiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXREcmFnQ2FyZXRSZWN0KGNvbnN0IEludFJlY3QmIGRyYWdDYXJldFJl
Y3QpCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBhdHRh
Y2htZW50LCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBhdHRhY2ht
ZW50LCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkmIGJ1ZmZlckNvcHkpCiB7Ci0gICAgaWYgKGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgp
KQorICAgIGlmIChidWZmZXJDb3B5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW3BhZ2VDbGllbnQoKS5hbGxvY0ZpbGVXcmFwcGVy
SW5zdGFuY2UoKSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YVJlZmVyZW5jZS5idWZm
ZXIoKS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gZmlsZVdyYXBw
ZXIgPSBhZG9wdE5TKFtwYWdlQ2xpZW50KCkuYWxsb2NGaWxlV3JhcHBlckluc3RhbmNlKCkgaW5p
dFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmJ1ZmZlckNvcHkuYnVmZmVyKCktPmNyZWF0ZU5TRGF0
YSgpLmdldCgpXSk7CiAgICAgW2ZpbGVXcmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1lOnByZWZl
cnJlZEZpbGVOYW1lXTsKICAgICBhdHRhY2htZW50LT5zZXRGaWxlV3JhcHBlcihmaWxlV3JhcHBl
ci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCAzYWJhNTM3ZWY0NmI2YTI1YWNjYmY5NjFlMWIwNTU5ZjYwYzJjZmMyLi5iNmY0MTVlOGQzZWZm
ZTNiMTM3NDlhYTRjYTY4Y2JjYjRlNDdjZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTU5LDcgKzU5LDYgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIK
ICNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdlci5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKQEAgLTcwNzQsMTMgKzcw
NzMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZvaWRDYWxsYmFjayhDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRhdGFDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2Us
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFj
a3MudGFrZTxEYXRhQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJu
VmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YVJlZmVyZW5jZS5kYXRhKCkpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSkucHRyKCkpOworICAg
IGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVh
dGUoZGF0YVJlZmVyZW5jZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpib29sQ2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKQEAgLTkzMjQsNyArOTMyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpn
ZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiBpY29uLCBDYWxs
YmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5pc2hlZExvYWRpbmdJY29u
KENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiBkYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmlzaGVkTG9hZGluZ0ljb24oQ2FsbGJh
Y2tJRCBjYWxsYmFja0lELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAg
ZGF0YUNhbGxiYWNrKGRhdGEsIGNhbGxiYWNrSUQpOwogfQpAQCAtOTU3NCw3ICs5NTczLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUF0dGFjaG1lbnRJY29uKGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgY29uc3QgUmVmUHRyPFMKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6
cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRG
aWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0
cmluZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYgZGF0
YSkKIHsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcmVmZXJlbmNlcy0+YXR0YWNo
bWVudEVsZW1lbnRFbmFibGVkKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBJZGVu
dGlmaWVyVG9BdHRhY2htZW50TWFwOjppc1ZhbGlkS2V5KGlkZW50aWZpZXIpKTsKQEAgLTk2OTIs
NyArOTY5MSw3IEBAIFdlYlBhZ2VQcm94eTo6U2hvdWxkVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0
ZXMgV2ViUGFnZVByb3h5Ojp3aWxsVXBkYXRlQXR0YWNobWVuCiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVudChSZWY8
QVBJOjpBdHRhY2htZW50PiYmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UmKQordm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtUmVnaXN0ZXJBdHRh
Y2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6
U2hhcmVkQnVmZmVyQ29weSYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMGU2NTQ2Yjg0OWYyODU2MzNhYjUzOTFiMWMwYjcwMWUxMjkyMjE0ZS4uZjlj
ZWZkOTcyNzZlMzNkOWQxYjIwYjdmOTMwMTVmZmVkMzZiOWRmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIwNiw5ICsyMDYsMTAgQEAgZW51bSBjbGFzcyBJbnNw
ZWN0b3JUYXJnZXRUeXBlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBE
YXRhUmVmZXJlbmNlOwogY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwot
Y2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlckNvcHk7
CiB9CiBPQkpDX0NMQVNTIE5TRmlsZVdyYXBwZXI7CiBPQkpDX0NMQVNTIFdLUUxUaHVtYm5haWxM
b2FkT3BlcmF0aW9uOwpAQCAtMzA0LDcgKzMwNSw2IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNj
cm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVBy
b3h5U3RvcmU7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOwogY2xhc3MgVXNlckRh
dGE7CiBjbGFzcyBWaWV3U25hcHNob3Q7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMTU1
Myw3ICsxNTUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCk7CiAKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlu
a0ljb24mLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwotICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nSWNv
bihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYpOworICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3Vz
ZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJhbWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
CkBAIC0yMTA0LDcgKzIxMDQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZUV2ZW50
KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wgaGFuZGxlZCk7CiAKICAgICB2b2lkIHZvaWRDYWxs
YmFjayhDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRhdGFDYWxsYmFjayhjb25zdCBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRhdGFDYWxsYmFj
ayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGltYWdl
Q2FsbGJhY2soY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDYWxsYmFja0lEKTsKICAg
ICB2b2lkIGJvb2xDYWxsYmFjayhib29sIHJlc3VsdCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBz
dHJpbmdDYWxsYmFjayhjb25zdCBTdHJpbmcmLCBDYWxsYmFja0lEKTsKQEAgLTIyNzQsMTIgKzIy
NzQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BBbGxVUkxTY2hlbWVUYXNrcyhXZWJQcm9j
ZXNzUHJveHkqID0gbnVsbHB0cik7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQot
ICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkRmls
ZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQg
cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNv
bnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYpOwogICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50
SWRlbnRpZmllckZyb21GaWxlUGF0aChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKICAgICB2b2lkIHJlZ2lzdGVyQXR0YWNo
bWVudHNGcm9tU2VyaWFsaXplZERhdGEoVmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YT4mJik7CiAgICAgdm9pZCBjbG9uZUF0dGFjaG1lbnREYXRhKGNvbnN0IFN0cmluZyYg
ZnJvbUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdG9JZGVudGlmaWVyKTsKIAotICAgIHZvaWQg
cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiwgY29uc3Qg
U3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlJik7CisgICAgdm9pZCBwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVudChSZWY8QVBJOjpB
dHRhY2htZW50PiYmLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6
OlNoYXJlZEJ1ZmZlckNvcHkmKTsKICAgICB2b2lkIHBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50
KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYsIGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpOwogICAgIHZv
aWQgcGxhdGZvcm1DbG9uZUF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBmcm9tQXR0
YWNobWVudCwgUmVmPEFQSTo6QXR0YWNobWVudD4mJiB0b0F0dGFjaG1lbnQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQ1
MWFiOTg4NTQwNTRkZTNiYTU5N2M5YjM1YWNjMGY0ZGJhY2EyMy4uZTFiY2ZjZDYxZjllZTAwY2Q2
Y2VkMDk0YzQ5MDQyODI4ZDQyODU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
Ci0gICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVudGlm
aWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBDOjpT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCisgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRl
bnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0
cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpCiAgICAg
UmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21GaWxlUGF0aChTdHJpbmcgaWRlbnRpZmll
ciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgZmlsZVBhdGgpCiAgICAgUmVnaXN0ZXJBdHRh
Y2htZW50SWRlbnRpZmllcihTdHJpbmcgaWRlbnRpZmllcikKICAgICBSZWdpc3RlckF0dGFjaG1l
bnRzRnJvbVNlcmlhbGl6ZWREYXRhKFZlY3RvcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVu
dERhdGE+IGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCmluZGV4IDljYzI0NTE3NzFhY2JjNWM2N2EyODU0ZTUxZGE0ZmY2YjZjOTgyYjQuLjQzNGQx
NzY0ZDBlMGVmZjgxMmIxMmE3NDI2NTM0MjJhZmVkMGJiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VHlw
ZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAgICAgdm9pZCByZWFkVGV4dChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CiAgICAg
dm9pZCByZWFkRmlsZVBhdGhzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgcmVhZEJ1ZmZl
cihjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRU
eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYmKT4mJik7CisgICAgdm9pZCByZWFkQnVmZmVyKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYpPiYmKTsKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSYmKTsK
ICAgICB2b2lkIGNsZWFyQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggZTlhODc1MzRjNjFkOTJhNzZmNjk2NmNlZWY4ZTU5ZWU3OWU2ZDE4
Mi4uYTk1NmQ1YTc2M2QxMzQ0ZThlNjEwYWRiNDEzNGE2NzUxNWQ4Y2JiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNjQsNyArNjQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJveHkgTm90UmVm
Q291bnRlZCB7CiAgICAgR2V0VHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9y
PFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgUmVhZFRleHQoU3RyaW5nIHBhc3RlYm9h
cmROYW1lKSAtPiAoU3RyaW5nIHRleHQpIFN5bmNocm9ub3VzCiAgICAgUmVhZEZpbGVQYXRocyhT
dHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25v
dXMKLSAgICBSZWFkQnVmZmVyKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlKSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpIFN5bmNocm9u
b3VzCisgICAgUmVhZEJ1ZmZlcihTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJv
YXJkVHlwZSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBkYXRhKSBTeW5jaHJvbm91cwogICAg
IFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpTZWxlY3Rp
b25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIENsZWFyQ2xpcGJvYXJkKFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmNwcAppbmRleCBhZWE3NmUyN2RlYWEwZjdmMjFjMzQxYzhmY2Y3NzJjMjYwZDI0NTll
Li5iYWFkNzg2NTQ5MDg2NTA4MjEzNTI0Y2NkMDMyYzBlNzljYjJmNTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcApAQCAtMjcsOCArMjcsNiBAQAog
I2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKIAogI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5o
IgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAK
aW5kZXggM2RlYmYzOGE1NGY5NWQyNDkzOTljZjQ4ZTdhY2EwZDNkZmE3YzNmZC4uMDljYTU1NjIx
ODZhM2FiYTQ0ZjViNDc0ODM2ZDM5Y2FiNTA0ODQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKQEAgLTI3LDE0ICsy
NywxMyBAQAogI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogCiAjaW5jbHVkZSAiQ2xp
cGJvYXJkLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJk
Q3VzdG9tRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlbGVjdGlvbkRhdGEuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgog
CkBAIC01Niw3ICs1NSw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpyZWFkRmlsZVBhdGhz
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIENvbXBsZXRpb25ICiAgICAgQ2xpcGJvYXJk
OjpnZXQocGFzdGVib2FyZE5hbWUpLnJlYWRGaWxlUGF0aHMoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCi12b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZEJ1ZmZlcihjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpyZWFkQnVmZmVyKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIENsaXBib2FyZDo6Z2V0KHBhc3RlYm9hcmROYW1lKS5yZWFk
QnVmZmVyKHBhc3RlYm9hcmRUeXBlLnV0ZjgoKS5kYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KQEAgLTkxLDcgKzkwLDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRp
ZERlc3Ryb3lGcmFtZShXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5Ojp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvJiBjbGlwYm9hcmQgPSBDbGlwYm9hcmQ6OmdldChwYXN0ZWJvYXJkTmFtZSk7Ci0g
ICAgY2xpcGJvYXJkLnJlYWRCdWZmZXIoUGFzdGVib2FyZEN1c3RvbURhdGE6Omd0a1R5cGUoKSwg
WyZjbGlwYm9hcmQsIG9yaWdpbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKSBtdXRh
YmxlIHsKKyAgICBjbGlwYm9hcmQucmVhZEJ1ZmZlcihQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Z3Rr
VHlwZSgpLCBbJmNsaXBib2FyZCwgb3JpZ2luLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBidWZmZXIpIG11dGFi
bGUgewogICAgICAgICBMaXN0SGFzaFNldDxTdHJpbmc+IGRvbVR5cGVzOwogICAgICAgICBpZiAo
YXV0byBkYXRhQnVmZmVyID0gYnVmZmVyLmJ1ZmZlcigpKSB7CiAgICAgICAgICAgICBhdXRvIGN1
c3RvbURhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcigqZGF0YUJ1
ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxYmY2M2IzMDM5NTI4MDJlMDkwYmRjNmYxYjA5OGE0MGU3YmI1YWEwLi40NTUwNzdk
YjBlOWYzYWYyOThjZGU4Y2Y0NzJiYWE5NTFhZmY2M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0MiwxMCArNzQyLDEzIEBACiAJ
CTJEQUYwNkQ2MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFGMDZE
NDE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovOyB9
OwogCQkyREI5NDI5OTIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI5NDI5
NzIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJ
CTJEQjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBD
b3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCOTYwNTIyMzk4
ODZCOTAwMTAyNzkxIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiICovOyB9OworCQkyREMxODEy
NDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxODU1RURCRkI4NTBC
QTBCNkQwNkQgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi87IH07CiAJCTJEQzE4
RkFEMjE4OTEwNDkwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZBQjIxODkxMDQ4MDAyNUE4OEQgLyog
V0tEcmF3aW5nVmlldy5oICovOyB9OwogCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4OEQgLyogUGVu
Y2lsS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREMxOEZBRjIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggKi87IH07CiAJCTJE
QzE4RkIzMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMThGQjEyMThBNkU5RTAw
MjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi87IH07CiAJCTJEQzE4RkI0MjE4QTZF
OUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBS
ZW1vdGVMYXllclRyZWVWaWV3cy5tbSAqLzsgfTsKKwkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NE
IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNv
cHkuY3BwICovOyB9OworCQkyREMxOEZGNkVGMkEzMTMwQzEzMDE3NjcgLyogU2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRDMTg4MUFDQkNBQjVENTdDNUM2RUYwIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaCAqLzsgfTsKIAkJMkRDNkQ5QzMxOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0NvbnRl
bnRQcm92aWRlclJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREM2RDlDMTE4QzQ0QTYxMDA0M0JBRDQgLyogV0tXZWJWaWV3Q29udGVudFBy
b3ZpZGVyUmVnaXN0cnkuaCAqLzsgfTsKIAkJMkREMTJBMDgxQTgxNzdGMzAwMkM3NEU2IC8qIFdL
UGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBk
YXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERDQ1QURDMUU1Rjg5NzIwMDZDMzU1RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5o
ICovOyB9OwpAQCAtMTQ0MSw2ICsxNDQ0LDcgQEAKIAkJQTE3OThCNTEyMjMwQTEwRTAwMDc2NEJE
IC8qIFBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3OThCNEYyMjMwQTBGRTAwMDc2NEJEIC8qIFBh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlci5oICovOyB9OwogCQlBMTgxQTc5ODIxQUNDNzRC
MDA1OUEzMTYgLyogV2ViS2l0QWRkaXRpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MUE3OTcyMUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFk
ZGl0aW9ucy5tbSAqLzsgfTsKIAkJQTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2li
aWxpdHlJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggKi87IH07CisJ
CUExODM0OTQyMjRFRjQ2NzgwMEJEQzlBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0M1REI5MTIxNDg4RTE2MDA2
Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovOyB9OwogCQlBMTlERDNDMDFEMDdEMTY4MDBB
QzgyM0IgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUREM0JGMUQwN0QxNjgwMEFDODIz
QiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oICovOyB9OwogCQlBMUE0RkU1
QTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tE
b3dubG9hZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUExQTRGRTVDMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1OTE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovOyB9OwpAQCAtMzE1MCw2ICsz
MTU0LDkgQEAKIAkJMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVj
b2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0
aCA9IGlvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2du
aXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5t
bTsgcGF0aCA9IGlvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEQjk2MDUyMjM5ODg2QjkwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2Vi
S2l0LkdQVS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNv
cHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVy
Q29weS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQzE4NTVFREJGQjg1MEJB
MEI2RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEQzE4RkFCMjE4OTEwNDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRHJhd2luZ1ZpZXcuaDsgcGF0aCA9IGlvcy9XS0Ry
YXdpbmdWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzE4RkFDMjE4OTEw
NDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tEcmF3aW5nVmlldy5tbTsgcGF0aCA9IGlvcy9XS0RyYXdpbmdWaWV3
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREMxOEZBRjIxODkxMjY0MDAyNUE4
OEQgLyogUGVuY2lsS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBl
bmNpbEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDEwMSw3ICs0MTA4
LDcgQEAKIAkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0
d29ya0RhdGFUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtE
YXRhVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTcz
MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNUNDNURCOTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0M1
REI5MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRCdWZmZXJDb3B5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDRDE1MDc2MjI2OEY3RjAwMDZGQjRBRiAvKiBOZXR3b3JrQ2FjaGVGaWxl
U3lzdGVtQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
ZXR3b3JrQ2FjaGVGaWxlU3lzdGVtQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDRDI4NjQ5MUU3MjJGNDQwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVXNlckNvbnRlbnRGaWx0
ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRDI4NjRBMUU3MjJG
NDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjQyOCw3ICs2NDM1LDEwIEBACiAJCQkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8q
IE1lc3NhZ2VSZWNlaXZlck1hcC5oICovLAogCQkJCTFBQUIwMzc3MTg1QTdDNkEwMEVERjUwMSAv
KiBNZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJCQkxQUFCMDM3ODE4NUE3QzZBMDBFREY1MDEgLyog
TWVzc2FnZVNlbmRlci5oICovLAotCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCisJCQkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5
IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICovLAorCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhB
OCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCisJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZE
IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLAorCQkJCTJEQzE4ODFBQ0JDQUI1
RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJMUFFMDBE
NjkxODMyN0MxMjAwMDg3REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMUFFMDBE
NkExODMyN0MxMjAwMDg3REQ3IC8qIFN0cmluZ1JlZmVyZW5jZS5oICovLAogCQkJKTsKQEAgLTEx
MTQyLDYgKzExMTUyLDggQEAKIAkJCQk0NkJFQjZERjIyRkJCMTZCMDAyNjk4NjcgLyogU2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjQyMEU1MTJEQ0UyRkYw
MENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDYx
MTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkg
LyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBE
MjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
MTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTI4NDEsNiArMTI4NTMsOCBAQAogCQkJCUUxOEU2OTE3MTY5QjY2N0IwMDlC
NjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFy
ZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhF
M0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMTgxMjQ1
QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTFBREFGQjYyMzY4RTZBODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgw
MDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKaW5kZXggZDIxZDQwNTVhZjQ3MmJhYmI2N2Jm
ZjM5ZGQ0NjgyYzgzYWEzNGU3Yy4uMWZjMmYwYzY2MDY5NmFlMzQ4NjFjMGIyNDgwYWQwNTdmZWEx
OTYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0J1c0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvQnVzRGF0YS5oCkBAIC0yNyw4ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQ0RNLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
Q0RNLmNwcAppbmRleCA0OWZkMzhkMTgyZTJmOTE1NjMzZmE0MGIzYTE4YTRmNGE1NzlkZTNlLi4w
OGJhOTg4Y2IzZjExNjc1MGMxNDYzODdmODJmZjUwNWQzZmQ0ZTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCkBAIC0yOCwxMyArMjgs
MTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiUmVt
b3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFu
Y2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmluZGV4IDQzZmI4
ZDVmNjNjNTMxN2M4OWExMGNkOTkxMzM4MWQ3NDNjZTM4NWEuLmRlMTY2NmU5NTlmNjY2MDYwZDg4
OGQ3YzYzMmVhMjkzY2I0OTJjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3Bw
CmluZGV4IDkwNWNjYmUyMzk2ZjliMmY4NmM5YzZiMjZmMzNlMWJhMjM1YjAxNzkuLjk4OGVmMDEy
ZDU1MmEwZjZiZThiYmRhYzI0NzUyZDgzMGNhYTlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFy
ZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uOjpyZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSB0eXBlLCBjb25zdCBBdG9tU3RyaW5n
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OlJlcXVlc3RMaWNlbnNlKHR5cGUsIGluaXREYXRhVHlw
ZSwgV1RGTW92ZShpbml0RGF0YSkpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vz
c2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBtdXRh
YmxlIHsKKyAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHk6OlJlcXVlc3RMaWNlbnNlKHR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSkp
LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKElQQzo6U2hhcmVkQnVmZmVyQ29weSYm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6
YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtZXNzYWdlLmJ1
ZmZlcigpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCBl
bXB0eVN0cmluZygpLCBmYWxzZSwgRmFpbGVkKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEw
Nyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbjo6cmVtb3ZlU2Vzc2lv
bkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2VucwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblBy
b3h5OjpSZW1vdmVTZXNzaW9uRGF0YShzZXNzaW9uSWQsIHR5cGUpLCBbY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKEtleVN0YXR1c1ZlY3RvciYmIGNoYW5nZWRLZXlzLCBPcHRpb25hbDxJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+JiYgbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQp
IG11dGFibGUgeworICAgIG1fZmFjdG9yeS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25Qcm94eTo6UmVtb3ZlU2Vzc2lvbkRhdGEoc2Vzc2lvbklkLCB0eXBlKSwgW2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldIChLZXlTdGF0dXNWZWN0b3ImJiBjaGFuZ2VkS2V5cywgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiYmIG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBtdXRh
YmxlIHsKICAgICAgICAgT3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+IHJlYWxNZXNzYWdlID0g
V1RGOjpudWxsb3B0OwogICAgICAgICBpZiAobWVzc2FnZSAmJiBtZXNzYWdlLnZhbHVlKCkuYnVm
ZmVyKCkpCiAgICAgICAgICAgICByZWFsTWVzc2FnZSA9IG1lc3NhZ2UudmFsdWUoKS5idWZmZXIo
KS5yZWxlYXNlTm9uTnVsbCgpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5z
dGFuY2VTZXNzaW9uOjp1cGRhdGVLZXlTdGF0dXNlcyhLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0
dXNlcykKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUtleVN0YXR1c2VzKFdURk1vdmUoa2V5U3Rh
dHVzZXMpKTsKIH0KIAotdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OnNlbmRNZXNzYWdl
KFdlYkNvcmU6OkNETU1lc3NhZ2VUeXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZSYmIG1lc3NhZ2UpCit2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbjo6c2VuZE1lc3Nh
Z2UoV2ViQ29yZTo6Q0RNTWVzc2FnZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYg
bWVzc2FnZSkKIHsKICAgICBpZiAobV9jbGllbnQgJiYgbWVzc2FnZS5idWZmZXIoKSkKICAgICAg
ICAgbV9jbGllbnQtPnNlbmRNZXNzYWdlKHR5cGUsIG1lc3NhZ2UuYnVmZmVyKCkucmVsZWFzZU5v
bk51bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaAppbmRleCAyNmMyOGJlNzY3NTAxNDE2
ZjY3ODQzOGMzNjA1NWE1M2FmMWYwN2FiLi40ZmZlNGNhY2VjY2RlNDNkNWNiMTFlMjM2Y2EwNDVh
Y2RhODNhN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NETUluc3RhbmNlU2Vzc2lvbi5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJD
b3B5OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToK
IAogICAgIC8vIE1lc3NhZ2VzCiAgICAgdm9pZCB1cGRhdGVLZXlTdGF0dXNlcyhLZXlTdGF0dXNW
ZWN0b3ImJik7Ci0gICAgdm9pZCBzZW5kTWVzc2FnZShXZWJDb3JlOjpDRE1NZXNzYWdlVHlwZSwg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgc2VuZE1lc3NhZ2Uo
V2ViQ29yZTo6Q0RNTWVzc2FnZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmKTsKICAgICB2
b2lkIHNlc3Npb25JZENoYW5nZWQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHNldENsaWVu
dChXZWFrUHRyPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4mJiBjbGllbnQpIGZp
bmFsIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KaW5kZXggYzhjMjM5MmU3ZWY4NjIwNDYyMWQyODQxNDM4
YjVlZGY0ZDM4MTUzNi4uYWEyZDM3YmRmNWVmNmQwNTdhZGY2OWFmNjBjZTZiOGE3YjgzOGU5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTI1LDcg
KzI1LDcgQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uIE5vdFJlZkNv
dW50ZWQgewogICAgIFVwZGF0ZUtleVN0YXR1c2VzKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bjo6S2V5U3RhdHVzVmVjdG9yIGtleVN0YXR1c2VzKQotICAgIFNlbmRNZXNzYWdlKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpDRE1NZXNzYWdlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UgbWVzc2FnZSkKKyAgICBTZW5kTWVzc2FnZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
Q0RNTWVzc2FnZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IG1lc3NhZ2UpCiAgICAg
U2Vzc2lvbklkQ2hhbmdlZChTdHJpbmcgc2Vzc2lvbklkKQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNz
aW9uLmNwcAppbmRleCA2MTg0MzgzMjg5NzdkYjdmZThlODMyM2JhODNhMjRjNWNjNzY0NjFkLi5h
YzM1NzQyYTliNzYxNDkzOWUxM2M0ZDU0MjRjOTQzY2RhMWUwNWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
U2Vzc2lvbi5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJl
bW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyQ29weS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmll
d0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5o
PgpAQCAtMzksMTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotc3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY29udmVydFRvQXJyYXlC
dWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKQorc3RhdGljIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4gY29udmVydFRvQXJyYXlCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJD
b3B5JiYgYnVmZmVyKQogewogICAgIGlmIChidWZmZXIuYnVmZmVyKCkpCiAgICAgICAgIHJldHVy
biBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPFVpbnQ4QXJyYXk+IGNvbnZlcnRU
b1VpbnQ4QXJyYXkoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKQorc3Rh
dGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hhcmVkQnVm
ZmVyQ29weSYmIGJ1ZmZlcikKIHsKICAgICBhdXRvIGFycmF5QnVmZmVyID0gY29udmVydFRvQXJy
YXlCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKICAgICBpZiAoIWFycmF5QnVmZmVyKQpAQCAtNTcs
MTUgKzU3LDcgQEAgc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5
KElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGIKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdGF0aWMgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBj
b252ZXJ0VG9PcHRpb25hbERhdGFSZWZlcmVuY2UoVCBhcnJheSkKLXsKLSAgICBpZiAoIWFycmF5
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiB7IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKGFycmF5LT5kYXRhKCksIGFycmF5LT5ieXRlTGVuZ3RoKCkpIH07Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBjb252ZXJ0VG9EYXRhUmVmZXJlbmNlKFQgYXJyYXkpCitzdGF0aWMgSVBDOjpTaGFyZWRCdWZm
ZXJDb3B5IGNvbnZlcnRUb1NoYXJlZEJ1ZmZlckNvcHkoVCBhcnJheSkKIHsKICAgICBpZiAoIWFy
cmF5KQogICAgICAgICByZXR1cm4geyB9OwpAQCAtODgsOCArODAsOCBAQCBSZWZQdHI8VWludDhB
cnJheT4gUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgbWltZQogICAgIGlmICghbV9mYWN0b3J5IHx8ICFpbml0RGF0YSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGlwY0luaXREYXRhID0gY29udmVydFRvRGF0YVJlZmVy
ZW5jZShpbml0RGF0YSk7Ci0gICAgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlPiBpcGNOZXh0TWVzc2FnZTsKKyAgICBhdXRvIGlwY0luaXREYXRhID0gY29udmVydFRvU2hh
cmVkQnVmZmVyQ29weShpbml0RGF0YSk7CisgICAgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJD
b3B5PiBpcGNOZXh0TWVzc2FnZTsKICAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHk6OkdlbmVyYXRlS2V5UmVxdWVzdChtaW1lVHlwZSwgaXBjSW5pdERhdGEpLCBNZXNzYWdl
czo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpHZW5lcmF0ZUtleVJlcXVlc3Q6OlJlcGx5
KGlwY05leHRNZXNzYWdlLCBkZXN0aW5hdGlvblVSTCwgZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKSwg
bV9pZGVudGlmaWVyKTsKIAogICAgIGlmICghaXBjTmV4dE1lc3NhZ2UpCkBAIC0xMTIsOSArMTA0
LDkgQEAgYm9vbCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5
RGF0YSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXgKICAgICBpZiAoIW1fZmFjdG9yeSB8fCAha2V5
RGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBpcGNLZXlEYXRhID0gY29u
dmVydFRvRGF0YVJlZmVyZW5jZShXVEZNb3ZlKGtleURhdGEpKTsKKyAgICBhdXRvIGlwY0tleURh
dGEgPSBjb252ZXJ0VG9TaGFyZWRCdWZmZXJDb3B5KFdURk1vdmUoa2V5RGF0YSkpOwogICAgIGJv
b2wgc3VjY2VlZGVkIHsgZmFsc2UgfTsKLSAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2U+IGlwY05leHRNZXNzYWdlOworICAgIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVm
ZmVyQ29weT4gaXBjTmV4dE1lc3NhZ2U7CiAgICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vz
c2lvblByb3h5OjpVcGRhdGUoaXBjS2V5RGF0YSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHk6OlVwZGF0ZTo6UmVwbHkoc3VjY2VlZGVkLCBpcGNOZXh0TWVzc2FnZSwgZXJy
b3JDb2RlLCBzeXN0ZW1Db2RlKSwgbV9pZGVudGlmaWVyKTsKIAogICAgIGlmIChpcGNOZXh0TWVz
c2FnZSkKQEAgLTEzMiw3ICsxMjQsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJlbW90ZUxlZ2Fj
eUNETVNlc3Npb246OmNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYga2V5SQogICAgIGlm
IChmb3VuZEluQ2FjaGUgIT0gbV9jYWNoZWRLZXlDYWNoZS5lbmQoKSkKICAgICAgICAgcmV0dXJu
IGZvdW5kSW5DYWNoZS0+dmFsdWU7CiAKLSAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2U+IGlwY0tleTsKKyAgICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+
IGlwY0tleTsKICAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OkNhY2hl
ZEtleUZvcktleUlEKGtleUlkKSwgTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94
eTo6Q2FjaGVkS2V5Rm9yS2V5SUQ6OlJlcGx5KGlwY0tleSksIG1faWRlbnRpZmllcik7CiAKICAg
ICBpZiAoIWlwY0tleSkKQEAgLTE0Myw3ICsxMzUsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJl
bW90ZUxlZ2FjeUNETVNlc3Npb246OmNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYga2V5
SQogICAgIHJldHVybiBpcGNLZXlCdWZmZXI7CiB9CiAKLXZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vz
c2lvbjo6c2VuZE1lc3NhZ2UoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
PiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkwpCit2b2lkIFJlbW90ZUxl
Z2FjeUNETVNlc3Npb246OnNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29w
eT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICgh
bV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKaW5kZXggYzhh
OTcxOWViNmIyY2YwNjYwNDY3ZDA3MjY4ODI0ODdlNTJkYjJmYS4uNGQ1YmVjZTA1OTExNWU1MmYw
MzRlMGE1MTQ1ZDAyNDllZWIyMWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgKQEAgLTMzLDcg
KzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNs
YXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5Owog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0
IGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIHNlbmRNZXNzYWdlKE9wdGlvbmFs
PElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hh
cmVkQnVmZmVyQ29weT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKTsK
ICAgICB2b2lkIHNlbmRFcnJvcihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpNZWRp
YUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSk7CiAKICAgICBXZWFrUHRyPFJlbW90
ZUxlZ2FjeUNETUZhY3Rvcnk+IG1fZmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lv
bi5tZXNzYWdlcy5pbgppbmRleCA4NDdhZjYwNDAxZjkxZTM0MTBjMmZlNGQ0ZTQ0NzE1MjYxM2Ex
Mjg2Li4xMmY2ODc4YTgzMzcwMjIwNDlmMDU1MDcxZTkzZGE0ZWMyYjE0ZWZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Np
b24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIAog
bWVzc2FnZXMgLT4gUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKLSAgICBT
ZW5kTWVzc2FnZShPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IG1lc3Nh
Z2UsIFN0cmluZyBkZXN0aW5hdGlvblVSTCkKKyAgICBTZW5kTWVzc2FnZShPcHRpb25hbDxJUEM6
OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIFN0cmluZyBkZXN0aW5hdGlvblVSTCkKICAgICBT
ZW5kRXJyb3IoZW51bTp1aW50OF90IFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1l
ZGlhS2V5RXJyb3JDb2RlIGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCmluZGV4IDg2NDRkNTkwZjY3NmMzZjUwMDUzYjc4MjJmMDQ3MTg1OGNiYjJmMDAuLjk3
ZWI1YjM0ZTc1NjU0NTk3YmFhNjYyNzFjODY4MzkwNjFiZWJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAg
LTI2LDEzICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkxvYWRl
clN0cmF0ZWd5LmgiCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSGFu
Z0RldGVjdGlvbkRpc2FibGVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2ODkz
YWYwYjRiNDMyNzE4NGZkZTU2NGUyNjAwNzBmYWM3M2U0YzYuLjg2NTcxMWIzNjZjMjhkZjQ4NGI0
Y2RjMDdhYTNmY2YzZGNlYmYyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAg
LTE5MSw0NyArMTkwLDI1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vCiAgICAgbV9jb3JlTG9h
ZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFdURk1vdmUocG9saWN5RGVjaXNpb25D
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vz
cykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVTaGFyZWRCdWZmZXIgb2Ygc2l6ZSAlbHUg
Zm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0
d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGls
IHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKLQotICAgIGlmIChVTkxJS0VMWShtX2lu
dGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVy
KCkpKSkgewotICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcihXVEZNb3ZlKGRhdGEp
LCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcm9j
ZXNzUmVjZWl2ZWREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgp
KSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxl
bmd0aCkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9j
b3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9j
ZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9u
c2UiKTsKIAogICAgIGlmIChVTkxJS0VMWShtX2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNl
cHRpbmcobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2Vp
dmluZ1NoYXJlZEJ1ZmZlcih7IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0
YSgpLCBkYXRhLnNpemUoKSkgfSwgZW5jb2RlZERhdGFMZW5ndGgpOworICAgICAgICBhdXRvIGJ1
ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7Cisg
ICAgICAgIG1faW50ZXJjZXB0Q29udHJvbGxlci5kZWZlcihtX2NvcmVMb2FkZXItPmlkZW50aWZp
ZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYnVmZmVyID0gV1RG
TW92ZShidWZmZXIpLCBlbmNvZGVkRGF0YUxlbmd0aF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGlmIChtX2NvcmVMb2FkZXIpCisgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoeyBidWZm
ZXItPmRhdGFBc1VJbnQ4UHRyKCksIGJ1ZmZlci0+c2l6ZSgpIH0sIGVuY29kZWREYXRhTGVuZ3Ro
KTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcHJvY2Vzc1JlY2Vp
dmVkRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEu
c2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci19CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6
OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgbV9pbnRlcmNlcHRD
b250cm9sbGVyLmRlZmVyKG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgZW5jb2RlZERh
dGFMZW5ndGhdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChtX2NvcmVMb2FkZXIpCi0gICAgICAg
ICAgICBkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRhTGVu
Z3RoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6cHJvY2Vzc1JlY2Vp
dmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCkKLXsKLSAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkgeworICAgIGlmICghbV9u
dW1CeXRlc1JlY2VpdmVkKQogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSIpOwotICAgIH0KLSAgICBtX251bUJ5dGVz
UmVjZWl2ZWQgKz0gc2l6ZTsKKyAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7
CiAKLSAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWRE
YXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2Vp
dmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5z
aXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggODQ2YjAwNzI5MjIyYzQz
MjE3NzkxODA0ZTc2NjIyODk5N2QwMGMxOC4uNTgzZTM3OWM4OWVjZmE5NTMwYjBhYmZhMWM2OWZl
YTlkNTM5NjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U7CitjbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CiAK
QEAgLTgzLDggKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZvaWQgZGlkU2VuZERhdGEo
dWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBi
b29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlJiYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlk
UmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJik7CiAgICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZEZhaWxTZXJ2aWNlV29ya2Vy
TG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CkBAIC05Myw5ICs5Miw2IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50
U2VjdXJpdHlQb2xpY3lEZW5pZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
Ci0gICAgdm9pZCBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UmJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBwcm9j
ZXNzUmVjZWl2ZWREYXRhKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKTsKLQogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgdm9p
ZCBkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmluZGV4IGFiMzliNTk0NmNhY2E4MWY3
NWIxODA3NzE0YmY3OWRhNTIzYWEzZDguLjAyYTE0ZjU5YTMwNDc0NGMyZDE4M2VhNzllOTllYmFl
YjRjZmJiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKICAgICBXaWxs
U2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJl
Y3RSZXNwb25zZSkKICAgICBEaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90
IHRvdGFsQnl0ZXNUb0JlU2VudCkKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwg
aW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBk
YXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZEZpbmlzaFJlc291cmNlTG9h
ZChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya0xvYWRNZXRyaWNzKQogICAgIERp
ZEZhaWxSZXNvdXJjZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBEaWRG
YWlsU2VydmljZVdvcmtlckxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggYzgzYTc4YzEzNWFjOTk3NGM1
MWViNmVjODlhOWU5ZjUxNjMzOTYyMC4uYTY1MjBjYzE2NzUwZjA4MjM2YTc0YWY3YTMzMjg2M2E5
NjAyNmZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTI4
LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIK
QEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlciB7IGJ1ZmZlci5nZXQoKSwgc3RhdGlj
X2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXIt
PnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURh
dGE+JiYgZm9ybURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDljNmI3YmE3Y2I1NmE0
MjM1YjAwNWI5ZmJhYmIxYWMyOTFjYzQ4NzguLmRiOTdjMGIxN2I3ZTFhMjQxNDIxOGMyNTk3OGFh
OTQ0NjE4MjExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAj
aW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCiAKICNpbmNsdWRlICJFZGl0b3JTdGF0ZS5oIgot
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRC
dWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiVW5kb09yUmVkby5oIgogI2luY2x1ZGUgIldLQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyYTdlY2QxMjY3MGZjNDliMzRj
MWZjZGYwYjA3YzBjMGUxZGQ3NzJjLi4zNjZmYjgxMTQ1NzBlOTRlOGVmOTE0ZjNjMjEwNjk4MzM0
N2E2NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzQsNyArMzQs
NyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3Jl
LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlckNvcHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtMzE5LDcgKzMx
OSw3IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZpbGVQYXRo
c0Zyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCiB7CiAKLSAgICBJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YTsKKyAgICBJUEM6OlNoYXJlZEJ1ZmZl
ckNvcHkgZGF0YTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkQnVm
ZmVyKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OlJlYWRCdWZmZXI6OlJlcGx5KGRhdGEpLCAwKTsKICAgICByZXR1cm4gZGF0YS5i
dWZmZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggZGY0ZTg3ZDg0ZDY2NWNhODgyMTllNTJlMmZmOGNlNWViYmQ1MjA0NS4uNWNhMDgx
OGM1YTM0YjJhN2Q5ZTQ0ZWE1NDdiZTQzMjE2MTBjODVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM1NjksNyArMzU2OSw3IEBAIHZvaWQg
V2ViUGFnZTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGRhdGEpCi0gICAgICAgIGRhdGFSZWZlcmVuY2Ug
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmdldCgpKTsKKyAgICAgICAgZGF0YVJlZmVyZW5j
ZSA9IHsgQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihD
RkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpIH07CiAjZW5kaWYKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7
CiB9CkBAIC0zNjUwLDcgKzM2NTAsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSQogICAgIElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmIChkYXRhKQotICAgICAgICBkYXRhUmVmZXJlbmNlID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoZGF0YS5nZXQoKSk7CisgICAgICAgIGRhdGFSZWZlcmVuY2UgPSB7IENGRGF0
YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVu
Z3RoKGRhdGEuZ2V0KCkpKSB9OwogI2VuZGlmCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtNTAy
OSw3ICs1MDI5LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8KIHsKICAgICBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZy
YW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBTaGFyZWRCdWZmZXI6OmNyZWF0
ZShwZGZQYWdlRGF0YS5nZXQoKSkgfSwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0
YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRh
LmdldCgpKSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURh
dGFSZWY+JiBwZGZQYWdlRGF0YSkKQEAgLTY3MTUsMTIgKzY3MTUsMTIgQEAgdm9pZCBXZWJQYWdl
Ojp1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjQKICAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHRhc2tJZGVu
dGlmaWVyLCByZXNwb25zZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJl
Y2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBX
ZWJQYWdlOjp1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IGRhdGEpCiB7CiAgICAgYXV0byogaGFuZGxlciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFu
ZGxlclByb3h5TWFwLmdldChoYW5kbGVySWRlbnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIp
OwogCi0gICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRh
LnNpemUoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGRhdGEuZGF0YSgpKSk7
CisgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNp
emUoKSwgZGF0YS5kYXRhKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRD
b21wbGV0ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtNjkyNiw3ICs2OTI2LDcgQEAgdm9p
ZCBXZWJQYWdlOjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0
aW9uYWw8dWludDY0X3Q+JiYgZmkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZv
aWRDYWxsYmFjayhjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNo
bWVudEF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRf
dD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBm
aWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJ
bWFnZURhdGEsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0
YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50
NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byBhdHRhY2htZW50ID0gYXR0
YWNobWVudEVsZW1lbnRXaXRoSWRlbnRpZmllcihpZGVudGlmaWVyKSkgewogICAgICAgICBhdHRh
Y2htZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDY0OGFkYWJhNjFmZTIwOTNiZTlkNzU0ODUwNDYy
ODcyZmJjMmFmNzguLjIzMjk5MGFkODE5YWExNzg0OTQxZjc3MzdiMDJhNzhiOTk1NjdiZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Niw5ICsx
NTYsOSBAQCBjbGFzcyBBcnJheTsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9u
OworY2xhc3MgRGF0YVJlZmVyZW5jZTsKIGNsYXNzIERlY29kZXI7CiBjbGFzcyBGb3JtRGF0YVJl
ZmVyZW5jZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIzMCw3ICsyMzAsNiBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1l
bnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3Mg
RHJhd2luZ0FyZWE7CiBjbGFzcyBEb3dubG9hZElEOwogY2xhc3MgRmluZENvbnRyb2xsZXI7CkBA
IC0xMjI1LDcgKzEyMjQsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCB1cGRh
dGVBdHRhY2htZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBT
dHJpbmcmIGZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGVu
Y2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50
QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYm
IGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVO
YW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJh
Y2tJRCk7CiAgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50SWNvbihjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBxbFRodW1ibmFpbEhhbmRsZSk7
CiAjZW5kaWYKIApAQCAtMTcyOCw3ICsxNzI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXJs
U2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbih1aW50NjRfdCBoYW5kbGVySWRlbnRpZmll
ciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJl
Y2VpdmVSZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVy
bFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRs
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJik7CiAgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFu
ZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIHNldElzVGFraW5nU25hcHNob3RzRm9yQXBwbGlj
YXRpb25TdXNwZW5zaW9uKGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406992</attachid>
            <date>2020-08-20 18:09:26 -0700</date>
            <delta_ts>2020-08-21 04:29:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215232-20200820180926.patch</filename>
            <type>text/plain</type>
            <size>93761</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZThkOTdlMjNhZDNjNjZl
NWNlY2MwNTBmM2RiYTYzMGU0YjdkYWQuLmUwMWU5YjdkM2MzNGU2MzEwZDU0ODNjNTlmY2VmYjIy
MTdiYTIzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI1IEBACisyMDIwLTA4LTIwICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjU3NjY3KTog
MS45eCBtb3JlIENQVSB0aW1lIGluIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkZWNv
ZGluZyBkdXJpbmcgTmV0ZmxpeCBwbGF5YmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MjMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NjYz
NzkyMD4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBQcmlv
ciB0byByMjU3NjY3LCBhbiBJUEMgbWVzc2FnZSBkZWZpbmVkIGEgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGFyZ3VtZW50IHRvIGFsbG93CisgICAgICAgIGl0cyBzZW5kZXIgdG8gZWFz
aWx5IGVuY29kZSBTaGFyZWRCdWZmZXIgZGF0YSBhcyBhIERhdGFSZWZlcmVuY2UuIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgY29zdCB0aGUgc2FtZSB0byBlbmNvZGUgYXMgYSBE
YXRhUmVmZXJlbmNlIC0tIGJvdGggY29waWVkIGRhdGEgaW50byB0aGUgRW5jb2RlciAtLSBidXQg
ZGlkCisgICAgICAgIHNvIGJ5IGl0ZXJhdGluZyBvdmVyIHRoZSBTaGFyZWRCdWZmZXIncyBkYXRh
IHNlZ21lbnRzIHJhdGhlciB0aGFuIGNvbWJpbmluZyB0aGVtIGludG8gYQorICAgICAgICBjb250
aWd1b3VzIGFsbG9jYXRpb24uIFRoZSBtZXNzYWdlIGFyZ3VtZW50IHdhcyByZWNlaXZlZCBhcyBh
IGRlY29kZWQgSVBDOjpEYXRhUmVmZXJlbmNlLAorICAgICAgICB3aGljaCBzdG9yZXMgYSBwb2lu
dGVyIGludG8gdGhlIElQQzo6RGVjb2RlcidzIGJ1ZmZlciByYXRoZXIgdGhhbiBtYWtpbmcgYSBj
b3B5LgorCisgICAgICAgIEluIHIyNTc2NjcsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBzd2l0Y2hlZCBpdHMgZW5jb2RlciB0byB1c2UgSVBDOjpBcmd1bWVudENvZGVyJ3MKKyAgICAg
ICAgU2hhcmVkQnVmZmVyIHNwZWNpYWxpemF0aW9uLCB3aGljaCB3b3JrcyBieSBhbGxvY2F0aW5n
IGEgU2hhcmVkTWVtb3J5IGJ1ZmZlciwgY29weWluZworICAgICAgICBTaGFyZWRCdWZmZXIgZGF0
YSBpbnRvIGl0LCBjcmVhdGluZyBhIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGZyb20gaXQsIGFu
ZCBlbmNvZGluZyB0aGUKKyAgICAgICAgaGFuZGxlLiBJdCBtYWtlcyBvbmx5IG9uZSBjb3B5IGxp
a2UgdGhlIG9sZCBlbmNvZGVyIGRpZCwgYnV0IHBheXMgdGhlIGFkZGVkIGNvc3Qgb2YKKyAgICAg
ICAgY29tYmluaW5nIFNoYXJlZEJ1ZmZlciBkYXRhIHNlZ21lbnRzIHByaW9yIHRvIGNvcHlpbmcg
YnkgbmVlZGxlc3NseSBjYWxsaW5nCisgICAgICAgIFNoYXJlZEJ1ZmZlcjo6ZGF0YSgpICh0aGlz
IHNob3VsZCBiZSBmaXhlZCBpbmRlcGVuZGVudGx5KS4KKworICAgICAgICBTaW5jZSB0aGlzIHNl
cmlhbGl6YXRpb24gY291bGQgbm8gbG9uZ2VyIGJlIGRlY29kZWQgYnkgRGF0YVJlZmVyZW5jZSdz
IGRlY29kZXIsCisgICAgICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgaW1wbGVtZW50ZWQg
YSBkZWNvZGVyLCBhbHNvIGluIHRlcm1zIG9mIEFyZ3VtZW50Q29kZXIncyBTaGFyZWRCdWZmZXIK
KyAgICAgICAgc3BlY2lhbGl6YXRpb24uIEl0IHdvcmtzIGJ5IG1hcHBpbmcgYSBTaGFyZWRNZW1v
cnkgYnVmZmVyIGZyb20gYSBkZWNvZGVkCisgICAgICAgIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
IGFuZCBjb3B5aW5nIHRoYXQgYnVmZmVyIGludG8gYSBuZXcgU2hhcmVkQnVmZmVyLiBUaGlzIGNv
cHkgaXMgYSBjb3N0CisgICAgICAgIHRoYXQgdGhlIG9sZCBkZWNvZGVyIGRpZCBub3QgaW5jdXIs
IGJ1dCBpbiBzb21lIGNhc2VzIHRoZSBtZXNzYWdlIHJlY2VpdmVyIHdvdWxkIGhhdmUgbWFkZQor
ICAgICAgICBzdWNoIGEgY29weSBhbnl3YXkgYW5kIGNhbiBpbnN0ZWFkIGp1c3QgcmVmIHRoZSBk
ZWNvZGVkIFNoYXJlZEJ1ZmZlci4gSW4gb3RoZXIgY2FzZXMgdGhvdWdoLAorICAgICAgICB0aGUg
cmVjZWl2ZXIgZWl0aGVyIG1hZGUgbm8gY29waWVzIG9yIGNvdWxkbid0IHVzZSB0aGUgZGVjb2Rl
ZCBTaGFyZWRCdWZmZXIgdG8gYXZvaWQgbWFraW5nCisgICAgICAgIGl0cyBvd24gY29weSBzbyBj
cmVhdGluZyB0aGUgU2hhcmVkQnVmZmVyIHdhcyBwdXJlIGFkZGVkIGNvc3QuCisKKyAgICAgICAg
VGhlcmUgYXJlIGFkZGl0aW9uYWwgY29zdHMgZnJvbSBhbGxvY2F0aW5nLCBtYXBwaW5nLCBhbmQg
ZGVsZXRpbmcgc2hhcmVkIG1lbW9yeSBhbmQgTWFjaAorICAgICAgICBzZW5kIHJpZ2h0cywgYnV0
IHRoZXkgYXJlIG9mZnNldCBieSBzYXZpbmdzIGR1ZSB0byBzbWFsbGVyIEVuY29kZXIgYW5kIERl
Y29kZXIgYnVmZmVycy4gVGhlCisgICAgICAgIGFkZGl0aW9uYWwgU2hhcmVkQnVmZmVyIGNvbWJp
bmluZyBhbmQgY29weWluZyBpcyBub3Qgb2Zmc2V0IGVsc2V3aGVyZSwgYW5kIG9uIG5ldCBtYWtl
cworICAgICAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlcyB1c2UgdXAgdG8gMnggbW9yZSBDUFUgdGltZSB3aGVuCisgICAgICAgIHBsYXlpbmcg
YSB2aWRlbyBvbiBuZXRmbGl4LmNvbSBpbiBTYWZhcmkuCisKKyAgICAgICAgUmVzb2x2ZSB0aGlz
IHNsb3dkb3duIGJ5IHJldmVydGluZyB0aGUgYXJndW1lbnQgZW5jb2RpbmcgY2hhbmdlcyBtYWRl
IHRvCisgICAgICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBpbiByMjU3NjY3LiBG
b3IgY29tcGF0aWJpbGl0eSB3aXRoIGNvZGUgYWRkZWQgYWZ0ZXIgcjI1NzY2NywKKyAgICAgICAg
dGhlIGN1cnJlbnQgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHdhcyBjb3BpZWQgdG8g
SVBDOjpTaGFyZWRCdWZmZXJDb3B5IGFuZCByZXRhaW5zCisgICAgICAgIHRoZSBiZWhhdmlvciBv
ZiBjb3B5aW5nIGludG8gYSBTaGFyZWRCdWZmZXIgd2hlbiBkZWNvZGVkLiBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2Ugbm93CisgICAgICAgIGhhcyB0aGUgcHJlLXIyNTc2NjcgYmVoYXZp
b3Igb2YgZGVjb2RpbmcgdG8gYW4gSVBDOjpEYXRhUmVmZXJlbmNlLiBNZXNzYWdlcyBhZGRlZCBh
ZnRlcgorICAgICAgICByMjU3NjY3IHdob3NlIHJlY2VpdmVycyB3ZXJlIGRlc2lnbmVkIHRvIGhh
bmRsZSBhIFNoYXJlZEJ1ZmZlciB3ZXJlIGNoYW5nZWQgdG8gdXNlCisgICAgICAgIElQQzo6U2hh
cmVkQnVmZmVyQ29weSwgYW5kIGFsbCBvdGhlciByZWNlaXZlcnMgb2YgbWVzc2FnZXMgd2l0aCBJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UKKyAgICAgICAgYXJndW1lbnRzIHdlcmUgY2hh
bmdlZCB0byBoYW5kbGUgYW4gSVBDOjpEYXRhUmVmZXJlbmNlLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHA6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHA6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmNwcDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlH
dGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3Rh
bmNlU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOiBSZXBsYWNl
ZAorICAgICAgICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ugd2l0aCBJUEM6OlNoYXJl
ZEJ1ZmZlckNvcHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDogUmVt
b3ZlZCB0aGUgRGlkUmVjZWl2ZVNoYXJlZEJ1ZmZlcgorICAgICAgICBtZXNzYWdlIGFuZCByZXZl
cnRlZCB0aGUgRGlkUmVjZWl2ZURhdGEgbWVzc2FnZSBiYWNrIHRvIHRha2luZyBhbgorICAgICAg
ICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRW5jb2Rlci5oOiBNYWRlIEVuY29kZXI6OnJlc2VydmUoc2l6ZV90KSBwdWJsaWMgc28KKyAg
ICAgICAgU2hhcmVkQnVmZmVyQ29weTo6ZW5jb2RlKEVuY29kZXImKSBjYW4gY2FsbCBpdC4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6IFJlc3RvcmVkIHRoZSBDb2Rp
bmdUeXBlIHNwZWNpYWxpemF0aW9uIHRoYXQgZGVjb2RlcworICAgICAgICBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGFyZ3VtZW50cyBhcyBEYXRhUmVmZXJlbmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
U2hhcmVkQnVmZmVyQ29weS5oOiBDb3BpZWQgZnJvbSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmguIEltcGxlbWVudGVkIHRoZQorICAgICAgICBpbnRlcmZhY2UgYW5kIGRlY29kaW5nIGJlaGF2
aW9yIHRoYXQgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBoYWQgYmV0d2VlbiByMjU3NjY3IGFu
ZCB0aGlzCisgICAgICAgIGNoYW5nZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmNwcDogCisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaDogUmV2ZXJ0ZWQgdG8gdGhlIHByZS1yMjU3NjY3IGludGVyZmFj
ZSBhbmQKKyAgICAgICAgZGVjb2RpbmcgYmVodmlvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OiBSZW1vdmVkIGFuIHVubmVlZGVkIHNwZWNpYWwgY2FzZS4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGRlZCBTaGFyZWRCdWZmZXJ7Q29weSxEYXRhUmVmZXJlbmNlfS5jcHAuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkYXRhQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogVXNlZCBgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJmAgaW4gbWVzc2FnZSByZWNlaXZlcgorICAgICAgICBzaWduYXR1cmVzIGZvciBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIGFyZ3VtZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0J1c0RhdGEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6
IFJlbW92ZWQgdW51c2VkIGluY2x1ZGVzLgorCiAyMDIwLTA4LTE4ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVuaGFuZGxlZCBrZXlEb3duOiBldmVu
dHMgY2F1c2UgYSBzeXN0ZW0gYmVlcCBpbiBmdWxsIHNjcmVlbiBtb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5j
cHAKaW5kZXggMmUyNDhmZGZjODJkOTRhZTZlMGVkMTc1YjM1MWMxYjI2YjU1YTMxMy4uMWI0MGFi
NWIwMDQ3ZWQ2MTRlN2M5NGI1OWE5YTc3NTEyZjNiYzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcApA
QCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuaCIKLSNpbmNs
dWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
Q29weS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNSW5zdGFuY2UuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6aW5p
dGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IFdlYkNvcmU6OkNETUtleVN5CiAgICAgbV9p
bnN0YW5jZS0+aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGFsbG93
RGlzdGluY3RpdmVJZGVudGlmaWVycywgYWxsb3dQZXJzaXN0ZW50U3RhdGUsIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCi12b2lkIFJlbW90ZUNETUluc3RhbmNlUHJveHk6OnNldFNlcnZlckNl
cnRpZmljYXRlKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGNlcnRpZmljYXRlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN1Y2Nlc3NWYWx1ZSk+JiYgY29tcGxldGlvbikKK3ZvaWQg
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6c2V0U2VydmVyQ2VydGlmaWNhdGUoSVBDOjpTaGFyZWRC
dWZmZXJDb3B5JiYgY2VydGlmaWNhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3VjY2Vzc1Zh
bHVlKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlmICghY2VydGlmaWNhdGUuYnVmZmVyKCkpIHsK
ICAgICAgICAgY29tcGxldGlvbihDRE1JbnN0YW5jZTo6RmFpbGVkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oCmlu
ZGV4IGU3MTEyZDVmODRiODg0NzMxOWRjNDA0ZmVhMTUwNmM4YjFlZjMwZTQuLjUxNGEzMDY1YTk4
Y2MzMWVlNjQzMzM3ZjliYWQ5NzQ4NGI5MmZmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuaApAQCAtNDIsNyAr
NDIsNyBAQCBzdHJ1Y3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbjsKIH0KIAogbmFtZXNwYWNl
IElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOworY2xhc3MgU2hhcmVkQnVm
ZmVyQ29weTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBNZXNzYWdlcwogICAgIHZvaWQgaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0
aW9uKGNvbnN0IFdlYkNvcmU6OkNETUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mLCBBbGxvd0Rpc3Rp
bmN0aXZlSWRlbnRpZmllcnMsIEFsbG93UGVyc2lzdGVudFN0YXRlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN1Y2Nlc3NWYWx1ZSk+JiYpOwotICAgIHZvaWQgc2V0U2VydmVyQ2VydGlmaWNhdGUo
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3VjY2Vzc1ZhbHVlKT4mJik7CisgICAgdm9pZCBzZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNo
YXJlZEJ1ZmZlckNvcHkmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdWNjZXNzVmFsdWUpPiYm
KTsKICAgICB2b2lkIHNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBjcmVhdGVTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQ0RNSW5z
dGFuY2VTZXNzaW9uSWRlbnRpZmllciYpPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA1NTBlODUzNDFjMmViMzViYjZlYzA4MDk1ZDVhMDA0ZWNjYTEzOWY5Li5j
NTA5NWI2ODlkZjYwNDkyOWZmZDE0MWNiY2RiOTQxZTdjY2FkMDJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQAogbWVzc2FnZXMgLT4gUmVtb3Rl
Q0RNSW5zdGFuY2VQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVTZXNzaW9uKCkgLT4g
KFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllciBpZCkgU3luY2hyb25v
dXMKICAgICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtl
eVN5c3RlbUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNE
TUluc3RhbmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlm
aWVyc0FsbG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJzaXN0
ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpD
RE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIEFzeW5jCi0gICAgU2V0U2VydmVyQ2Vy
dGlmaWNhdGUoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGNlcnRpZmljYXRlKSAtPiAo
ZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykgQXN5
bmMKKyAgICBTZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgY2VydGlm
aWNhdGUpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBz
dWNjZXNzKSBBc3luYwogICAgIFNldFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nIGRpcmVjdG9yeSkK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKaW5kZXggMThhNjYzYTQzMGI3YTFj
Y2Q2ODZhZWNlYjk5YjBlODc1NTU1YmExMi4uOWY3ZThiZmZmNmQxYmE0NTE0OTA5ZDlhZjVkYzdl
OTBlOTAxODc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgor
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTU2LDcgKzU2LDcgQEAgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6On5SZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNz
aW9uUHJveHk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIHR5cGUsIEF0b21TdHJpbmcgaW5p
dERhdGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBpbml0RGF0YSwgTGlj
ZW5zZUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIHR5cGUsIEF0b21TdHJpbmcgaW5pdERh
dGFUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBpbml0RGF0YSwgTGljZW5zZUNhbGxiYWNr
JiYgY29tcGxldGlvbikKIHsKICAgICBpZiAoIWluaXREYXRhLmJ1ZmZlcigpKSB7CiAgICAgICAg
IGNvbXBsZXRpb24oeyB9LCBlbXB0eVN0cmluZygpLCBmYWxzZSwgZmFsc2UpOwpAQCAtNzQsNyAr
NzQsNyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpyZXF1ZXN0TGljZW5z
ZShMaWNlbnNlVHlwZSB0eXBlLCBBdG9tU3RyaW5nCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwg
TGljZW5zZVR5cGUgdHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgcmVzcG9u
c2UsIExpY2Vuc2VVcGRhdGVDYWxsYmFjayYmIGNvbXBsZXRpb24pCit2b2lkIFJlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5Ojp1cGRhdGVMaWNlbnNlKFN0cmluZyBzZXNzaW9uSWQsIExpY2Vu
c2VUeXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIHJlc3BvbnNlLCBMaWNlbnNlVXBk
YXRlQ2FsbGJhY2smJiBjb21wbGV0aW9uKQogewogICAgIGlmICghcmVzcG9uc2UuYnVmZmVyKCkp
IHsKICAgICAgICAgY29tcGxldGlvbih0cnVlLCB7IH0sIFdURjo6bnVsbG9wdCwgV1RGOjpudWxs
b3B0LCBmYWxzZSk7CkBAIC0xMTUsOSArMTE1LDkgQEAgdm9pZCBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBDbG9zZVMK
IHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OnJlbW92ZVNlc3Npb25EYXRhKGNv
bnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVHlwZSB0eXBlLCBSZW1vdmVTZXNzaW9uRGF0
YUNhbGxiYWNrJiYgY29tcGxldGlvbikKIHsKICAgICBtX3Nlc3Npb24tPnJlbW92ZVNlc3Npb25E
YXRhKHNlc3Npb25JZCwgdHlwZSwgW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAo
Q0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNlcywgT3B0aW9u
YWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgZXhwaXJlZFNlc3Npb25zRGF0YSwgQ0RNSW5zdGFuY2VT
ZXNzaW9uOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKLSAgICAgICAgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBleHBpcmVkU2Vzc2lvbkRhdGFSZWZl
cmVuY2U7CisgICAgICAgIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4gZXhwaXJlZFNl
c3Npb25EYXRhUmVmZXJlbmNlOwogICAgICAgICBpZiAoZXhwaXJlZFNlc3Npb25zRGF0YSkKLSAg
ICAgICAgICAgIGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVyZW5jZSA9IElQQzo6U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZShXVEZNb3ZlKCpleHBpcmVkU2Vzc2lvbnNEYXRhKSk7CisgICAgICAgICAg
ICBleHBpcmVkU2Vzc2lvbkRhdGFSZWZlcmVuY2UgPSBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkoV1RG
TW92ZSgqZXhwaXJlZFNlc3Npb25zRGF0YSkpOwogICAgICAgICBjb21wbGV0aW9uKFdURk1vdmUo
a2V5U3RhdHVzZXMpLCBXVEZNb3ZlKGV4cGlyZWRTZXNzaW9uRGF0YVJlZmVyZW5jZSksIHN1Y2Nl
ZWRlZCA9PSBDRE1JbnN0YW5jZVNlc3Npb246OlN1Y2NlZWRlZCk7CiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eS5oCmluZGV4IDJkMTk0OGVhNWMwYzAwNWY3ZjA5YjJmNDAxMThh
YWQ4NzZlNjdiN2IuLjUxOGZjYWNkMWFkMjFiOTUyMDZkMWM5OTI3NWQxYmRhNjE3MmY2ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlOworY2xhc3MgU2hhcmVkQnVmZmVyQ29weTsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01OSwxNiArNTksMTYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBLZXlTdGF0dXNWZWN0
b3IgPSBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvcjsKICAgICB1
c2luZyBNZXNzYWdlID0gV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlOwogICAg
IHVzaW5nIFNlc3Npb25Mb2FkRmFpbHVyZSA9IFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6
U2Vzc2lvbkxvYWRGYWlsdXJlOwotICAgIHVzaW5nIExpY2Vuc2VDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIGNvbnN0IFN0
cmluZyYgc2Vzc2lvbklkLCBib29sLCBib29sKT47CisgICAgdXNpbmcgTGljZW5zZUNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wsIGJvb2wpPjsKICAgICB1c2luZyBMaWNlbnNlVXBkYXRl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIE9wdGlvbmFsPEtleVN0YXR1
c1ZlY3Rvcj4mJiwgT3B0aW9uYWw8ZG91YmxlPiYmLCBPcHRpb25hbDxNZXNzYWdlPiYmLCBib29s
KT47CiAgICAgdXNpbmcgTG9hZFNlc3Npb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9yPiYmLCBPcHRpb25hbDxkb3VibGU+JiYsIE9wdGlv
bmFsPE1lc3NhZ2U+JiYsIGJvb2wsIFNlc3Npb25Mb2FkRmFpbHVyZSk+OwogICAgIHVzaW5nIENs
b3NlU2Vzc2lvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKLSAgICB1c2lu
ZyBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChLZXlT
dGF0dXNWZWN0b3ImJiwgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYm
LCBib29sKT47CisgICAgdXNpbmcgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoS2V5U3RhdHVzVmVjdG9yJiYsIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVm
ZmVyQ29weT4mJiwgYm9vbCk+OwogICAgIHVzaW5nIFN0b3JlUmVjb3JkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+OwogCiAgICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIHJlcXVl
c3RMaWNlbnNlKExpY2Vuc2VUeXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwgSVBDOjpTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYgaW5pdERhdGEsIExpY2Vuc2VDYWxsYmFjayYmKTsKLSAg
ICB2b2lkIHVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgTGljZW5zZVR5cGUsIElQQzo6
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIHJlc3BvbnNlLCBMaWNlbnNlVXBkYXRlQ2FsbGJh
Y2smJik7CisgICAgdm9pZCByZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSwgQXRvbVN0cmluZyBp
bml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGluaXREYXRhLCBMaWNlbnNlQ2Fs
bGJhY2smJik7CisgICAgdm9pZCB1cGRhdGVMaWNlbnNlKFN0cmluZyBzZXNzaW9uSWQsIExpY2Vu
c2VUeXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiByZXNwb25zZSwgTGljZW5zZVVwZGF0ZUNh
bGxiYWNrJiYpOwogICAgIHZvaWQgbG9hZFNlc3Npb24oTGljZW5zZVR5cGUsIFN0cmluZyBzZXNz
aW9uSWQsIFN0cmluZyBvcmlnaW4sIExvYWRTZXNzaW9uQ2FsbGJhY2smJik7CiAgICAgdm9pZCBj
bG9zZVNlc3Npb24oY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIENsb3NlU2Vzc2lvbkNhbGxiYWNr
JiYpOwogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQs
IExpY2Vuc2VUeXBlLCBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVkNzgyZjU0MGEyYjg3NTNh
OTJkZTQ1ZDAyOGE3YWZmNDJiMDZkNmUuLjE2MTg3MmViMGM2ZjAzYzQzYjlhODAwZTQ5NWI3MTU2
YjZjMzQ2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI2LDExICsyNiwxMSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVxdWVzdExpY2Vuc2UoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBBdG9tU3RyaW5nIGluaXREYXRhVHlwZSwg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGluaXREYXRhKSAtPiAoSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0cmluZyBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJ
bmRpdmlkdWFsaXphdGlvbiwgYm9vbCBzdWNjZWVkZWQpIEFzeW5jCi0gICAgVXBkYXRlTGljZW5z
ZShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VU
eXBlIHR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSByZXNwb25zZSkgLT4gKGJv
b2wgc2Vzc2lvbldhc0Nsb3NlZCwgT3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9u
OjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBPcHRpb25hbDxkb3VibGU+IGNoYW5nZWRF
eHBpcmF0aW9uLCBPcHRpb25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U+
IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0
RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVk
QnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVh
bGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5n
IHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBl
LCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2UpIC0+IChib29sIHNlc3Npb25XYXNDbG9z
ZWQsIE9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9y
PiBjaGFuZ2VkS2V5cywgT3B0aW9uYWw8ZG91YmxlPiBjaGFuZ2VkRXhwaXJhdGlvbiwgT3B0aW9u
YWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKICAgICBMb2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b246OkxpY2Vuc2VUeXBlIHR5cGUsIFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+
IChPcHRpb25hbDxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3Rvcj4g
Y2hhbmdlZEtleXMsIE9wdGlvbmFsPGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIE9wdGlvbmFs
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNj
ZWVkZWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25M
b2FkRmFpbHVyZSBsb2FkRmFpbHVyZSkgQXN5bmMKICAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNl
c3Npb25JZCkgLT4gKCkgQXN5bmMKLSAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lv
bklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywg
T3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBtZXNzYWdlLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKKyAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3Jl
OjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkgQXN5bmMK
ICAgICBTdG9yZVJlY29yZE9mS2V5VXNhZ2UoU3RyaW5nIHNlc3Npb25JZCkKICAgICBEaXNwbGF5
SURDaGFuZ2VkKHVpbnQzMl90IGRpc3BsYXlJRCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwCmluZGV4IDYxYWM5MmZkMDk3YWYxY2Y5
YjhmZjhiYjQwZGIxYmVhNWUzYTgwYTMuLjgzNDk4MGNiYmM0ZDcyZDA0MjU3ZTQwN2IxNTJiMzE5
YWUzODFhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETVByb3h5LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUNvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVDRE1JbnN0YW5jZUNvbmZpZ3VyYXRpb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVDRE1JbnN0YW5jZVByb3h5LmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNS2V5U3lzdGVtQ29uZmln
dXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNUHJpdmF0ZS5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5oCmluZGV4IDJjOWQ1NThk
ZmZhMTUyYzBkZDVhMGMwYjJiNWE4MTczMmExZGI1YjEuLjUxMGI5Y2U5MDQwMjM2Mjg1MmJhZGFi
YzFjNDE2ZjI3ZGMwNGU0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1Qcm94eS5oCkBAIC00MywxMCArNDMsNiBAQCBzdHJ1Y3QgQ0RNS2V5U3lzdGVt
Q29uZmlndXJhdGlvbjsKIHN0cnVjdCBDRE1SZXN0cmljdGlvbnM7CiB9CiAKLW5hbWVzcGFjZSBJ
UEMgewotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKLX0KLQogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFJlbW90ZUNETUluc3RhbmNlUHJveHk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHkuY3BwCmluZGV4IDBhMGUzM2ZjNmI0NDRkMzExZTY2MDJmOGE3NTVlMzM0MjAyZWMxNTIu
LjFkYzM0NzIzYTNmMGQ1MTViYWNhZGI1MWI1YmRmYTU5ZGMwNDlmMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHkuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVNlc3Npb25NZXNzYWdlcy5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01Miw3ICs1Miw3IEBAIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6UmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5KFdlYWtQdHI8UmVtb3RlTGVnYWN5Q0RNCiAKIFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25Qcm94eTo6flJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eSgpID0gZGVm
YXVsdDsKIAotc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGJ1ZmZlcikKK3N0YXRpYyBSZWZQdHI8VWlu
dDhBcnJheT4gY29udmVydFRvVWludDhBcnJheShJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmJiBidWZm
ZXIpCiB7CiAgICAgaWYgKCFidWZmZXIuYnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtNjMsMTQgKzYzLDE0IEBAIHN0YXRpYyBSZWZQdHI8VWludDhBcnJheT4gY29udmVydFRv
VWludDhBcnJheShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBiCiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RhdGljIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZT4gY29udmVydFRvT3B0aW9uYWxEYXRhUmVmZXJlbmNlKFQgYXJyYXkpCitzdGF0aWMg
T3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBjb252ZXJ0VG9PcHRpb25hbERhdGFSZWZl
cmVuY2UoVCBhcnJheSkKIHsKICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogICAgIHJldHVybiB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKChjb25zdCBjaGFyKilh
cnJheS0+ZGF0YSgpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKSB9OwogfQogCi12b2lkIFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25Qcm94eTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGluaXREYXRhLCBHZW5lcmF0
ZUtleUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblBy
b3h5OjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSVBDOjpTaGFy
ZWRCdWZmZXJDb3B5JiYgaW5pdERhdGEsIEdlbmVyYXRlS2V5Q2FsbGJhY2smJiBjb21wbGV0aW9u
KQogewogICAgIGF1dG8gaW5pdERhdGFBcnJheSA9IGNvbnZlcnRUb1VpbnQ4QXJyYXkoV1RGTW92
ZShpbml0RGF0YSkpOwogICAgIGlmICghaW5pdERhdGFBcnJheSkgewpAQCAtOTQsNyArOTQsNyBA
QCB2b2lkIFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6cmVsZWFzZUtleXMoKQogICAgIG1f
c2Vzc2lvbi0+cmVsZWFzZUtleXMoKTsKIH0KIAotdm9pZCBSZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHk6OnVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiB1cGRhdGUsIFVw
ZGF0ZUNhbGxiYWNrJiYgY29tcGxldGlvbikKK3ZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblBy
b3h5Ojp1cGRhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgdXBkYXRlLCBVcGRhdGVDYWxsYmFj
ayYmIGNvbXBsZXRpb24pCiB7CiAgICAgYXV0byB1cGRhdGVBcnJheSA9IGNvbnZlcnRUb1VpbnQ4
QXJyYXkoV1RGTW92ZSh1cGRhdGUpKTsKICAgICBpZiAoIXVwZGF0ZUFycmF5KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lv
blByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
U2Vzc2lvblByb3h5LmgKaW5kZXggYTkzZWM4MjE4ZDUwN2NlNGZmOWQwOTRkYjRiMDJmMjY3YzM3
MTFmMi4uYjA0OWY3YTQwYTIwOGFmYmJjMzk5YWM2Y2E1M2Y3OTA5ZWU4M2Y4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Q
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lD
RE1TZXNzaW9uUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9
CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKK2Ns
YXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzgsMTIg
Kzc4LDEyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnko
KSBjb25zdCBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzCi0gICAgdXNpbmcgR2VuZXJhdGVLZXlD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCwgdWludDMy
X3QpPjsKLSAgICB2b2lkIGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiBpbml0RGF0YSwgR2VuZXJhdGVLZXlD
YWxsYmFjayYmKTsKKyAgICB1c2luZyBHZW5lcmF0ZUtleUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+JiYsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OworICAgIHZvaWQgZ2VuZXJhdGVLZXlSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGluaXRE
YXRhLCBHZW5lcmF0ZUtleUNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVsZWFzZUtleXMoKTsKLSAg
ICB1c2luZyBVcGRhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgT3B0
aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYmLCB1bnNpZ25lZCBzaG9ydCwg
dWludDMyX3QpPjsKLSAgICB2b2lkIHVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UmJiB1cGRhdGUsIFVwZGF0ZUNhbGxiYWNrJiYpOwotICAgIHVzaW5nIENhY2hlZEtleUZvcktl
eUlEQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZT4mJik+OworICAgIHVzaW5nIFVwZGF0ZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+
JiYsIHVuc2lnbmVkIHNob3J0LCB1aW50MzJfdCk+OworICAgIHZvaWQgdXBkYXRlKElQQzo6U2hh
cmVkQnVmZmVyQ29weSYmIHVwZGF0ZSwgVXBkYXRlQ2FsbGJhY2smJik7CisgICAgdXNpbmcgQ2Fj
aGVkS2V5Rm9yS2V5SURDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiYmKT47CiAgICAgdm9pZCBjYWNoZWRLZXlGb3JLZXlJRChT
dHJpbmcga2V5SWQsIENhY2hlZEtleUZvcktleUlEQ2FsbGJhY2smJik7CiAKICAgICBXZWFrUHRy
PFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eT4gbV9mYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lD
RE1TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTQ5NjJjZTkxZGY1NTk1ZmM3YWNlMmMw
NTA3N2IwNTFlYTBkZTM3MC4uYTZjYzc2YTFiYWZiMmFjNDkzNTM0YjcxNDliOTVjMjk1NDBiNzU0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCwx
MCArMjQsMTAgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShMRUdBQ1lfRU5D
UllQVEVEX01FRElBKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgR2VuZXJhdGVLZXlSZXF1ZXN0KFN0cmluZyBtaW1lVHlwZSwg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGluaXREYXRhKSAtPiAoT3B0aW9uYWw8SVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBuZXh0TWVzc2FnZSwgU3RyaW5nIGRlc3RpbmF0
aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCBlcnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5
bmNocm9ub3VzCisgICAgR2VuZXJhdGVLZXlSZXF1ZXN0KFN0cmluZyBtaW1lVHlwZSwgSVBDOjpT
aGFyZWRCdWZmZXJDb3B5IGluaXREYXRhKSAtPiAoT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJD
b3B5PiBuZXh0TWVzc2FnZSwgU3RyaW5nIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCBl
cnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5bmNocm9ub3VzCiAgICAgUmVsZWFzZUtl
eXMoKQotICAgIFVwZGF0ZShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgdXBkYXRlKSAt
PiAoYm9vbCBzdWNjZWVkZWQsIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZT4gbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0IGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVt
Q29kZSkgU3luY2hyb25vdXMKLSAgICBDYWNoZWRLZXlGb3JLZXlJRChTdHJpbmcga2V5SWQpIC0+
IChPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGtleSkgU3luY2hyb25v
dXMKKyAgICBVcGRhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IHVwZGF0ZSkgLT4gKGJvb2wgc3Vj
Y2VlZGVkLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG5leHRNZXNzYWdlLCB1bnNp
Z25lZCBzaG9ydCBlcnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpIFN5bmNocm9ub3VzCisg
ICAgQ2FjaGVkS2V5Rm9yS2V5SUQoU3RyaW5nIGtleUlkKSAtPiAoT3B0aW9uYWw8SVBDOjpTaGFy
ZWRCdWZmZXJDb3B5PiBrZXkpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDk1YzJiMmJjMmUyZTI5OWFmZDVhNTI5M2E0MjQ1MGIyNmUxYjRjMmQuLmYzYjRmMDM3ODk1
ZTQxYjE4ZjBlZjRiZTBkMzMyOGEzNzFlMjMzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI2LDcgKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaCIKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUu
aCIKQEAgLTEwNTEsNyArMTA1MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZm
ZXJpbmdUaW1lckZpcmVkKCkKICAgICBpZiAobV9idWZmZXJlZERhdGEtPmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRp
ZFJlY2VpdmVTaGFyZWRCdWZmZXIoeyAqbV9idWZmZXJlZERhdGEgfSwgbV9idWZmZXJlZERhdGFF
bmNvZGVkRGF0YUxlbmd0aCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVy
OjpEaWRSZWNlaXZlRGF0YSh7ICptX2J1ZmZlcmVkRGF0YSB9LCBtX2J1ZmZlcmVkRGF0YUVuY29k
ZWREYXRhTGVuZ3RoKSk7CiAKICAgICBtX2J1ZmZlcmVkRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKCk7CiAgICAgbV9idWZmZXJlZERhdGFFbmNvZGVkRGF0YUxlbmd0aCA9IDA7CkBAIC0xMDYx
LDcgKzEwNjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZEJ1ZmZlcihTaGFy
ZWRCdWZmZXImIGJ1ZmZlciwgc2l6ZV90IGVuY29kZWREYXRhTAogewogICAgIEFTU0VSVCghaXNT
eW5jaHJvbm91cygpKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpE
aWRSZWNlaXZlU2hhcmVkQnVmZmVyKHsgYnVmZmVyIH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKHsgYnVm
ZmVyIH0sIGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5jcHAKaW5kZXggM2ZkYTc1ZjljYzdkNjY1Yzg0NzhiOWNlMWI5MGZhNzNhZmM2Yjgy
ZC4uMTg1ZWEwMGZmNTI2N2Y4NGQ1MDdmNDBhYmU1YmFiMWRlZjNlMzRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKQEAgLTE1OSwxNSAr
MTU4LDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDYKICAgICBzZW5kVG9DbGllbnQoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRh
TGVuZ3RoIH0pOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVT
aGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhLCBp
bnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIGlmIChtX2lzRG9uZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQVNTRVJUKCFtX3RpbWVvdXRUaW1lci5pc0FjdGl2ZSgpKTsKLSAgICBz
ZW5kVG9DbGllbnQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlU2hhcmVk
QnVmZmVyIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSk7Ci19Ci0KIHZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQogewogICAgIGlmIChtX2lzRG9uZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5oCmluZGV4IDk1ZWQ3NTk2YThiMTFhZDliZGU4YzliMmUyZjA1YWFm
NTY3ZjYwYzcuLmQzM2NiZmYxMDg5Y2MxMDVkZDFhMDBiZWJmZGY2MWQzM2M3ZjY2YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtNDQsNyArNDQsNiBAQCBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwog
Y2xhc3MgRGF0YVJlZmVyZW5jZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CiBj
bGFzcyBEZWNvZGVyOwogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CkBAIC04MCw3ICs3OSw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVT
aGFyZWRCdWZmZXIoY29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQgZGlkRmluaXNoKCk7CiAgICAgdm9p
ZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KaW5kZXggNDI3NGFkYzE2
NjE4NzQwYWU4ODhmMjExZGY0OTIyMzRjZjM0NDZjNC4uMThlNjI5ZjBkMTQ2ZWQyZDQyOWRiMWJh
Mjg3MDFlODNmYjk2ZTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2subWVzc2FnZXMuaW4KQEAgLTI3LDggKzI3LDcgQEAgbWVzc2FnZXMgLT4gU2Vydmlj
ZVdvcmtlckZldGNoVGFzayBOb3RSZWZDb3VudGVkIHsKICAgICBEaWRGYWlsKFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IpCiAgICAgRGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVu
Y2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlU2hhcmVk
QnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZFJlY2VpdmVG
b3JtRGF0YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgRGlkRmluaXNoKCkKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAppbmRleCAxM2YzYzQzZTQxN2E2NDQ0OWM5
MDJiMmI2Mzg2Nzk2MWUyOWQ1MzE3Li4zNjc4ZDRmYWUyOTE1MmQ5OTBmNGQzYTRmMGI3ZTBhZjZj
Zjc0NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCkBAIC05NSwxMiArOTUs
MTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAg
ICAgVmVjdG9yPEF0dGFjaG1lbnQ+IHJlbGVhc2VBdHRhY2htZW50cygpOworICAgIHZvaWQgcmVz
ZXJ2ZShzaXplX3QpOwogCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNJUENFbmNvZGVyID0gdHJ1
ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHJlc2VydmUoc2l6ZV90KTsKLQogICAgIHVpbnQ4X3Qq
IGdyb3coc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPEU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA0NWM1MmEz
NTRhZWIxMjI1MjUxMGQ4MjY4Y2JkN2E1OTE0NTkzOTJmLi43ZmQxODNhNTZhZTk4YjA2NjQ1ZmY3
NTE0OGFjMjk4M2M1MmU0YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9IYW5kbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oCkBAIC05Niw2ICs5NiwxMiBAQCBzdHJ1Y3QgQ29kaW5nVHlwZSB7CiAgICAgdHlw
ZWRlZiBzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+PiBUeXBl
OwogfTsKIAorY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2U7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2RpbmdUeXBlPGNvbnN0IFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UmPiB7CisgICAgdXNpbmcgVHlwZSA9IERhdGFSZWZlcmVuY2U7Cit9OworCiB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUcz4KIHN0cnVjdCBDb2RpbmdUeXBlPHN0ZDo6dHVwbGU8VHMu
Li4+PiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPHR5cGVuYW1lIENvZGluZ1R5cGU8VHM+OjpU
eXBlLi4uPiBUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyQ29weS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZm
ZXJDb3B5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTNjYjMzODc2MzZkY2FmY2VhY2VhZDkxYjg2MzliN2Jh
NzYzNmM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyQ29weS5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKKworI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5j
b2Rlci5oIgorCituYW1lc3BhY2UgSVBDIHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K3ZvaWQgU2hhcmVkQnVmZmVyQ29weTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgdWludDY0X3QgYnVmZmVyU2l6ZSA9IG1fYnVmZmVyID8gbV9idWZmZXItPnNpemUoKSA6
IDA7CisgICAgZW5jb2Rlci5yZXNlcnZlKHNpemVvZihidWZmZXJTaXplKSArIGJ1ZmZlclNpemUp
OworICAgIGVuY29kZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAg
ICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiAqbV9idWZmZXIpCisgICAgICAg
IGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHNlZ21lbnQuc2VnbWVudC0+ZGF0YSgpKSwgc2VnbWVudC5zZWdtZW50LT5zaXplKCks
IDEpOworfQorCitPcHRpb25hbDxTaGFyZWRCdWZmZXJDb3B5PiBTaGFyZWRCdWZmZXJDb3B5Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoZGF0YSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyOworICAgIGlmIChkYXRhLnNpemUoKSkKKyAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICByZXR1cm4geyBXVEZNb3Zl
KGJ1ZmZlcikgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJDb3B5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFjMThkNjQyNzZlNmEz
MTkwMTFhY2M0MTJiMTY4MTE2NWVjM2ZkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckNvcHkuaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvLyBFbmNvZGVzIGEgU2hhcmVkQnVmZmVyIHRoYXQgaXMgcmVjZWl2ZWQg
YXMgYSBjb3B5IG9mIHRoZSBkZWNvZGVkIGRhdGEgaW4gYSBuZXcgU2hhcmVkQnVmZmVyLgorLy8g
VG8gYXZvaWQgY29weWluZyBmcm9tIHRoZSBEZWNvZGVyLCB1c2UgU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZSB0byByZWNlaXZlIGEgRGF0YVJlZmVyZW5jZSBpbnN0ZWFkLgorCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisKK25hbWVzcGFjZSBJUEMg
eworCitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKKworY2xhc3MgU2hhcmVkQnVmZmVy
Q29weSB7CitwdWJsaWM6CisgICAgU2hhcmVkQnVmZmVyQ29weSgpID0gZGVmYXVsdDsKKworICAg
IFNoYXJlZEJ1ZmZlckNvcHkoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIp
CisgICAgICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KKyAgICBTaGFyZWRCdWZm
ZXJDb3B5KFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQorICAgICAgICA6IG1f
YnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9CisgICAgU2hhcmVkQnVmZmVyQ29weShjb25zdCBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXImIGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlcihXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpKQorICAgIHsKKyAgICAgICAgbV9idWZmZXItPmFwcGVu
ZChidWZmZXIpOworICAgIH0KKworICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiBi
dWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlcjsgfQorICAgIGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+JiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcjsgfQorCisgICAg
Y29uc3QgY2hhciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmRh
dGEoKSA6IG51bGxwdHI7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVm
ZmVyID8gbV9idWZmZXItPnNpemUoKSA6IDA7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5pc0VtcHR5KCkgOiB0cnVlOyB9CisKKyAgICB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBPcHRpb25hbDxTaGFyZWRCdWZmZXJDb3B5PiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzI4NWFjMGI0YmQ2
ZGUxMWRmZWI5ZmUzMjhmMDFjOTk5OTUwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorCisjaW5jbHVkZSAiRW5jb2Rlci5oIgorCitu
YW1lc3BhY2UgSVBDIHsKKwordm9pZCBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBpZiAobV9kYXRhLmlzRW1wdHkoKSkgewor
ICAgICAgICBTaGFyZWRCdWZmZXJDb3B5OjplbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoIWJ1ZmZlcigpKTsKKyAgICBlbmNvZGVyIDw8IG1fZGF0
YTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgKaW5kZXggMmNmYzdmYWM4MTE4
YmViZDE4NTUzYWMyMmExZDg1ZDdkZjI4MGFmMC4uZDNkMGVjNWU5Nzg1NTk5YjYzNGE4NGM2YzQ0
NzFiNTJjZDIyMTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw0NyArMjMsMzIgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBFbmNvZGVzIGEgU2hhcmVkQnVmZmVy
IG9yIERhdGFSZWZlcmVuY2UgdGhhdCBpcyByZWNlaXZlZCBhcyBhIERhdGFSZWZlcmVuY2UgdG8g
dGhlIGRlY29kZWQgZGF0YS4KKwogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAKIG5h
bWVzcGFjZSBJUEMgewogCi1jbGFzcyBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsKK2NsYXNz
IEVuY29kZXI7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgOiBwcml2YXRlIFNo
YXJlZEJ1ZmZlckNvcHkgewogcHVibGljOgogICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uo
KSA9IGRlZmF1bHQ7Ci0gICAgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZShSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpIHsg
fQotICAgIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mJiBidWZmZXIpIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KLSAgICBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgYnVmZmVyKQot
ICAgICAgICA6IG1fYnVmZmVyKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkpCi0gICAg
ewotICAgICAgICBtX2J1ZmZlci0+YXBwZW5kKGJ1ZmZlcik7Ci0gICAgfQotCi0gICAgUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIHsgcmV0dXJuIG1fYnVmZmVyOyB9Ci0g
ICAgY29uc3QgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYnVmZmVyOyB9Ci0KLSAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3QgeyByZXR1
cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+ZGF0YSgpIDogbnVsbHB0cjsgfQotICAgIHNpemVfdCBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+c2l6ZSgpIDogMDsgfQot
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmlz
RW1wdHkoKSA6IHRydWU7IH0KKyAgICB1c2luZyBTaGFyZWRCdWZmZXJDb3B5OjpTaGFyZWRCdWZm
ZXJDb3B5OwogCi0gICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLSAgICB7
Ci0gICAgICAgIGVuY29kZXIgPDwgbV9idWZmZXI7Ci0gICAgfQorICAgIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UoRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgICAgICA6IG1fZGF0YShXVEZNb3Zl
KGRhdGEpKSB7IH0KKyAgICBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGNvbnN0IHVpbnQ4X3Qq
IGRhdGEsIHNpemVfdCBzaXplKQorICAgICAgICA6IG1fZGF0YShkYXRhLCBzaXplKSB7IH0KIAot
ICAgIHN0YXRpYyBPcHRpb25hbDxTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLSAgICB7Ci0gICAgICAgIE9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+PiBidWZmZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gYnVmZmVyOwotICAgICAg
ICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAg
IHJldHVybiB7IFdURk1vdmUoKmJ1ZmZlcikgfTsKLSAgICB9CisgICAgdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIC8vIFVzZSBJUEM6OkRhdGFSZWZlcmVuY2UgdG8gZGVjb2RlLgog
CiBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwor
ICAgIERhdGFSZWZlcmVuY2UgbV9kYXRhOwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBlOWRhZTllNTNjNTAy
ZDdjZjhjNzQ0YjFhOWFmNWJkNWE0YjI3MWNiLi42YWU2OTFkN2E5NTEyNTRjZjZiMzUzZTE3MmY4
MTExYjUzYWVjM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTU3Niw3ICs1NzYsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBoZWFk
ZXJfaW5mb3NfYW5kX3R5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCiAgICAg
c3BlY2lhbF9jYXNlcyA9IHsKLSAgICAgICAgJ0lQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSc6IFsnIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCInLCAnIkRhdGFSZWZlcmVuY2UuaCIn
XSwKICAgICAgICAgJ01hY2hTZW5kUmlnaHQnOiBbJzx3dGYvTWFjaFNlbmRSaWdodC5oPiddLAog
ICAgICAgICAnSlNDOjpNZXNzYWdlTGV2ZWwnOiBbJzxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4nXSwKICAgICAgICAgJ0pTQzo6TWVzc2FnZVNvdXJjZSc6IFsnPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYWQ3ODJjMmU2MmY3MmY3ZWVhODVj
MzFiMDBmN2JhMjA5ZjIyYjQ5NS4uZDIyM2YzZTUyZDJjYWUxN2JmZDMwNzdmZmRmZmZjNjVhOTll
NjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xNDAsNiArMTQwLDggQEAgUGxhdGZvcm0vSVBDL0RlY29k
ZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIEBuby11bmlmeQogUGxh
dGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5jcHAgQG5vLXVuaWZ5CitQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyQ29w
eS5jcHAgQG5vLXVuaWZ5CitQbGF0Zm9ybS9JUEMvU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5j
cHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkK
IAogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIEBuby11bmlmeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpp
bmRleCBhOGI1MmI3MmEwODNmYzA0ZDVhMTUyNTY2ZDAzMTI4YTFlOTUxM2VlLi5jMDc5ZjExOGRk
NGVlZjc3NTg3MmY5NzUwYmRmZDNiZjc4NTNlNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMzYsNyArMzYsNyBAQAog
I2ltcG9ydCAiUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmgiCiAjaW1wb3J0ICJTYWZlQnJvd3Np
bmdTUEkuaCIKICNpbXBvcnQgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKLSNpbXBvcnQgIlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNp
bXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFzdGVib2FyZFByb3h5Lmgi
CiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXREcmFnQ2FyZXRSZWN0KGNvbnN0IEludFJlY3QmIGRyYWdDYXJldFJl
Y3QpCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBhdHRh
Y2htZW50LCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBhdHRhY2ht
ZW50LCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkmIGJ1ZmZlckNvcHkpCiB7Ci0gICAgaWYgKGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgp
KQorICAgIGlmIChidWZmZXJDb3B5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW3BhZ2VDbGllbnQoKS5hbGxvY0ZpbGVXcmFwcGVy
SW5zdGFuY2UoKSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YVJlZmVyZW5jZS5idWZm
ZXIoKS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gZmlsZVdyYXBw
ZXIgPSBhZG9wdE5TKFtwYWdlQ2xpZW50KCkuYWxsb2NGaWxlV3JhcHBlckluc3RhbmNlKCkgaW5p
dFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmJ1ZmZlckNvcHkuYnVmZmVyKCktPmNyZWF0ZU5TRGF0
YSgpLmdldCgpXSk7CiAgICAgW2ZpbGVXcmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1lOnByZWZl
cnJlZEZpbGVOYW1lXTsKICAgICBhdHRhY2htZW50LT5zZXRGaWxlV3JhcHBlcihmaWxlV3JhcHBl
ci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCAzYWJhNTM3ZWY0NmI2YTI1YWNjYmY5NjFlMWIwNTU5ZjYwYzJjZmMyLi5mMjY0NmJmZmRhYTQ0
NTNhMjQ2NGIzYzdjOTIxZmY0MTdjZjVhMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTcwNzQsMTMgKzcwNzQsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnZvaWRDYWxsYmFjayhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFjayhjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsK
ICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxEYXRhQ2FsbGJhY2s+KGNhbGxi
YWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIAotICAgIGNhbGxi
YWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YVJlZmVyZW5jZS5kYXRhKCkpLCBkYXRh
UmVmZXJlbmNlLnNpemUoKSkucHRyKCkpOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tX
aXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUoZGF0YVJlZmVyZW5jZS5kYXRhKCksIGRh
dGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpib29s
Q2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKQEAgLTkzMjQsNyAr
OTMyNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0
IFdlYkNvcmU6OkxpbmtJY29uJiBpY29uLCBDYWxsYmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpmaW5pc2hlZExvYWRpbmdJY29uKENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgY29u
c3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmZpbmlzaGVkTG9hZGluZ0ljb24oQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAgZGF0YUNhbGxiYWNrKGRhdGEsIGNhbGxiYWNr
SUQpOwogfQpAQCAtOTU3NCw3ICs5NTc0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUF0
dGFjaG1lbnRJY29uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgUmVmUHRyPFMKIH0K
ICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmll
ckZyb21EYXRhKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVyQXR0
YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNv
bnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYgZGF0YSkKIHsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgbV9wcmVmZXJlbmNlcy0+YXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkpOwogICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBJZGVudGlmaWVyVG9BdHRhY2htZW50TWFwOjppc1Zh
bGlkS2V5KGlkZW50aWZpZXIpKTsKQEAgLTk2OTIsNyArOTY5Miw3IEBAIFdlYlBhZ2VQcm94eTo6
U2hvdWxkVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMgV2ViUGFnZVByb3h5Ojp3aWxsVXBkYXRl
QXR0YWNobWVuCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpw
bGF0Zm9ybVJlZ2lzdGVyQXR0YWNobWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYmLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmKQordm9pZCBXZWJQ
YWdlUHJveHk6OnBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+
JiYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGU2NTQ2Yjg0OWYyODU2
MzNhYjUzOTFiMWMwYjcwMWUxMjkyMjE0ZS4uZjljZWZkOTcyNzZlMzNkOWQxYjIwYjdmOTMwMTVm
ZmVkMzZiOWRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIw
Niw5ICsyMDYsMTAgQEAgZW51bSBjbGFzcyBJbnNwZWN0b3JUYXJnZXRUeXBlIDogdWludDhfdDsK
IH0KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRGVjb2Rl
cjsKIGNsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiBPQkpDX0NMQVNTIE5TRmlsZVdyYXBw
ZXI7CiBPQkpDX0NMQVNTIFdLUUxUaHVtYm5haWxMb2FkT3BlcmF0aW9uOwpAQCAtMzA0LDcgKzMw
NSw2IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNs
YXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7Ci1jbGFzcyBTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3U25hcHNob3Q7CiBj
bGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAKICAgICB2b2lkIGdldExvYWREZWNp
c2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBXZWJLaXQ6OkNhbGxiYWNrSUQp
OwotICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNvbnN0
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZmluaXNoZWRMb2Fk
aW5nSWNvbihXZWJLaXQ6OkNhbGxiYWNrSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwog
CiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3VzZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJh
bWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CkBAIC0yMTA0LDcgKzIxMDQsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wg
aGFuZGxlZCk7CiAKICAgICB2b2lkIHZvaWRDYWxsYmFjayhDYWxsYmFja0lEKTsKLSAgICB2b2lk
IGRhdGFDYWxsYmFjayhjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmLCBDYWxs
YmFja0lEKTsKKyAgICB2b2lkIGRhdGFDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGltYWdlQ2FsbGJhY2soY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGJvb2xDYWxsYmFjayhib29sIHJl
c3VsdCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBzdHJpbmdDYWxsYmFjayhjb25zdCBTdHJpbmcm
LCBDYWxsYmFja0lEKTsKQEAgLTIyNzQsMTIgKzIyNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0b3BBbGxVUkxTY2hlbWVUYXNrcyhXZWJQcm9jZXNzUHJveHkqID0gbnVsbHB0cik7CiAKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50
SWRlbnRpZmllckZyb21EYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmll
ckZyb21EYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0
IFN0cmluZyYgcHJlZmVycmVkRmlsZU5hbWUsIGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyQ29weSYp
OwogICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21GaWxlUGF0aChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVQ
YXRoKTsKICAgICB2b2lkIHJlZ2lzdGVyQXR0YWNobWVudHNGcm9tU2VyaWFsaXplZERhdGEoVmVj
dG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4mJik7CiAgICAgdm9pZCBjbG9u
ZUF0dGFjaG1lbnREYXRhKGNvbnN0IFN0cmluZyYgZnJvbUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdG9JZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQo
UmVmPEFQSTo6QXR0YWNobWVudD4mJiwgY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRGaWxlTmFtZSwg
Y29uc3QgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBwbGF0Zm9y
bVJlZ2lzdGVyQXR0YWNobWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYmLCBjb25zdCBTdHJpbmcm
IHByZWZlcnJlZEZpbGVOYW1lLCBjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkmKTsKICAgICB2
b2lkIHBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYsIGNv
bnN0IFN0cmluZyYgZmlsZVBhdGgpOwogICAgIHZvaWQgcGxhdGZvcm1DbG9uZUF0dGFjaG1lbnQo
UmVmPEFQSTo6QXR0YWNobWVudD4mJiBmcm9tQXR0YWNobWVudCwgUmVmPEFQSTo6QXR0YWNobWVu
dD4mJiB0b0F0dGFjaG1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQ1MWFiOTg4NTQwNTRkZTNiYTU5N2M5YjM1YWNj
MGY0ZGJhY2EyMy4uZTFiY2ZjZDYxZjllZTAwY2Q2Y2VkMDk0YzQ5MDQyODI4ZDQyODU0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgUmVnaXN0ZXJBdHRhY2htZW50SWRl
bnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0
cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGEpCisgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVu
dGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBD
OjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmll
ckZyb21GaWxlUGF0aChTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJp
bmcgZmlsZVBhdGgpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllcihTdHJpbmcgaWRl
bnRpZmllcikKICAgICBSZWdpc3RlckF0dGFjaG1lbnRzRnJvbVNlcmlhbGl6ZWREYXRhKFZlY3Rv
cjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IGRhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDljYzI0NTE3NzFhY2JjNWM2
N2EyODU0ZTUxZGE0ZmY2YjZjOTgyYjQuLjQzNGQxNzY0ZDBlMGVmZjgxMmIxMmE3NDI2NTM0MjJh
ZmVkMGJiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9h
cmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5h
bWVzcGFjZSBJUEMgewotY2xhc3MgU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZTsKK2NsYXNzIFNo
YXJlZEJ1ZmZlckNvcHk7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNiw3ICsxMjYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VHlwZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAgICAg
dm9pZCByZWFkVGV4dChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CiAgICAgdm9pZCByZWFkRmlsZVBhdGhzKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmlu
Zz4mJik+JiYpOwotICAgIHZvaWQgcmVhZEJ1ZmZlcihjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmKT4mJik7CisgICAgdm9pZCByZWFkQnVm
ZmVyKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYpPiYm
KTsKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSYmKTsKICAgICB2b2lkIGNsZWFyQ2xpcGJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTlhODc1MzRj
NjFkOTJhNzZmNjk2NmNlZWY4ZTU5ZWU3OWU2ZDE4Mi4uYTk1NmQ1YTc2M2QxMzQ0ZThlNjEwYWRi
NDEzNGE2NzUxNWQ4Y2JiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjQsNyArNjQsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYXN0ZWJvYXJkUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgR2V0VHlwZXMoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3Vz
CiAgICAgUmVhZFRleHQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHRleHQpIFN5
bmNocm9ub3VzCiAgICAgUmVhZEZpbGVQYXRocyhTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChW
ZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25vdXMKLSAgICBSZWFkQnVmZmVyKFN0cmluZyBw
YXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlIGRhdGEpIFN5bmNocm9ub3VzCisgICAgUmVhZEJ1ZmZlcihTdHJpbmcg
cGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKElQQzo6U2hhcmVkQnVm
ZmVyQ29weSBkYXRhKSBTeW5jaHJvbm91cwogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBh
c3RlYm9hcmROYW1lLCBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQog
ICAgIENsZWFyQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCBhZWE3NmUyN2Rl
YWEwZjdmMjFjMzQxYzhmY2Y3NzJjMjYwZDI0NTllLi5iYWFkNzg2NTQ5MDg2NTA4MjEzNTI0Y2Nk
MDMyYzBlNzljYjJmNTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2su
aCIKIAogI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5oIgotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRl
ICJXZWJQYWdlTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKaW5kZXggM2RlYmYzOGE1NGY5NWQyNDkzOTlj
ZjQ4ZTdhY2EwZDNkZmE3YzNmZC4uMDljYTU1NjIxODZhM2FiYTQ0ZjViNDc0ODM2ZDM5Y2FiNTA0
ODQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9h
cmRQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhc3Rl
Ym9hcmRQcm94eUd0ay5jcHAKQEAgLTI3LDE0ICsyNywxMyBAQAogI2luY2x1ZGUgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgogCiAjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCi0jaW5jbHVkZSAiU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlbGVjdGlvbkRhdGEuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCkBAIC01Niw3ICs1NSw3IEBAIHZvaWQgV2Vi
UGFzdGVib2FyZFByb3h5OjpyZWFkRmlsZVBhdGhzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIENvbXBsZXRpb25ICiAgICAgQ2xpcGJvYXJkOjpnZXQocGFzdGVib2FyZE5hbWUpLnJlYWRG
aWxlUGF0aHMoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhc3Rl
Ym9hcmRQcm94eTo6cmVhZEJ1ZmZlcihjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
UGFzdGVib2FyZFByb3h5OjpyZWFkQnVmZmVyKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBD
OjpTaGFyZWRCdWZmZXJDb3B5JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIENsaXBi
b2FyZDo6Z2V0KHBhc3RlYm9hcmROYW1lKS5yZWFkQnVmZmVyKHBhc3RlYm9hcmRUeXBlLnV0Zjgo
KS5kYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTkxLDcgKzkwLDcg
QEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZERlc3Ryb3lGcmFtZShXZWJGcmFtZVByb3h5
KiBmcmFtZSkKIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp0eXBlc1NhZmVGb3JET01Ub1JlYWRB
bmRXcml0ZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBj
b25zdCBTdHJpbmcmIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5n
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiBjbGlwYm9hcmQgPSBDbGlw
Ym9hcmQ6OmdldChwYXN0ZWJvYXJkTmFtZSk7Ci0gICAgY2xpcGJvYXJkLnJlYWRCdWZmZXIoUGFz
dGVib2FyZEN1c3RvbURhdGE6Omd0a1R5cGUoKSwgWyZjbGlwYm9hcmQsIG9yaWdpbiwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKSBtdXRhYmxlIHsKKyAgICBjbGlwYm9hcmQucmVhZEJ1
ZmZlcihQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Z3RrVHlwZSgpLCBbJmNsaXBib2FyZCwgb3JpZ2lu
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShJUEM6OlNo
YXJlZEJ1ZmZlckNvcHkmJiBidWZmZXIpIG11dGFibGUgewogICAgICAgICBMaXN0SGFzaFNldDxT
dHJpbmc+IGRvbVR5cGVzOwogICAgICAgICBpZiAoYXV0byBkYXRhQnVmZmVyID0gYnVmZmVyLmJ1
ZmZlcigpKSB7CiAgICAgICAgICAgICBhdXRvIGN1c3RvbURhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcigqZGF0YUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYmY2M2IzMDM5NTI4MDJlMDkw
YmRjNmYxYjA5OGE0MGU3YmI1YWEwLi40NTUwNzdkYjBlOWYzYWYyOThjZGU4Y2Y0NzJiYWE5NTFh
ZmY2M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTc0MiwxMCArNzQyLDEzIEBACiAJCTJEQUYwNkQ2MThCRDFBNDcwMDgxQ0VCMSAv
KiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFGMDZENDE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovOyB9OwogCQkyREI5NDI5OTIzNEU3QTdGMDBFNzc2
QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3Vz
ZUdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCTJEQjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAv
KiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkRCOTYwNTIyMzk4ODZCOTAwMTAyNzkxIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuR1BVLnNiICovOyB9OworCQkyREMxODEyNDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREMxODU1RURCRkI4NTBCQTBCNkQwNkQgLyogU2hhcmVkQnVmZmVyRGF0
YVJlZmVyZW5jZS5jcHAgKi87IH07CiAJCTJEQzE4RkFEMjE4OTEwNDkwMDI1QTg4RCAvKiBXS0Ry
YXdpbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREMxOEZBQjIxODkxMDQ4MDAyNUE4OEQgLyogV0tEcmF3aW5nVmlldy5oICovOyB9OwogCQky
REMxOEZCMDIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREMxOEZBRjIxODkxMjY0MDAyNUE4OEQg
LyogUGVuY2lsS2l0U1BJLmggKi87IH07CiAJCTJEQzE4RkIzMjE4QTZFOUUwMDI1QTg4RCAvKiBS
ZW1vdGVMYXllclRyZWVWaWV3cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkRDMThGQjEyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZp
ZXdzLmggKi87IH07CiAJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRy
ZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSAqLzsg
fTsKKwkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMTgwMDFEOTBE
REQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICovOyB9OworCQkyREMxOEZGNkVG
MkEzMTMwQzEzMDE3NjcgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRDMTg4MUFDQkNBQjVENTdDNUM2
RUYwIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLzsgfTsKIAkJMkRDNkQ5QzMxOEM0
NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM2RDlDMTE4QzQ0QTYx
MDA0M0JBRDQgLyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkuaCAqLzsgfTsKIAkJ
MkREMTJBMDgxQTgxNzdGMzAwMkM3NEU2IC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQxMkEw
NzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ0NUFERTFF
NUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDQ1QURDMUU1Rjg5NzIwMDZDMzU1
RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oICovOyB9OwpAQCAtMTQ0MSw2ICsxNDQ0LDcg
QEAKIAkJQTE3OThCNTEyMjMwQTEwRTAwMDc2NEJEIC8qIFBheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTE3OThCNEYyMjMwQTBGRTAwMDc2NEJEIC8qIFBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
ci5oICovOyB9OwogCQlBMTgxQTc5ODIxQUNDNzRCMDA1OUEzMTYgLyogV2ViS2l0QWRkaXRpb25z
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MUE3
OTcyMUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9ucy5tbSAqLzsgfTsKIAkJQTE4MkQ1
QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAv
KiBBY2Nlc3NpYmlsaXR5SU9TLmggKi87IH07CisJCUExODM0OTQyMjRFRjQ2NzgwMEJEQzlBOCAv
KiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5o
ICovOyB9OwogCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExOUREM0JGMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0
ZXJJbnRlcm5hbC5oICovOyB9OwogCQlBMUE0RkU1QTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93
bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
QTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExQTRGRTVDMThEQ0U5RkEwMEI1RUE4
QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1OTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJ
bnRlcm5hbC5oICovOyB9OwpAQCAtMzE1MCw2ICszMTU0LDkgQEAKIAkJMkRCOTQyOTcyMzRFN0E3
RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRCOTQyOTgyMzRFN0E3RjAw
RTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlR2VzdHVy
ZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQjk2MDUyMjM5
ODg2QjkwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUu
V2ViS2l0LkdQVS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRDMTgwMDFEOTBE
REQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyQ29weS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJEQzE4NTVFREJGQjg1MEJBMEI2RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
REMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzE4RkFCMjE4OTEwNDgwMDI1QTg4
RCAvKiBXS0RyYXdpbmdWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdL
RHJhd2luZ1ZpZXcuaDsgcGF0aCA9IGlvcy9XS0RyYXdpbmdWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEQzE4RkFDMjE4OTEwNDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tEcmF3aW5nVmll
dy5tbTsgcGF0aCA9IGlvcy9XS0RyYXdpbmdWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREMxOEZBRjIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmNpbEtpdFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDEwMSw3ICs0MTA4LDcgQEAKIAkJNUNCN0FGRTYyM0M2ODFCMDAw
RTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFzay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNDNURCOTEy
MTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hh
cmVkQnVmZmVyQ29weS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRC
dWZmZXJDb3B5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRDE1MDc2MjI2OEY3
RjAwMDZGQjRBRiAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRDI4NjQ5MUU3MjJGNDQwMDk0RkRD
OCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDRDI4NjRBMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxl
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQyOCw3ICs2NDM1LDEwIEBACiAJ
CQkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oICovLAog
CQkJCTFBQUIwMzc3MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJ
CQkxQUFCMDM3ODE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5oICovLAotCQkJCTVD
QzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8s
CisJCQkJMkRDMTgwMDFEOTBEREQxNUZDNjk5MUE5IC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwICov
LAorCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8s
CisJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuY3BwICovLAorCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJMUFFMDBENjkxODMyN0MxMjAwMDg3REQ3IC8qIFN0cmlu
Z1JlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMUFFMDBENkExODMyN0MxMjAwMDg3REQ3IC8qIFN0cmlu
Z1JlZmVyZW5jZS5oICovLAogCQkJKTsKQEAgLTExMTQyLDYgKzExMTUyLDggQEAKIAkJCQk0NkJF
QjZERjIyRkJCMTZCMDAyNjk4NjcgLyogU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNjQyMEU1MTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjE3NDYxMTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFi
bGVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4
IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEQzE4RkY2RUYyQTMx
MzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBT
aGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtMTI4NDEsNiArMTI4NTMs
OCBAQAogCQkJCUUxOEU2OTE3MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUz
MkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBREFGQjYyMzY4RTZB
ODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzVCMUJC
OTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRh
LmgKaW5kZXggZDIxZDQwNTVhZjQ3MmJhYmI2N2JmZjM5ZGQ0NjgyYzgzYWEzNGU3Yy4uMWZjMmYw
YzY2MDY5NmFlMzQ4NjFjMGIyNDgwYWQwNTdmZWExOTYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCkBAIC0y
Nyw4ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNr
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAppbmRleCA0OWZkMzhkMTgyZTJm
OTE1NjMzZmE0MGIzYTE4YTRmNGE1NzlkZTNlLi4wOGJhOTg4Y2IzZjExNjc1MGMxNDYzODdmODJm
ZjUwNWQzZmQ0ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUNETS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE0uY3BwCkBAIC0yOCwxMyArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90
ZUNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQ0RNSW5zdGFuY2UuY3BwCmluZGV4IDQzZmI4ZDVmNjNjNTMxN2M4OWExMGNkOTkxMzM4MWQ3
NDNjZTM4NWEuLmRlMTY2NmU5NTlmNjY2MDYwZDg4OGQ3YzYzMmVhMjkzY2I0OTJjOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RN
SW5zdGFuY2UuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmgi
CiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllci5oIgotI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJD
b3B5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uY3BwCmluZGV4IDkwNWNjYmUyMzk2ZjliMmY4NmM5
YzZiMjZmMzNlMWJhMjM1YjAxNzkuLjk4OGVmMDEyZDU1MmEwZjZiZThiYmRhYzI0NzUyZDgzMGNh
YTlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RN
SW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NSw3ICs1
NSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uOjpyZXF1ZXN0TGljZW5zZShMaWNl
bnNlVHlwZSB0eXBlLCBjb25zdCBBdG9tU3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OlJl
cXVlc3RMaWNlbnNlKHR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSkpLCBbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVh
bGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICBtX2ZhY3RvcnktPmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OlJlcXVlc3RMaWNlbnNlKHR5cGUsIGlu
aXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSkpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vz
c2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCFtZXNzYWdlLmJ1ZmZlcigpKSB7CiAgICAgICAgICAgICBjYWxs
YmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCBlbXB0eVN0cmluZygpLCBmYWxzZSwgRmFpbGVk
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvbjo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIExpY2VucwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9mYWN0b3J5LT5ncHVQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpSZW1vdmVTZXNzaW9uRGF0YShzZXNz
aW9uSWQsIHR5cGUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKEtleVN0YXR1c1Zl
Y3RvciYmIGNoYW5nZWRLZXlzLCBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U+JiYgbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQpIG11dGFibGUgeworICAgIG1fZmFjdG9yeS0+
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6UmVtb3ZlU2Vzc2lvbkRhdGEo
c2Vzc2lvbklkLCB0eXBlKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChLZXlTdGF0
dXNWZWN0b3ImJiBjaGFuZ2VkS2V5cywgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiYm
IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAgT3B0aW9uYWw8UmVm
PFNoYXJlZEJ1ZmZlcj4+IHJlYWxNZXNzYWdlID0gV1RGOjpudWxsb3B0OwogICAgICAgICBpZiAo
bWVzc2FnZSAmJiBtZXNzYWdlLnZhbHVlKCkuYnVmZmVyKCkpCiAgICAgICAgICAgICByZWFsTWVz
c2FnZSA9IG1lc3NhZ2UudmFsdWUoKS5idWZmZXIoKS5yZWxlYXNlTm9uTnVsbCgpOwpAQCAtMTI5
LDcgKzEyOSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uOjp1cGRhdGVLZXlTdGF0
dXNlcyhLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNlcykKICAgICAgICAgbV9jbGllbnQtPnVw
ZGF0ZUtleVN0YXR1c2VzKFdURk1vdmUoa2V5U3RhdHVzZXMpKTsKIH0KIAotdm9pZCBSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb246OnNlbmRNZXNzYWdlKFdlYkNvcmU6OkNETU1lc3NhZ2VUeXBlIHR5
cGUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIG1lc3NhZ2UpCit2b2lkIFJlbW90
ZUNETUluc3RhbmNlU2Vzc2lvbjo6c2VuZE1lc3NhZ2UoV2ViQ29yZTo6Q0RNTWVzc2FnZVR5cGUg
dHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgbWVzc2FnZSkKIHsKICAgICBpZiAobV9jbGll
bnQgJiYgbWVzc2FnZS5idWZmZXIoKSkKICAgICAgICAgbV9jbGllbnQtPnNlbmRNZXNzYWdlKHR5
cGUsIG1lc3NhZ2UuYnVmZmVyKCkucmVsZWFzZU5vbk51bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb24uaAppbmRleCAyNmMyOGJlNzY3NTAxNDE2ZjY3ODQzOGMzNjA1NWE1M2FmMWYwN2FiLi40
ZmZlNGNhY2VjY2RlNDNkNWNiMTFlMjM2Y2EwNDVhY2RhODNhN2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NETUluc3Rh
bmNlU2Vzc2lvbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzCiAgICAgdm9p
ZCB1cGRhdGVLZXlTdGF0dXNlcyhLZXlTdGF0dXNWZWN0b3ImJik7Ci0gICAgdm9pZCBzZW5kTWVz
c2FnZShXZWJDb3JlOjpDRE1NZXNzYWdlVHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlJiYpOworICAgIHZvaWQgc2VuZE1lc3NhZ2UoV2ViQ29yZTo6Q0RNTWVzc2FnZVR5cGUsIElQ
Qzo6U2hhcmVkQnVmZmVyQ29weSYmKTsKICAgICB2b2lkIHNlc3Npb25JZENoYW5nZWQoY29uc3Qg
U3RyaW5nJik7CiAKICAgICB2b2lkIHNldENsaWVudChXZWFrUHRyPFdlYkNvcmU6OkNETUluc3Rh
bmNlU2Vzc2lvbkNsaWVudD4mJiBjbGllbnQpIGZpbmFsIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNs
aWVudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KaW5k
ZXggYzhjMjM5MmU3ZWY4NjIwNDYyMWQyODQxNDM4YjVlZGY0ZDM4MTUzNi4uYWEyZDM3YmRmNWVm
NmQwNTdhZGY2OWFmNjBjZTZiOGE3YjgzOGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAKIAogbWVzc2FnZXMgLT4gUmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVwZGF0ZUtleVN0YXR1
c2VzKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yIGtleVN0YXR1
c2VzKQotICAgIFNlbmRNZXNzYWdlKGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1NZXNzYWdlVHlw
ZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgbWVzc2FnZSkKKyAgICBTZW5k
TWVzc2FnZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q0RNTWVzc2FnZVR5cGUgdHlwZSwgSVBDOjpT
aGFyZWRCdWZmZXJDb3B5IG1lc3NhZ2UpCiAgICAgU2Vzc2lvbklkQ2hhbmdlZChTdHJpbmcgc2Vz
c2lvbklkKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmNwcAppbmRleCA2MTg0MzgzMjg5Nzdk
YjdmZThlODMyM2JhODNhMjRjNWNjNzY0NjFkLi5hYzM1NzQyYTliNzYxNDkzOWUxM2M0ZDU0MjRj
OTQzY2RhMWUwNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5jcHAKQEAgLTI4LDkgKzI4LDkg
QEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURf
TUVESUEpCiAKLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ29weS5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgpAQCAtMzksMTQgKzM5LDE0IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RhdGljIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gY29udmVydFRvQXJyYXlCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlJiYgYnVmZmVyKQorc3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY29udmVydFRv
QXJyYXlCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJDb3B5JiYgYnVmZmVyKQogewogICAgIGlmIChi
dWZmZXIuYnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZl
ci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0
aWMgUmVmUHRyPFVpbnQ4QXJyYXk+IGNvbnZlcnRUb1VpbnQ4QXJyYXkoSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJiYgYnVmZmVyKQorc3RhdGljIFJlZlB0cjxVaW50OEFycmF5PiBjb252
ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hhcmVkQnVmZmVyQ29weSYmIGJ1ZmZlcikKIHsKICAgICBh
dXRvIGFycmF5QnVmZmVyID0gY29udmVydFRvQXJyYXlCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsK
ICAgICBpZiAoIWFycmF5QnVmZmVyKQpAQCAtNTcsMTUgKzU3LDcgQEAgc3RhdGljIFJlZlB0cjxV
aW50OEFycmF5PiBjb252ZXJ0VG9VaW50OEFycmF5KElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZSYmIGIKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgT3B0aW9uYWw8SVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBjb252ZXJ0VG9PcHRpb25hbERhdGFSZWZlcmVu
Y2UoVCBhcnJheSkKLXsKLSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotICAgIHJldHVybiB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGFycmF5LT5kYXRhKCksIGFy
cmF5LT5ieXRlTGVuZ3RoKCkpIH07Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RhdGlj
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBjb252ZXJ0VG9EYXRhUmVmZXJlbmNlKFQg
YXJyYXkpCitzdGF0aWMgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGNvbnZlcnRUb1NoYXJlZEJ1ZmZl
ckNvcHkoVCBhcnJheSkKIHsKICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4geyB9OwpA
QCAtODgsOCArODAsOCBAQCBSZWZQdHI8VWludDhBcnJheT4gUmVtb3RlTGVnYWN5Q0RNU2Vzc2lv
bjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZQogICAgIGlmICghbV9mYWN0
b3J5IHx8ICFpbml0RGF0YSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGlw
Y0luaXREYXRhID0gY29udmVydFRvRGF0YVJlZmVyZW5jZShpbml0RGF0YSk7Ci0gICAgT3B0aW9u
YWw8SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiBpcGNOZXh0TWVzc2FnZTsKKyAgICBh
dXRvIGlwY0luaXREYXRhID0gY29udmVydFRvU2hhcmVkQnVmZmVyQ29weShpbml0RGF0YSk7Cisg
ICAgT3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBpcGNOZXh0TWVzc2FnZTsKICAgICBt
X2ZhY3RvcnktPmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1l
c3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OkdlbmVyYXRlS2V5UmVxdWVzdCht
aW1lVHlwZSwgaXBjSW5pdERhdGEpLCBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblBy
b3h5OjpHZW5lcmF0ZUtleVJlcXVlc3Q6OlJlcGx5KGlwY05leHRNZXNzYWdlLCBkZXN0aW5hdGlv
blVSTCwgZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKSwgbV9pZGVudGlmaWVyKTsKIAogICAgIGlmICgh
aXBjTmV4dE1lc3NhZ2UpCkBAIC0xMTIsOSArMTA0LDkgQEAgYm9vbCBSZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5RGF0YSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBu
ZXgKICAgICBpZiAoIW1fZmFjdG9yeSB8fCAha2V5RGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgYXV0byBpcGNLZXlEYXRhID0gY29udmVydFRvRGF0YVJlZmVyZW5jZShXVEZNb3Zl
KGtleURhdGEpKTsKKyAgICBhdXRvIGlwY0tleURhdGEgPSBjb252ZXJ0VG9TaGFyZWRCdWZmZXJD
b3B5KFdURk1vdmUoa2V5RGF0YSkpOwogICAgIGJvb2wgc3VjY2VlZGVkIHsgZmFsc2UgfTsKLSAg
ICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGlwY05leHRNZXNzYWdl
OworICAgIE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4gaXBjTmV4dE1lc3NhZ2U7CiAg
ICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3lu
YyhNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpVcGRhdGUoaXBjS2V5RGF0
YSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OlVwZGF0ZTo6UmVwbHko
c3VjY2VlZGVkLCBpcGNOZXh0TWVzc2FnZSwgZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKSwgbV9pZGVu
dGlmaWVyKTsKIAogICAgIGlmIChpcGNOZXh0TWVzc2FnZSkKQEAgLTEzMiw3ICsxMjQsNyBAQCBS
ZWZQdHI8QXJyYXlCdWZmZXI+IFJlbW90ZUxlZ2FjeUNETVNlc3Npb246OmNhY2hlZEtleUZvcktl
eUlEKGNvbnN0IFN0cmluZyYga2V5SQogICAgIGlmIChmb3VuZEluQ2FjaGUgIT0gbV9jYWNoZWRL
ZXlDYWNoZS5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZvdW5kSW5DYWNoZS0+dmFsdWU7CiAKLSAg
ICBPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IGlwY0tleTsKKyAgICBP
cHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGlwY0tleTsKICAgICBtX2ZhY3RvcnktPmdw
dVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OkNhY2hlZEtleUZvcktleUlEKGtleUlkKSwgTWVzc2Fn
ZXM6OlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Q2FjaGVkS2V5Rm9yS2V5SUQ6OlJlcGx5
KGlwY0tleSksIG1faWRlbnRpZmllcik7CiAKICAgICBpZiAoIWlwY0tleSkKQEAgLTE0Myw3ICsx
MzUsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJlbW90ZUxlZ2FjeUNETVNlc3Npb246OmNhY2hl
ZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYga2V5SQogICAgIHJldHVybiBpcGNLZXlCdWZmZXI7
CiB9CiAKLXZvaWQgUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbjo6c2VuZE1lc3NhZ2UoT3B0aW9uYWw8
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkwpCit2b2lkIFJlbW90ZUxlZ2FjeUNETVNlc3Npb246OnNlbmRNZXNzYWdl
KE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVn
YWN5Q0RNU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVMZWdhY3lDRE1TZXNzaW9uLmgKaW5kZXggYzhhOTcxOWViNmIyY2YwNjYwNDY3ZDA3MjY4ODI0
ODdlNTJkYjJmYS4uNGQ1YmVjZTA1OTExNWU1MmYwMzRlMGE1MTQ1ZDAyNDllZWIyMWJiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lD
RE1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVMZWdhY3lDRE1TZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2U7CitjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtl
eUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMK
LSAgICB2b2lkIHNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKTsKKyAgICB2b2lk
IHNlbmRNZXNzYWdlKE9wdGlvbmFsPElQQzo6U2hhcmVkQnVmZmVyQ29weT4mJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMKTsKICAgICB2b2lkIHNlbmRFcnJvcihXZWJDb3Jl
OjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lz
dGVtQ29kZSk7CiAKICAgICBXZWFrUHRyPFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+IG1fZmFjdG9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbgppbmRleCA4NDdhZjYw
NDAxZjkxZTM0MTBjMmZlNGQ0ZTQ0NzE1MjYxM2ExMjg2Li4xMmY2ODc4YTgzMzcwMjIwNDlmMDU1
MDcxZTkzZGE0ZWMyYjE0ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3Nh
Z2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlTGVnYWN5Q0RN
U2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKLSAgICBTZW5kTWVzc2FnZShPcHRpb25hbDxJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U+IG1lc3NhZ2UsIFN0cmluZyBkZXN0aW5hdGlvblVSTCkK
KyAgICBTZW5kTWVzc2FnZShPcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2Us
IFN0cmluZyBkZXN0aW5hdGlvblVSTCkKICAgICBTZW5kRXJyb3IoZW51bTp1aW50OF90IFdlYkNv
cmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlIGVycm9yQ29kZSwg
dWludDMyX3Qgc3lzdGVtQ29kZSkKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDg2NDRkNTkwZjY3NmMz
ZjUwMDUzYjc4MjJmMDQ3MTg1OGNiYjJmMDAuLjk3ZWI1YjM0ZTc1NjU0NTk3YmFhNjYyNzFjODY4
MzkwNjFiZWJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI2LDEzICsyNiwxMSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCiAKLSNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSGFuZ0RldGVjdGlvbkRpc2FibGVyLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2ODkzYWYwYjRiNDMyNzE4NGZkZTU2NGUyNjAwNzBm
YWM3M2U0YzYuLjg2NTcxMWIzNjZjMjhkZjQ4NGI0Y2RjMDdhYTNmY2YzZGNlYmYyZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNl
TG9hZGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3Jz
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTE5MSw0NyArMTkwLDI1IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVz
cG9uc2UsIFdURk1vdmUocG9saWN5RGVjaXNpb25Db21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17
Ci0gICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVTaGFyZWRCdWZmZXIgb2Ygc2l6ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9j
b3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9j
ZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9u
c2UiKTsKLQotICAgIGlmIChVTkxJS0VMWShtX2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNl
cHRpbmcobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2Vp
dmluZ1NoYXJlZEJ1ZmZlcihXVEZNb3ZlKGRhdGEpLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcm9jZXNzUmVjZWl2ZWREYXRhKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRh
TGVuZ3RoKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoSVBD
OjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBMT0coTmV0d29yaywg
IihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6ZSAl
bHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5s
YXRpbjEoKS5kYXRhKCkpOwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5n
TmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVu
dGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmIChVTkxJS0VMWSht
X2ludGVyY2VwdENvbnRyb2xsZXIuaXNJbnRlcmNlcHRpbmcobV9jb3JlTG9hZGVyLT5pZGVudGlm
aWVyKCkpKSkgewotICAgICAgICBkZWZlclJlY2VpdmluZ1NoYXJlZEJ1ZmZlcih7IFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkgfSwgZW5jb2Rl
ZERhdGFMZW5ndGgpOworICAgICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIG1faW50ZXJjZXB0Q29udHJvbGxl
ci5kZWZlcihtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBlbmNvZGVkRGF0YUxl
bmd0aF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChtX2NvcmVMb2FkZXIpCisgICAgICAg
ICAgICAgICAgZGlkUmVjZWl2ZURhdGEoeyBidWZmZXItPmRhdGFBc1VJbnQ4UHRyKCksIGJ1ZmZl
ci0+c2l6ZSgpIH0sIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgcHJvY2Vzc1JlY2VpdmVkRGF0YShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0aCk7
Ci19CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRlZmVyUmVjZWl2aW5nU2hhcmVkQnVmZmVy
KElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYmIGRhdGEsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpCi17Ci0gICAgbV9pbnRlcmNlcHRDb250cm9sbGVyLmRlZmVyKG1fY29yZUxvYWRl
ci0+aWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBk
YXRhID0gV1RGTW92ZShkYXRhKSwgZW5jb2RlZERhdGFMZW5ndGhdKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGlmIChtX2NvcmVMb2FkZXIpCi0gICAgICAgICAgICBkaWRSZWNlaXZlU2hhcmVkQnVmZmVy
KFdURk1vdmUoZGF0YSksIGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6cHJvY2Vzc1JlY2VpdmVkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3Qgc2l6ZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLXsKLSAgICBpZiAoIW1fbnVt
Qnl0ZXNSZWNlaXZlZCkgeworICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQogICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcg
ZGF0YSIpOwotICAgIH0KLSAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gc2l6ZTsKKyAgICBtX251
bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKLSAgICBtX2NvcmVMb2FkZXItPmRpZFJl
Y2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVz
KTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBE
YXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNo
UmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmgKaW5kZXggODQ2YjAwNzI5MjIyYzQzMjE3NzkxODA0ZTc2NjIyODk5N2QwMGMxOC4u
NTgzZTM3OWM4OWVjZmE5NTMwYjBhYmZhMWM2OWZlYTlkNTM5NjZmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC0z
Niw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsK
LWNsYXNzIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2U7CitjbGFzcyBEYXRhUmVmZXJlbmNlOwog
Y2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CiAKQEAgLTgzLDggKzgzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYpOwogICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRf
dCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVy
ZW5jZSYmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVT
aGFyZWRCdWZmZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlJiYsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hSZXNvdXJjZUxvYWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJik7CiAgICAg
dm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
ICAgICB2b2lkIGRpZEZhaWxTZXJ2aWNlV29ya2VyTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CkBAIC05Myw5ICs5Miw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0b3BMb2Fk
aW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBkZWZlclJlY2VpdmluZ1No
YXJlZEJ1ZmZlcihJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmJiwgaW50NjRfdCBlbmNv
ZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBwcm9jZXNzUmVjZWl2ZWREYXRhKGNvbnN0IGNoYXIq
LCBzaXplX3QgbGVuZ3RoLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLQogI2lmIEVOQUJM
RShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3Qg
U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3Nh
Z2VzLmluCmluZGV4IGFiMzliNTk0NmNhY2E4MWY3NWIxODA3NzE0YmY3OWRhNTIzYWEzZDguLjAy
YTE0ZjU5YTMwNDc0NGMyZDE4M2VhNzllOTllYmFlYjRjZmJiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9h
ZGVyIExlZ2FjeVJlY2VpdmVyIHsKICAgICBXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkKICAgICBEaWRTZW5kRGF0
YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKICAgICBE
aWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9v
bCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKLSAgICBEaWRSZWNlaXZl
RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
LSAgICBEaWRSZWNlaXZlU2hhcmVkQnVmZmVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVEYXRhKElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKQogICAgIERpZEZpbmlzaFJlc291cmNlTG9hZChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MgbmV0d29ya0xvYWRNZXRyaWNzKQogICAgIERpZEZhaWxSZXNvdXJjZUxvYWQoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBEaWRGYWlsU2VydmljZVdvcmtlckxvYWQoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5jcHAKaW5kZXggYzgzYTc4YzEzNWFjOTk3NGM1MWViNmVjODlhOWU5ZjUxNjMzOTYyMC4uYTY1
MjBjYzE2NzUwZjA4MjM2YTc0YWY3YTMzMjg2M2E5NjAyNmZiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJG
b3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVm
ZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVNoYXJl
ZEJ1ZmZlciB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXpl
KCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgp
LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCmluZGV4IDljNmI3YmE3Y2I1NmE0MjM1YjAwNWI5ZmJhYmIxYWMyOTFjYzQ4Nzgu
LmRiOTdjMGIxN2I3ZTFhMjQxNDIxOGMyNTk3OGFhOTQ0NjE4MjExMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50Lmgi
CiAKICNpbmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiVW5k
b09yUmVkby5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCAyYTdlY2QxMjY3MGZjNDliMzRjMWZjZGYwYjA3YzBjMGUxZGQ3NzJjLi4zNjZm
YjgxMTQ1NzBlOTRlOGVmOTE0ZjNjMjEwNjk4MzM0N2E2NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNs
dWRlICJXZWJGcmFtZS5oIgpAQCAtMzE5LDcgKzMxOSw3IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cmVhZEZpbGVQYXRoc0Zyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5n
JiBwCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRCdWZm
ZXJGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUpCiB7CiAKLSAgICBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UgZGF0YTsKKyAgICBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0YTsKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkQnVmZmVyKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJv
YXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRCdWZmZXI6OlJlcGx5
KGRhdGEpLCAwKTsKICAgICByZXR1cm4gZGF0YS5idWZmZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZGY0ZTg3ZDg0ZDY2NWNhODgy
MTllNTJlMmZmOGNlNWViYmQ1MjA0NS4uNWNhMDgxOGM1YTM0YjJhN2Q5ZTQ0ZWE1NDdiZTQzMjE2
MTBjODVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTM1NjksNyArMzU2OSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uQXNXZWJB
cmNoaXZlRGF0YShDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYg
KGRhdGEpCi0gICAgICAgIGRhdGFSZWZlcmVuY2UgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRh
LmdldCgpKTsKKyAgICAgICAgZGF0YVJlZmVyZW5jZSA9IHsgQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRh
LmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkp
IH07CiAjZW5kaWYKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFj
ayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7CiB9CkBAIC0zNjUwLDcgKzM2NTAsNyBAQCB2
b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBDYWxsYmFja0lEIGNhbGxiYWNrSQogICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5j
ZSBkYXRhUmVmZXJlbmNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChkYXRhKQotICAg
ICAgICBkYXRhUmVmZXJlbmNlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5nZXQoKSk7Cisg
ICAgICAgIGRhdGFSZWZlcmVuY2UgPSB7IENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIHN0
YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpKSB9OwogI2VuZGlm
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVy
ZW5jZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAtNTAyOSw3ICs1MDI5LDcgQEAgdm9pZCBXZWJQYWdl
OjpkcmF3UGFnZXNUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8KIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURh
dGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNv
dW50LCBwZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRh
Q2FsbGJhY2soeyBTaGFyZWRCdWZmZXI6OmNyZWF0ZShwZGZQYWdlRGF0YS5nZXQoKSkgfSwgY2Fs
bGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNr
KHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVf
dD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRhLmdldCgpKSkgfSwgY2FsbGJhY2tJRCkpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJf
dCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKQEAgLTY3
MTUsMTIgKzY3MTUsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJl
c3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjQKICAgICBoYW5kbGVyLT50
YXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHRhc2tJZGVudGlmaWVyLCByZXNwb25zZSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJ
ZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVUYXNrRGlkUmVj
ZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAgYXV0byogaGFuZGxl
ciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdldChoYW5kbGVySWRl
bnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwogCi0gICAgaGFuZGxlci0+dGFza0RpZFJl
Y2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUoKSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90ICo+KGRhdGEuZGF0YSgpKSk7CisgICAgaGFuZGxlci0+dGFza0RpZFJlY2Vp
dmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRhLnNpemUoKSwgZGF0YS5kYXRhKCkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCBoYW5kbGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQpAQCAtNjkyNiw3ICs2OTI2LDcgQEAgdm9pZCBXZWJQYWdlOjppbnNlcnRBdHRhY2htZW50
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+JiYgZmkKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFjayhjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBlbmNsb3NpbmdJbWFnZURhdGEsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsK
ICAgICBpZiAoYXV0byBhdHRhY2htZW50ID0gYXR0YWNobWVudEVsZW1lbnRXaXRoSWRlbnRpZmll
cihpZGVudGlmaWVyKSkgewogICAgICAgICBhdHRhY2htZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxh
eW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDY0OGFkYWJhNjFmZTIwOTNiZTlkNzU0ODUwNDYyODcyZmJjMmFmNzguLjIzMjk5MGFkODE5YWEx
Nzg0OTQxZjc3MzdiMDJhNzhiOTk1NjdiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Niw5ICsxNTYsOSBAQCBjbGFzcyBBcnJheTsKIAogbmFt
ZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKIGNs
YXNzIERlY29kZXI7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKLWNsYXNzIFNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIzMCw3ICsyMzAs
NiBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBEYXRhUmVmZXJlbmNlOwogY2xhc3MgRHJhd2luZ0FyZWE7CiBjbGFzcyBEb3dubG9h
ZElEOwogY2xhc3MgRmluZENvbnRyb2xsZXI7CkBAIC0xMjI1LDcgKzEyMjQsNyBAQCBwdWJsaWM6
CiAgICAgCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIGluc2VydEF0
dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBm
aWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCB1cGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBJUEM6
OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJ
RCk7CisgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGVuY2xvc2luZ0ltYWdlRGF0YSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB1cGRhdGVBdHRh
Y2htZW50SWNvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBxbFRodW1ibmFpbEhhbmRsZSk7CiAjZW5kaWYKIApAQCAtMTcyOCw3ICsxNzI3
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVj
dGlvbih1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYp
OwogICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBoYW5k
bGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVybFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFz
a0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNr
SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAgICAgdm9pZCB1cmxTY2hl
bWVUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRh
c2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lk
IHNldElzVGFraW5nU25hcHNob3RzRm9yQXBwbGljYXRpb25TdXNwZW5zaW9uKGJvb2wpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>