<?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>227791</bug_id>
          
          <creation_ts>2021-07-07 23:18:44 -0700</creation_ts>
          <short_desc>[GPU Process] Regulate the WebPage RenderingUpdates from the WebProcess to the GPUProcess</short_desc>
          <delta_ts>2021-07-27 03:13:09 -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>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775614</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-07 23:18:44 -0700</bug_when>
    <thetext>Although RemoteRenderingBackend::stopListeningForIPC() removes its m_workQueue from the connection WorkQueueMessageReceiver HashMap, m_workQueue can still process accumulated received messages. Removing WorkQueueMessageReceiver will call the destructor ~WorkQueueMessageReceiver but the m_queue of the deleted object can still be running. The reason is the lambda of the WorkQueue::dispatch() in WorkQueueMessageReceiverQueue::enqueueMessage() captures the receiver which is RemoteRenderingBackend as a Ref pointer. Because RemoteRenderingBackend holds the last reference to WorkQueue, m_workQueue can run even after RemoteRenderingBackend::stopListeningForIPC() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775615</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-07 23:19:52 -0700</bug_when>
    <thetext>&lt;rdar://78430639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775624</commentid>
    <comment_count>2</comment_count>
      <attachid>433122</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-07 23:59:06 -0700</bug_when>
    <thetext>Created attachment 433122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775627</commentid>
    <comment_count>3</comment_count>
      <attachid>433124</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-08 00:20:27 -0700</bug_when>
    <thetext>Created attachment 433124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775786</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-08 13:54:58 -0700</bug_when>
    <thetext>This does not fix the &quot;navigating away from the page&quot; case. What&apos;s the plan for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776025</commentid>
    <comment_count>5</comment_count>
      <attachid>433124</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-09 10:33:07 -0700</bug_when>
    <thetext>Comment on attachment 433124
Patch

r- pending an answer to the question</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777154</commentid>
    <comment_count>6</comment_count>
      <attachid>433568</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-15 01:33:32 -0700</bug_when>
    <thetext>Created attachment 433568
Patch

Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777314</commentid>
    <comment_count>7</comment_count>
      <attachid>433620</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-15 13:29:33 -0700</bug_when>
    <thetext>Created attachment 433620
Patch

Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777702</commentid>
    <comment_count>8</comment_count>
      <attachid>433729</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-17 02:02:52 -0700</bug_when>
    <thetext>Created attachment 433729
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777745</commentid>
    <comment_count>9</comment_count>
      <attachid>433746</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-18 02:07:14 -0700</bug_when>
    <thetext>Created attachment 433746
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777815</commentid>
    <comment_count>10</comment_count>
      <attachid>433771</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-18 23:35:10 -0700</bug_when>
    <thetext>Created attachment 433771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777884</commentid>
    <comment_count>11</comment_count>
      <attachid>433771</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-07-19 09:38:35 -0700</bug_when>
    <thetext>Comment on attachment 433771
Patch

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

&gt; Tools/WebKitTestRunner/TestOptions.cpp:124
&gt; +            { &quot;RenderingUpdateRegulateEnabled&quot;, false },

This should not be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777885</commentid>
    <comment_count>12</comment_count>
      <attachid>433771</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-07-19 09:38:37 -0700</bug_when>
    <thetext>Comment on attachment 433771
Patch

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

&gt; Tools/WebKitTestRunner/TestOptions.cpp:124
&gt; +            { &quot;RenderingUpdateRegulateEnabled&quot;, false },

This should not be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777926</commentid>
    <comment_count>13</comment_count>
      <attachid>433805</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-19 11:52:30 -0700</bug_when>
    <thetext>Created attachment 433805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778005</commentid>
    <comment_count>14</comment_count>
      <attachid>433805</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-19 14:43:24 -0700</bug_when>
    <thetext>Comment on attachment 433805
Patch

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

&gt; Source/WebCore/page/RenderingUpdateScheduler.h:70
&gt; +    unsigned m_rescheduledRenderingUpdates { 0 };

m_rescheduledRenderingUpdateCount

Move it up before the bools to optimize padding.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:293
&gt; +    m_didFinalizeRenderingUpdateVersion = std::min(didFinalizeRenderingUpdateVersion, m_finalizeRenderingUpdateVersion);

Isn&apos;t it a bug if didFinalizeRenderingUpdateVersion and m_finalizeRenderingUpdateVersion are out of order?

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:158
&gt; +    uint64_t m_finalizeRenderingUpdateVersion { 1 };
&gt; +    uint64_t m_didFinalizeRenderingUpdateVersion { 1 };

I think these should be a type defined as MonotonicObjectIdentifier&lt;&gt;.

Can one be named as &quot;last completed&quot; or something? This is closer to the naming we use for TransactionIDs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778121</commentid>
    <comment_count>15</comment_count>
      <attachid>433861</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-20 02:14:18 -0700</bug_when>
    <thetext>Created attachment 433861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778640</commentid>
    <comment_count>16</comment_count>
      <attachid>433985</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-21 20:26:46 -0700</bug_when>
    <thetext>Created attachment 433985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778642</commentid>
    <comment_count>17</comment_count>
      <attachid>433805</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-21 20:34:08 -0700</bug_when>
    <thetext>Comment on attachment 433805
Patch

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

&gt;&gt; Source/WebCore/page/RenderingUpdateScheduler.h:70
&gt;&gt; +    unsigned m_rescheduledRenderingUpdates { 0 };
&gt; 
&gt; m_rescheduledRenderingUpdateCount
&gt; 
&gt; Move it up before the bools to optimize padding.

Done.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:293
&gt;&gt; +    m_didFinalizeRenderingUpdateVersion = std::min(didFinalizeRenderingUpdateVersion, m_finalizeRenderingUpdateVersion);
&gt; 
&gt; Isn&apos;t it a bug if didFinalizeRenderingUpdateVersion and m_finalizeRenderingUpdateVersion are out of order?

Yes it is a bug if we are the only who sends didFinalizeRenderingUpdateVersion larger than m_finalizeRenderingUpdateVersion. And this is why I added the debug ASSERT above. But if the argument of the IPC message RemoteRenderingBackendProxy::DidFinalizeRenderingUpdate was altered when sending it from GPUProcess to WebProcess, I thought we can protect ourselves from this underflow if we just use std::min().

     unsigned delayedRenderingUpdates() const { return m_finalizeRenderingUpdateVersion - m_didFinalizeRenderingUpdateVersion; }

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:158
&gt;&gt; +    uint64_t m_didFinalizeRenderingUpdateVersion { 1 };
&gt; 
&gt; I think these should be a type defined as MonotonicObjectIdentifier&lt;&gt;.
&gt; 
&gt; Can one be named as &quot;last completed&quot; or something? This is closer to the naming we use for TransactionIDs.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779521</commentid>
    <comment_count>18</comment_count>
      <attachid>434227</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-26 12:40:44 -0700</bug_when>
    <thetext>Created attachment 434227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779583</commentid>
    <comment_count>19</comment_count>
      <attachid>434227</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-26 14:49:59 -0700</bug_when>
    <thetext>Comment on attachment 434227
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        certain number of rescheduling.

reschedules

&gt; Source/WebKit/Shared/MonotonicObjectIdentifier.h:129
&gt; +template&lt;typename T&gt;
&gt; +inline unsigned operator-(const MonotonicObjectIdentifier&lt;T&gt;&amp; a, const MonotonicObjectIdentifier&lt;T&gt;&amp; b)
&gt; +{
&gt; +    return a.toUInt64() - b.toUInt64();
&gt; +}

I think this needs to return a signed Int64 value to avoid mistakes.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:402
&gt; +    bool canTriggerRenderingUpdate(unsigned rescheduledRenderingUpdateCount) const;

canTriggerRenderingUpdate -&gt; shouldTriggerRenderingUpdate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779584</commentid>
    <comment_count>20</comment_count>
      <attachid>434227</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-26 14:52:36 -0700</bug_when>
    <thetext>Comment on attachment 434227
Patch

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

&gt; Source/WebKit/Shared/MonotonicObjectIdentifier.h:35
&gt; +template&lt;typename T&gt; class MonotonicObjectIdentifier {

I think this could use a comment to explain its purpose and how it differs from ObjectIdentifier. Isn&apos;t an ObjectIdentifier monotonic? It definitely can only increment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779607</commentid>
    <comment_count>21</comment_count>
      <attachid>434253</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-26 16:20:14 -0700</bug_when>
    <thetext>Created attachment 434253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779662</commentid>
    <comment_count>22</comment_count>
      <attachid>434227</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-26 18:35:05 -0700</bug_when>
    <thetext>Comment on attachment 434227
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        certain number of rescheduling.
&gt; 
&gt; reschedules

Fixed.

&gt;&gt; Source/WebKit/Shared/MonotonicObjectIdentifier.h:35
&gt;&gt; +template&lt;typename T&gt; class MonotonicObjectIdentifier {
&gt; 
&gt; I think this could use a comment to explain its purpose and how it differs from ObjectIdentifier. Isn&apos;t an ObjectIdentifier monotonic? It definitely can only increment.

I added a comment describing the difference between the two and a FIXME suggesting merging them.

&gt;&gt; Source/WebKit/Shared/MonotonicObjectIdentifier.h:129
&gt;&gt; +}
&gt; 
&gt; I think this needs to return a signed Int64 value to avoid mistakes.

Done. I added a Checked calculation to deal with the overflow.

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:402
&gt;&gt; +    bool canTriggerRenderingUpdate(unsigned rescheduledRenderingUpdateCount) const;
&gt; 
&gt; canTriggerRenderingUpdate -&gt; shouldTriggerRenderingUpdate

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779666</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-26 19:03:48 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 434253 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779670</commentid>
    <comment_count>24</comment_count>
      <attachid>434265</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-26 20:24:12 -0700</bug_when>
    <thetext>Created attachment 434265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779680</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-26 21:43:04 -0700</bug_when>
    <thetext>Committed r280337 (239984@main): &lt;https://commits.webkit.org/239984@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434265.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433122</attachid>
            <date>2021-07-07 23:59:06 -0700</date>
            <delta_ts>2021-07-08 00:20:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210707235905.patch</filename>
            <type>text/plain</type>
            <size>5048</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5NmE4YmE0OTdkZmIwYWYw
ZjQxZmYyNDExYWZkNmM1OTc3MDBjMjcuLjFlY2JhMzdkOTBiNGYyODk4Y2Q2MDI5YzFlNjliZmE1
YzZhN2FlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDctMDcgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kIGhhcyB0byBleHBsaWNpdGx5IHJlbGVhc2VzIGl0cyBXb3JrUXVl
dWUgb25jZSBpdCBzdG9wcyBsaXN0ZW5pbmcgZm9yIElQQworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFr
ZSBzdXJlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgcmVsZWFzZXMgaXRzIFdvcmtRdWV1ZSBvbmNl
IGl0IHN0b3BzCisgICAgICAgIGxpc3RlbmluZyBmb3IgSVBDLiBUaGlzIHdpbGwgZ3VhcmFudGVl
IG5vIG1lc3NhZ2VzIHdpbGwgYmUgcHJvY2Vzc2VkCisgICAgICAgIG9uY2UgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoKSBpcyBjYWxsZWQuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdGFydExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6On5SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlc291
cmNlc0FuZFdvcmtRdWV1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpkaXNwYXRjaCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmg6CisKIDIwMjEtMDctMDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgbW9yZSBTcGFuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggNTcwZTE4OWJhMzc5ZTRlMzA5ODdiNDY1MTdkY2UxYWZlYWFj
ZTUwNS4uOTEwNWVmZDNkMDkyNzgwMWI0OGY4MTU3ZTljNjE1NDFmYzkzYmFkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtOTAsMTQgKzkwLDIyIEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1
Q29uCiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMo
KQogewotICAgIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLmFkZFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dvcmtRdWV1ZSwgdGhpcywgbV9yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBBU1NFUlQobV93b3JrUXVldWUpOworICAg
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLmFkZFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCAqbV93b3JrUXVldWUsIHRoaXMsIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6On5SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKCkKIHsKLSAgICAvLyBNYWtlIHN1cmUgd2UgZGVzdHJveSB0aGUgUmVz
b3VyY2VDYWNoZSBvbiB0aGUgV29ya1F1ZXVlIHNpbmNlIGl0IGdldHMgcG9wdWxhdGVkIG9uIHRo
ZSBXb3JrUXVldWUuCi0gICAgLy8gTWFrZSBzdXJlIHJlbmRlcmluZyByZXNvdXJjZSByZXF1ZXN0
IGlzIHJlbGVhc2VkIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNhY2hlLgotICAgIG1fd29ya1F1ZXVl
LT5kaXNwYXRjaChbcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IFdURk1vdmUobV9yZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0KSwgcmVtb3RlUmVzb3VyY2VDYWNoZSA9IFdURk1vdmUobV9yZW1v
dGVSZXNvdXJjZUNhY2hlKV0geyB9KTsKKyAgICByZWxlYXNlUmVzb3VyY2VzQW5kV29ya1F1ZXVl
KCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlc291cmNlc0Fu
ZFdvcmtRdWV1ZSgpCit7CisgICAgaWYgKGF1dG8gd29ya1F1ZXVlID0gV1RGTW92ZShtX3dvcmtR
dWV1ZSkpIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRlc3Ryb3kgdGhlIFJlc291cmNlQ2Fj
aGUgb24gdGhlIFdvcmtRdWV1ZSBzaW5jZSBpdCBnZXRzIHBvcHVsYXRlZCBvbiB0aGUgV29ya1F1
ZXVlLgorICAgICAgICAvLyBNYWtlIHN1cmUgcmVuZGVyaW5nIHJlc291cmNlIHJlcXVlc3QgaXMg
cmVsZWFzZWQgYWZ0ZXIgZGVzdHJveWluZyB0aGUgY2FjaGUuCisgICAgICAgIHdvcmtRdWV1ZS0+
ZGlzcGF0Y2goW3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSBXVEZNb3ZlKG1fcmVuZGVyaW5n
UmVzb3VyY2VzUmVxdWVzdCksIHJlbW90ZVJlc291cmNlQ2FjaGUgPSBXVEZNb3ZlKG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZSldIHsgfSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQpAQCAtMTA3LDExICsxMTUsMTMgQEAgdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICAvLyBUaGUg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCBkZXN0cnVjdG9yIHdvbid0IGJlIGNhbGxlZCB1bnRpbCBk
aXNjb25uZWN0KCkgaXMgY2FsbGVkIGFuZCB3ZSB1bnJlZ2lzdGVyIG91cnNlbHZlcyBhcyBhIFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciBiZWNhdXNlCiAgICAgLy8gdGhlIElQQzo6Q29ubmVjdGlv
biByZWZzIGl0cyBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLgogICAgIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIHJlbGVhc2VS
ZXNvdXJjZXNBbmRXb3JrUXVldWUoKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKIHsKLSAgICBtX3dvcmtRdWV1ZS0+
ZGlzcGF0Y2goV1RGTW92ZSh0YXNrKSk7CisgICAgaWYgKG1fd29ya1F1ZXVlKQorICAgICAgICBt
X3dvcmtRdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZSh0YXNrKSk7CiB9CiAKIElQQzo6Q29ubmVjdGlv
biogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNzM0MjdhOTY0Zjc0NTEyMWJhZmExMTllZWY0ZmVi
MzMzYjRjOTM5MS4uYTJmNDJkNWVmZWExNTAyZmU1YzExN2NmY2JhZTk4YTE5ZmY1OTNjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVs
ZWFzZVJlc291cmNlc0FuZFdvcmtRdWV1ZSgpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJ
UEMoKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5k
bGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJdGVtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNp
emVfdCBsZW5ndGgsIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZSwgdWludDhfdCogaGFu
ZGxlTG9jYXRpb24pIG92ZXJyaWRlOwpAQCAtMTU4LDcgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KICAgICB9OwogCi0gICAgUmVmPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7CisgICAgUmVm
UHRyPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3Jl
bW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433124</attachid>
            <date>2021-07-08 00:20:27 -0700</date>
            <delta_ts>2021-07-15 01:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210708002026.patch</filename>
            <type>text/plain</type>
            <size>5036</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5NmE4YmE0OTdkZmIwYWYw
ZjQxZmYyNDExYWZkNmM1OTc3MDBjMjcuLmE4YjU3NjJiZWQwOTdjOWZkNGJmYzhjNWJkNTM2YjNk
ZDQyMjQwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDctMDcgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kIGhhcyB0byByZWxlYXNlIGl0cyBXb3JrUXVldWUgb25jZSBpdCBz
dG9wcyBsaXN0ZW5pbmcgZm9yIElQQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQgcmVsZWFzZXMgaXRzIFdvcmtRdWV1ZSBvbmNlIGl0IHN0b3BzCisg
ICAgICAgIGxpc3RlbmluZyBmb3IgSVBDLiBUaGlzIHdpbGwgZ3VhcmFudGVlIG5vIG1lc3NhZ2Vz
IHdpbGwgYmUgcHJvY2Vzc2VkCisgICAgICAgIG9uY2UgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkQ2xvc2UoKSBpcyBjYWxsZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpzdGFydExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6On5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlc291cmNlc0FuZFdvcmtR
dWV1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0b3BMaXN0
ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpk
aXNwYXRjaCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmg6CisKIDIwMjEtMDctMDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgbW9yZSBTcGFuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKaW5kZXggNTcwZTE4OWJhMzc5ZTRlMzA5ODdiNDY1MTdkY2UxYWZlYWFjZTUwNS4uOTEwNWVm
ZDNkMDkyNzgwMWI0OGY4MTU3ZTljNjE1NDFmYzkzYmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcApAQCAtOTAsMTQgKzkwLDIyIEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAKIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQogewotICAgIG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLmFkZFdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3dvcmtRdWV1ZSwgdGhpcywgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKKyAgICBBU1NFUlQobV93b3JrUXVldWUpOworICAgIG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCAqbV93b3JrUXVldWUsIHRoaXMsIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50
NjQoKSk7CiB9CiAKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6On5SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kKCkKIHsKLSAgICAvLyBNYWtlIHN1cmUgd2UgZGVzdHJveSB0aGUgUmVzb3VyY2VDYWNoZSBv
biB0aGUgV29ya1F1ZXVlIHNpbmNlIGl0IGdldHMgcG9wdWxhdGVkIG9uIHRoZSBXb3JrUXVldWUu
Ci0gICAgLy8gTWFrZSBzdXJlIHJlbmRlcmluZyByZXNvdXJjZSByZXF1ZXN0IGlzIHJlbGVhc2Vk
IGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNhY2hlLgotICAgIG1fd29ya1F1ZXVlLT5kaXNwYXRjaChb
cmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IFdURk1vdmUobV9yZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0KSwgcmVtb3RlUmVzb3VyY2VDYWNoZSA9IFdURk1vdmUobV9yZW1vdGVSZXNvdXJjZUNh
Y2hlKV0geyB9KTsKKyAgICByZWxlYXNlUmVzb3VyY2VzQW5kV29ya1F1ZXVlKCk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlc291cmNlc0FuZFdvcmtRdWV1ZSgp
Cit7CisgICAgaWYgKGF1dG8gd29ya1F1ZXVlID0gV1RGTW92ZShtX3dvcmtRdWV1ZSkpIHsKKyAg
ICAgICAgLy8gTWFrZSBzdXJlIHdlIGRlc3Ryb3kgdGhlIFJlc291cmNlQ2FjaGUgb24gdGhlIFdv
cmtRdWV1ZSBzaW5jZSBpdCBnZXRzIHBvcHVsYXRlZCBvbiB0aGUgV29ya1F1ZXVlLgorICAgICAg
ICAvLyBNYWtlIHN1cmUgcmVuZGVyaW5nIHJlc291cmNlIHJlcXVlc3QgaXMgcmVsZWFzZWQgYWZ0
ZXIgZGVzdHJveWluZyB0aGUgY2FjaGUuCisgICAgICAgIHdvcmtRdWV1ZS0+ZGlzcGF0Y2goW3Jl
bmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSBXVEZNb3ZlKG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVx
dWVzdCksIHJlbW90ZVJlc291cmNlQ2FjaGUgPSBXVEZNb3ZlKG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZSldIHsgfSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0b3BM
aXN0ZW5pbmdGb3JJUEMoKQpAQCAtMTA3LDExICsxMTUsMTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICAvLyBUaGUgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCBkZXN0cnVjdG9yIHdvbid0IGJlIGNhbGxlZCB1bnRpbCBkaXNjb25uZWN0KCkg
aXMgY2FsbGVkIGFuZCB3ZSB1bnJlZ2lzdGVyIG91cnNlbHZlcyBhcyBhIFdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlciBiZWNhdXNlCiAgICAgLy8gdGhlIElQQzo6Q29ubmVjdGlvbiByZWZzIGl0cyBX
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLgogICAgIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cy0+Y29ubmVjdGlvbigpLnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIHJlbGVhc2VSZXNvdXJjZXNBbmRX
b3JrUXVldWUoKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaXNwYXRjaChG
dW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKIHsKLSAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goV1RG
TW92ZSh0YXNrKSk7CisgICAgaWYgKG1fd29ya1F1ZXVlKQorICAgICAgICBtX3dvcmtRdWV1ZS0+
ZGlzcGF0Y2goV1RGTW92ZSh0YXNrKSk7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggNzM0MjdhOTY0Zjc0NTEyMWJhZmExMTllZWY0ZmViMzMzYjRjOTM5MS4u
YTJmNDJkNWVmZWExNTAyZmU1YzExN2NmY2JhZTk4YTE5ZmY1OTNjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVsZWFzZVJlc291cmNl
c0FuZFdvcmtRdWV1ZSgpOwogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKIAogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU+IFdBUk5fVU5V
U0VEX1JFVFVSTiBkZWNvZGVJdGVtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgs
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZSwgdWludDhfdCogaGFuZGxlTG9jYXRpb24p
IG92ZXJyaWRlOwpAQCAtMTU4LDcgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9
OwogCi0gICAgUmVmPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7CisgICAgUmVmUHRyPFdvcmtRdWV1
ZT4gbV93b3JrUXVldWU7CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNl
Q2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433568</attachid>
            <date>2021-07-15 01:33:32 -0700</date>
            <delta_ts>2021-07-15 13:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210715013331.patch</filename>
            <type>text/plain</type>
            <size>21198</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5MTIwMWFlNDZmMmM3
MDZiMzgyMmIwY2M0NmIyNzJlMDA1YzU0Yi4uODFhYTQ5OWUwM2EyNThjMjg3ODhlODVlOTUyYWM4
NWNiNzExZjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA3LTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
Q3VycmVudCBSZW5kZXJpbmdVcGRhdGUgc2hvdWxkIGJlIHJlc2NoZWR1bGVkIGlmIEdQVVAgaXMg
YnVzeSBjb21taXR0aW5nIHByZXZpb3VzIFJlbmRlcmluZ1VwZGF0ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc5MQorICAgICAgICA8cmRhcjov
Lzc4NDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKwogMjAyMS0wNy0xNCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJFbGVtZW50Ojp1
cGRhdGVGaWxsSW1hZ2VzIG11c3QgZml4IHRoZSBjbGllbnRzIG9mIHRoZSBDU1MgaW1hZ2Ugd2hv
c2UgVVJMIGlzIGludmFsaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODJjOGNjODhmZjAyNTUxMmVhZjU0N2JlZmIw
NTAwYmFmNmRkYzBjMS4uNDJjN2U4NmFmM2QyZmYwYTkwOGE0YjI4ZjkzNDljYmQ4ZGJjNTVmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAyMS0wNy0xNSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEN1cnJlbnQgUmVuZGVy
aW5nVXBkYXRlIHNob3VsZCBiZSByZXNjaGVkdWxlZCBpZiBHUFVQIGlzIGJ1c3kgY29tbWl0dGlu
ZyBwcmV2aW91cyBSZW5kZXJpbmdVcGRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3OTEKKyAgICAgICAgPHJkYXI6Ly83ODQzMDYzOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbmRlcmlu
Z1VwZGF0ZVZlcnNpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzIGNvbnN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpjYWNoZUZvbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmlu
Z1VwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNv
bnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTA3LTEzICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIFB1c2ggT1Mgc3Rh
dGUgZHVtcGluZyBsb2dpYyBkb3duIGZyb20gV2ViUHJvY2VzcyB0byBBdXhpbGlhcnlQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZjJiZTRhY2ZlN2Q0ZjVjYmMwZmI4OGY4
MmY2NDliNTcxODEyNWFkMS4uY2M5YTk0YTc1ZTY1NTg1ODE1YTU3ZDI3MzE2ZWRlODBmNTk4ODUw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA3
LTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gQ3VycmVudCBSZW5kZXJpbmdVcGRhdGUgc2hvdWxkIGJlIHJlc2NoZWR1bGVkIGlm
IEdQVVAgaXMgYnVzeSBjb21taXR0aW5nIHByZXZpb3VzIFJlbmRlcmluZ1VwZGF0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc5MQorICAgICAg
ICA8cmRhcjovLzc4NDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0KToKKwogMjAyMS0wNi0yNSAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcmV2ZXJ0aW5nIHIyNzkyNjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCBhODk2OGM5NDRlNGExYWJhY2M4YzJmZDAzYjk3MWZkM2IzZjhlNzJjLi5kNjJlYjBlOGE1Mjkw
ZGVkZTY1YzNiNDJhMjRlOWQ0ZjY4MWRhZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTM2Miw2ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFy
IG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVy
cy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlv
bigpID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAvLyBNYWtlcyBhIHJlbmRlcmluZyB1cGRhdGUg
aGFwcGVuIHNvb24sIHR5cGljYWxseSBpbiB0aGUgY3VycmVudCBydW5sb29wLgogICAgIHZpcnR1
YWwgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgPSAwOwogICAgIC8vIFNjaGVkdWxlIGEg
cmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNvb3JkaW5hdGVzIHdpdGggZGlzcGxheSByZWZyZXNoLiBS
ZXR1cm5zIHRydWUgaWYgc2NoZWR1bGVkLiAoVGhpcyBpcyBvbmx5IHVzZWQgYnkgU1ZHSW1hZ2VD
aHJvbWVDbGllbnQuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdV
cGRhdGVTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXIuY3BwCmluZGV4IDUyNmU1ZWE2OTlkN2U2NWQ0NGJkM2VjNGJlYzUxNTUwOTY0Y2Y3
YjMuLjZhM2MzOTM3NmZlZjQ0YWQ3MDNjMmQ5OWNmNjYxMjNjZTYwMzVlYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKQEAgLTEyNiw3
ICsxMjYsMTEgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNo
RmlyZWQoKQogICAgIHRyYWNlUG9pbnQoVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSk7CiAKICAgICBj
bGVhclNjaGVkdWxlZCgpOwotICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAKKyAg
ICBpZiAobV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUo
KSkKKyAgICAgICAgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpOworICAgIGVsc2UKKyAgICAgICAg
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXI6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcAppbmRleCA1NzBlMTg5YmEzNzllNGUzMDk4N2I0NjUxN2RjZTFhZmVhYWNlNTA1Li4y
MTA5NDBlOWE3MTI4OTI3NGEwNTZmMmQyMWQ1NGQ1OTI0MGQzOTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwCkBAIC00NzMsNiArNDczLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByCiAg
ICAgdXBkYXRlUmVuZGVyaW5nUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQoreworICAgIGlmIChtX3BlbmRpbmdXYWtldXBJbmZvKQor
ICAgICAgICB3YWtlVXBBbmRBcHBseURpc3BsYXlMaXN0KHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5n
V2FrZXVwSW5mbywgc3RkOjpudWxsb3B0KS0+YXJndW1lbnRzKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
KGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKERpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNzM0Mjdh
OTY0Zjc0NTEyMWJhZmExMTllZWY0ZmViMzMzYjRjOTM5MS4uM2FiMTM0ZGIxYzcyODE4YTk0ODUx
YWJmYjI2YTQxNDU0ZTEzZjQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xNDAsNiArMTQw
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7
CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZSh1aW50NjRfdCByZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKICAg
ICB2b2lkIGRpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUm
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJ
ZGVudGlmaWVyKTsKIAogICAgIHN0cnVjdCBQZW5kaW5nV2FrZXVwSW5mb3JtYXRpb24gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCA0YjNmZTlhMDI2MmU4YTU0
OTE4NTJjNmQ2YTA0MDQ1ZDZhNjk2Mzk3Li40MTBkNzU0MGMzYzc2NmViODAyNzM0MDBjOGU0Nzg0
M2RiZGYyODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAt
MzcsNiArMzcsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBE
ZWxldGVBbGxGb250cygpCiAgICAgRGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogICAgIFJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2
NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbikKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApp
bmRleCAwOWNlNGM2ZWY2ZDZhYmU3MWUwM2VhYjdmYThjZDIxNGZmNjhiMGZlLi5jOTk1NDhiMmY0
YmVjMGQ3MTE2NzI0YjM0MjY1NjAxZTA4NzQ1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwCkBAIC0yNTcsNiArMjU3LDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFz
ZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmlu
Z1VwZGF0ZVZlcnNpb24pLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCBJUEM6OlNlbmRP
cHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAg
ICArK21fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwpAQCAtMjc3LDYgKzI4NCwxMiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgICAg
ICBpbWFnZUJ1ZmZlci0+ZGlkRmx1c2goZmx1c2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2
NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbikKK3sKKyAgICBBU1NFUlQoZmluYWxp
emVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIDw9IG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7Cisg
ICAgbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gPSBzdGQ6Om1pbihmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZVZlcnNpb24sIG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7Cit9CisKIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3aWxsQXBwZW5kSXRlbShSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgbmV3RGVzdGluYXRpb25JZGVudGlmaWVyKQogewogICAgIGlmICht
X2N1cnJlbnREZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllciA9PSBuZXdEZXN0aW5hdGlv
bklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCA2
MzE0OTY3MGEzNTk0ZTI1YTJkYTVjZDE5NzYxMTQ2MWM2MTc5NzQwLi42YWMwODRjOWQ2MzY5Mjc5
MDZmYjgwMjY4MWQxZDQyZTI3NGMzNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgKQEAgLTEwNiw2ICsxMDYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQWxs
Rm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpOworICAgIHVpbnQ2NF90IHJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVuZGVy
aW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIG1f
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOyB9CisKICAgICBlbnVtIGNsYXNzIERpZFJl
Y2VpdmVCYWNrZW5kQ3JlYXRpb25SZXN1bHQgOiBib29sIHsKICAgICAgICAgUmVjZWl2ZWRBbnlS
ZXNwb25zZSwKICAgICAgICAgVGltZW91dE9ySVBDRmFpbHVyZQpAQCAtMTI4LDYgKzEzMiw3IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCBkaWRD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmx1c2goV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2
NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7CiAKICAgICBSZWZQdHI8RGlzcGxh
eUxpc3RXcml0ZXJIYW5kbGU+IG1vc3RSZWNlbnRseVVzZWREaXNwbGF5TGlzdEhhbmRsZSgpOwog
ICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gZmluZFJldXNhYmxlRGlzcGxheUxp
c3RIYW5kbGUoc2l6ZV90IGNhcGFjaXR5KTsKQEAgLTE0OCw2ICsxNTMsOSBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CiAg
ICAgdWludDY0X3QgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeUxlbmd0aCB7IDAgfTsKICAg
ICBXZWJDb3JlOjpUaW1lciBtX2Rlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeVRpbWVy
IHsgKnRoaXMsICZSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlc3Ryb3lHZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeSB9OworCisgICAgdWludDY0X3QgbV9yZW5kZXJpbmdVcGRhdGVWZXJz
aW9uIHsgMSB9OworICAgIHVpbnQ2NF90IG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9u
IHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNhNTMyZDVlNGZmNjE2
YmRiMDdlZGU3YTlhODNlOTMxMzdlNzNiZjEuLjFkNjdmY2IyOGIxNTc0ZmE5ODM4ZDI2ODQ2OWNj
YjM1NmQ3ODA2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRGlkQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZs
dXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSh1
aW50NjRfdCByZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDAzZjM0
YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJkMzkxMzcxMTAxYWYuLjkwMTRiNDRiMDMxNzgzNjQyZGI2
N2U4ZGNkYzcxYmM1ZTE2MjI1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHAKQEAgLTEwOCw4ICsxMDgsOCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2Fj
aGVGb250KEZvbnQmIGZvbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0pOwogICAgIGF1dG8m
IGxhc3RWZXJzaW9uID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAobGFzdFZlcnNp
b24gIT0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbikgewotICAgICAgICBsYXN0VmVy
c2lvbiA9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgaWYgKGxhc3RWZXJz
aW9uICE9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZVZlcnNp
b24oKSkgeworICAgICAgICBsYXN0VmVyc2lvbiA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LnJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKTsKICAgICAgICAgKyttX251bWJlck9mRm9udHNV
c2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0KICAgICBpZiAocmVzdWx0LmlzTmV3
RW50cnkpCkBAIC0xMjUsMTIgKzEyNSw2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlCiAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpCi17Ci0gICAgKyttX2N1cnJlbnRS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uOwotICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRS
ZW5kZXJpbmdVcGRhdGUgPSAwOwotfQotCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Y2xlYXJGb250TWFwKCkKIHsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkKQEAgLTE1MCw3ICsxNDQsNyBAQCB2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250
cygpCiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4g
dG9SZW1vdmU7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsKLSAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmlu
Z1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3Vu
dFRvS2VlcEZvbnRBbGl2ZSkgeworICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkucmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVu
ZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKICAgICAgICAgICAgIHRvUmVtb3Zl
LmFkZChpdGVtLmtleSk7CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgICAgICB9CkBAIC0xNjEsMTAg
KzE1NSwxMCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGVGb3JGb250cygpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCit2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIGZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRm9yRm9udHMoKTsKLSAgICBwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0
ZSgpOworICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAw
OwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNo
ZVdhc0Rlc3Ryb3llZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCA2ZDcz
MWM0Y2M1ZWY2ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkwLi4xY2IyYmZmOTgxNDA2MjFlZmIw
M2Q2MGEzYTZiNDBmMjIwMTU0YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
QEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShXZWJD
b3JlOjpOYXRpdmVJbWFnZSYpOwogCiAgICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYp
OwotICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJlbW90ZVJlc291cmNlQ2FjaGVXYXNE
ZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKQEAgLTYzLDcgKzYzLDYgQEAg
cHJpdmF0ZToKICAgICAKICAgICB2b2lkIHJlbGVhc2VOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogICAgIHZvaWQgZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVGb3JGb250cygpOwotICAgIHZvaWQgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdV
cGRhdGUoKTsKICAgICB2b2lkIGNsZWFyRm9udE1hcCgpOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNo
TWFwIG1faW1hZ2VCdWZmZXJzOwpAQCAtNzEsNyArNzAsNiBAQCBwcml2YXRlOgogCiAgICAgSGFz
aE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVpbnQ2NF90PiBtX2Zv
bnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcDsKICAgICB1bnNpZ25l
ZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlIHsgMCB9OwotICAg
IHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAxIH07CiAKICAgICBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMzA3NzZhMDBkYjA3NGYyZDE5N2QyN2Ew
MDA4OTI5MmI1ODgwNzg1Ny4uOTg3OWVhZTJmNmU3MGYxN2Q2MDI0ZWQ4YmRhOGE4YzExYzI4MDll
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk3Miw2ICs5NzIsMTEgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5UcmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmNhblRyaWdnZXJS
ZW5kZXJpbmdVcGRhdGUoKTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnRyaWdnZXJSZW5k
ZXJpbmdVcGRhdGUoKQogewogICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCBjMTUxMmY5OTg3NWQ5OTcwNzQ1ZjYyYzY1ZjVkYjI5NTIxMTE1NTAzLi5k
ODRhMTdiYjQ2NzJmZTEwYjMyM2RkYmQ2NDc1YjExNDIzOTA3MzJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0yMjcsNiArMjI3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKSBmaW5hbDsKKyAgICBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKIAog
ICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2Q0NDhjNTMzYjA3ZjAyOWJiYjY0
YjFhZDQ2ODJiY2E4NjE3YjA2Mi4uYzA1NGFiNzM5ZjA3NWVjNTUyNTA4M2Y1MDgxMzg2YzRkOTUz
Y2ZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTQxNTksMTIgKzQxNTksMjIgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRhdGVSZW5kZXJpbmco
KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlUmVuZGVyaW5nQWZ0
ZXJDb21taXR0aW5nTG9hZCgpKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVy
aW5nVXBkYXRlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlcyA9IDI7CisgICAg
aWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICByZXR1cm4gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzKCkgPD0gbWF4
RGVsYXllZFJlbmRlcmluZ1VwZGF0ZXM7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
dm9pZCBXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8RmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVGbGFncz4gZmxhZ3MpCiB7CiAgICAgbV9wYWdlLT5maW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZShmbGFncyk7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmRpZEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5maW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSgpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzNjIzMzVmZGQ3ODUxOGEyOGUyZmI3NjQ5ODM5ZTMy
MDEwYzkyZGIzLi4zMDdiNGUwOTg1ZmExY2ZhZjNmZDIwMjQ5MTJiMzcxMTc2ZGNlZDFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zOTksNiArMzk5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsYXlvdXRJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBk
YXRlUmVuZGVyaW5nKCk7CisgICAgYm9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgY29u
c3Q7CiAgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6
RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4pOwogCiAgICAgdm9pZCByZWxlYXNlTWVtb3J5
KFdURjo6Q3JpdGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0NGY0MDRmZGY1Yjg5MjQyOTIy
NTM0YjgxYWIzNzIyYzExMTcxYjFlLi5hODIyNjQ1M2E3ZWU3NjMxMzNmMGRkMDFjNzQzZDBmYjAy
ZDU2MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTg1LDYgKzE4NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CisgICAgYm9vbCBjYW5U
cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB0cmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAKICAgICBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxv
d2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5k
ZXggYjZjMTkwOTFiZmZhMzg5NjI5OTQ4YmEwNWQ3N2RjMjRhNDJlZjlmZi4uMzg4NWMzYWU2NWE4
NmJmNzliMDljMDg0YzEzN2RjOTcyYTU2NGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTM5
LDYgKzkzOSwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2lu
Z1N5bmNocm9uaXphdGlvbigpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiti
b29sIFdlYkNocm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0cmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433620</attachid>
            <date>2021-07-15 13:29:33 -0700</date>
            <delta_ts>2021-07-17 02:02:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210715132932.patch</filename>
            <type>text/plain</type>
            <size>22863</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5MTIwMWFlNDZmMmM3
MDZiMzgyMmIwY2M0NmIyNzJlMDA1YzU0Yi4uNzNiZWMyMWU5ZTI5N2FmMDc4ZmM5MmE4ZDU0MGQy
MWFhODRmODdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
Q3VycmVudCBSZW5kZXJpbmdVcGRhdGUgc2hvdWxkIGJlIHJlc2NoZWR1bGVkIGlmIEdQVVAgaXMg
YnVzeSBjb21taXR0aW5nIHByZXZpb3VzIFJlbmRlcmluZ1VwZGF0ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc5MQorICAgICAgICA8cmRhcjov
Lzc4NDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAgICAgICAgKiBwYWdlL1JlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlci5oOgorCiAyMDIxLTA3LTE0ICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6OnVwZGF0ZUZpbGxJbWFn
ZXMgbXVzdCBmaXggdGhlIGNsaWVudHMgb2YgdGhlIENTUyBpbWFnZSB3aG9zZSBVUkwgaXMgaW52
YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA4MmM4Y2M4OGZmMDI1NTEyZWFmNTQ3YmVmYjA1MDBiYWY2ZGRjMGMx
Li4zNmUzMDQ5NWRmZTZlZjlmMTY5MzNmZDY3ZTVjYzE1ZWNhYTc2OGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDIxLTA3LTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gQ3VycmVudCBSZW5kZXJpbmdVcGRhdGUgc2hv
dWxkIGJlIHJlc2NoZWR1bGVkIGlmIEdQVVAgaXMgYnVzeSBjb21taXR0aW5nIHByZXZpb3VzIFJl
bmRlcmluZ1VwZGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzc5MQorICAgICAgICA8cmRhcjovLzc4NDMwNjM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdVByb2Nl
c3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
cmVuZGVyaW5nVXBkYXRlVmVyc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVsYXllZFJlbmRlcmluZ1VwZGF0ZXMgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnByZXBhcmVGb3JOZXh0
UmVuZGVyaW5nVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdV
cGRhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjEtMDctMTMgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gUHVz
aCBPUyBzdGF0ZSBkdW1waW5nIGxvZ2ljIGRvd24gZnJvbSBXZWJQcm9jZXNzIHRvIEF1eGlsaWFy
eVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmMmJlNGFjZmU3ZDRmNWNi
YzBmYjg4ZjgyZjY0OWI1NzE4MTI1YWQxLi5jYzlhOTRhNzVlNjU1ODU4MTVhNTdkMjczMTZlZGU4
MGY1OTg4NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjEtMDctMTUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBDdXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hl
ZHVsZWQgaWYgR1BVUCBpcyBidXN5IGNvbW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Nzkx
CisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorCiAyMDIx
LTA2LTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTI2Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IGE4OTY4Yzk0NGU0YTFhYmFjYzhjMmZkMDNiOTcxZmQzYjNmOGU3MmMuLmViY2Q0
ZTMwZTQ4MWY1YzcwYWVmODBkYmY1NjQzYzAxYTQ4OGVkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMzYyLDYgKzM2Miw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgY2hhbmdl
cyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBo
aWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgPSAwOwogCisgICAgdmlydHVhbCBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdV
cGRhdGUodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8gTWFrZXMgYSBy
ZW5kZXJpbmcgdXBkYXRlIGhhcHBlbiBzb29uLCB0eXBpY2FsbHkgaW4gdGhlIGN1cnJlbnQgcnVu
bG9vcC4KICAgICB2aXJ0dWFsIHZvaWQgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpID0gMDsKICAg
ICAvLyBTY2hlZHVsZSBhIHJlbmRlcmluZyB1cGRhdGUgdGhhdCBjb29yZGluYXRlcyB3aXRoIGRp
c3BsYXkgcmVmcmVzaC4gUmV0dXJucyB0cnVlIGlmIHNjaGVkdWxlZC4gKFRoaXMgaXMgb25seSB1
c2VkIGJ5IFNWR0ltYWdlQ2hyb21lQ2xpZW50LikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAppbmRleCA1MjZlNWVhNjk5ZDdlNjVkNDRiZDNl
YzRiZWM1MTU1MDk2NGNmN2IzLi43MDQ2Nzg5OGJhYzk2ZjkxOWZiMzYzMzBiOGFmNjg3OWUwOTMw
OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVk
dWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuY3BwCkBAIC0xMjYsNyArMTI2LDE0IEBAIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVy
OjpkaXNwbGF5UmVmcmVzaEZpcmVkKCkKICAgICB0cmFjZVBvaW50KFRyaWdnZXJSZW5kZXJpbmdV
cGRhdGUpOwogCiAgICAgY2xlYXJTY2hlZHVsZWQoKTsKLSAgICB0cmlnZ2VyUmVuZGVyaW5nVXBk
YXRlKCk7CisgICAgCisgICAgaWYgKG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5jYW5UcmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKG1fcmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMpKSB7CisgICAgICAg
IHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgbV9yZXNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlcyA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICAgICAgKyttX3Jlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzOworICAgIH0KIH0K
IAogdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVG
b3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVk
dWxlci5oCmluZGV4IDliNTFjNzA2MGQ5OGViZGY2NjMxNGM4ZmNmZWQ5NWYwYjdlZmY4ZTYuLmM0
YTYyMGNkZTUwMDE4NDVjMGI1OTc4ZjIyYTFiZjgzOTIxMDlmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaApAQCAtNjcsNiArNjcsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gbV9yZWZyZXNoVGltZXI7CiAgICAg
Ym9vbCBtX3VzZVRpbWVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2NoZWR1bGVkIHsgZmFsc2Ug
fTsKKyAgICB1bnNpZ25lZCBtX3Jlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzIHsgMCB9OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDU3MGUxODliYTM3OWU0ZTMwOTg3YjQ2
NTE3ZGNlMWFmZWFhY2U1MDUuLjkzYTNlZTRjZmI1ZTQxMDNiNjI0YjA3NWFkZmJmODdiM2Y1MTcz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQ3Myw2ICs0NzMsMTMgQEAgdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHIKICAgICB1cGRhdGVSZW5kZXJpbmdSZXNvdXJjZVJlcXVlc3QoKTsK
IH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSh1aW50NjRfdCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pCit7CisgICAgaWYgKG1f
cGVuZGluZ1dha2V1cEluZm8gJiYgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVm
ZmVyKG1fcGVuZGluZ1dha2V1cEluZm8tPmFyZ3VtZW50cy5kZXN0aW5hdGlvbkltYWdlQnVmZmVy
SWRlbnRpZmllcikpCisgICAgICAgIHdha2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdXYWtldXBJbmZvLCBzdGQ6Om51bGxvcHQpLT5hcmd1bWVudHMpOworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkRmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
ZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBoYW5k
bGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZp
ZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAppbmRleCA3MzQyN2E5NjRmNzQ1MTIxYmFmYTExOWVlZjRmZWIzMzNiNGM5MzkxLi4zYWIxMzRk
YjFjNzI4MThhOTQ4NTFhYmZiMjZhNDE0NTRlMTNmNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
QEAgLTE0MCw2ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJD
b3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxl
YXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IHJlbmRlcmluZ1VwZGF0
ZVZlcnNpb24pOwogICAgIHZvaWQgZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0
aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogCiAgICAgc3RydWN0IFBlbmRpbmdXYWtldXBJbmZv
cm1hdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4IDRi
M2ZlOWEwMjYyZThhNTQ5MTg1MmM2ZDZhMDQwNDVkNmE2OTYzOTcuLjQxMGQ3NTQwYzNjNzY2ZWI4
MDI3MzQwMGM4ZTQ3ODQzZGJkZjI4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluCkBAIC0zNyw2ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgewogICAgIERlbGV0ZUFsbEZvbnRzKCkKICAgICBEaWRDcmVhdGVTaGFyZWREaXNwbGF5
TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIp
CiAgICAgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgRmluYWxpemVSZW5kZXJp
bmdVcGRhdGUodWludDY0X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwCmluZGV4IDA5Y2U0YzZlZjZkNmFiZTcxZTAzZWFiN2ZhOGNkMjE0ZmY2OGIw
ZmUuLmE1OWEwMjRjYTI1NTIzYzI2ZTc2NzEzYTU2ZDIxZTU3MTI3NTc4NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTEwMiw2ICsxMDIsOSBAQCB2b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9z
ZShHUFVQcm9jZXNzQ29ubmVjdAogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmUgPSBzdGQ6
Om51bGxvcHQ7CiAgICAgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeUxlbmd0aCA9IDA7CiAg
ICAgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSA9IG51bGxwdHI7CisgICAgCisgICAgbV9y
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uID0gMTsKKyAgICBtX2ZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
VmVyc2lvbiA9IDE7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CkBAIC0yNTcsNiArMjYwLDEz
IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6
RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZShtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb24pLCByZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcigpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoKTsKKyAgICArK21fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKK30KKwog
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtMjc3LDYgKzI4NywxMiBAQCB2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZQogICAgICAgICBpbWFnZUJ1ZmZlci0+ZGlkRmx1c2goZmx1c2hJZGVudGlm
aWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbikK
K3sKKyAgICBBU1NFUlQoZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIDw9IG1fcmVuZGVy
aW5nVXBkYXRlVmVyc2lvbik7CisgICAgbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24g
PSBzdGQ6Om1pbihmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24sIG1fcmVuZGVyaW5nVXBk
YXRlVmVyc2lvbik7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3aWxs
QXBwZW5kSXRlbShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmV3RGVzdGluYXRpb25JZGVu
dGlmaWVyKQogewogICAgIGlmIChtX2N1cnJlbnREZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRp
ZmllciA9PSBuZXdEZXN0aW5hdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaAppbmRleCA2MzE0OTY3MGEzNTk0ZTI1YTJkYTVjZDE5NzYxMTQ2MWM2MTc5
NzQwLi42YWMwODRjOWQ2MzY5Mjc5MDZmYjgwMjY4MWQxZDQyZTI3NGMzNDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTEwNiw2ICsxMDYsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNv
dXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBm
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgIHVpbnQ2NF90IHJlbmRlcmluZ1VwZGF0ZVZl
cnNpb24oKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKyAgICB1
bnNpZ25lZCBkZWxheWVkUmVuZGVyaW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVy
aW5nVXBkYXRlVmVyc2lvbiAtIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOyB9CisK
ICAgICBlbnVtIGNsYXNzIERpZFJlY2VpdmVCYWNrZW5kQ3JlYXRpb25SZXN1bHQgOiBib29sIHsK
ICAgICAgICAgUmVjZWl2ZWRBbnlSZXNwb25zZSwKICAgICAgICAgVGltZW91dE9ySVBDRmFpbHVy
ZQpAQCAtMTI4LDYgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVj
ZWl2ZWQuCiAgICAgdm9pZCBkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgZGlkRmx1c2goV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7
CiAKICAgICBSZWZQdHI8RGlzcGxheUxpc3RXcml0ZXJIYW5kbGU+IG1vc3RSZWNlbnRseVVzZWRE
aXNwbGF5TGlzdEhhbmRsZSgpOwogICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4g
ZmluZFJldXNhYmxlRGlzcGxheUxpc3RIYW5kbGUoc2l6ZV90IGNhcGFjaXR5KTsKQEAgLTE0OCw2
ICsxNTMsOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxC
dWZmZXJTaGFyZWRNZW1vcnk7CiAgICAgdWludDY0X3QgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1l
bW9yeUxlbmd0aCB7IDAgfTsKICAgICBXZWJDb3JlOjpUaW1lciBtX2Rlc3Ryb3lHZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeVRpbWVyIHsgKnRoaXMsICZSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSB9OworCisgICAgdWludDY0X3Qg
bV9yZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHsgMSB9OworICAgIHVpbnQ2NF90IG1fZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDNhNTMyZDVlNGZmNjE2YmRiMDdlZGU3YTlhODNlOTMxMzdlNzNiZjEuLjFkNjdmY2Iy
OGIxNTc0ZmE5ODM4ZDI2ODQ2OWNjYjM1NmQ3ODA2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBt
ZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAg
ICAgRGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBEaWRGaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZSh1aW50NjRfdCByZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwCmluZGV4IDAzZjM0YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJkMzkxMzcxMTAxYWYu
LjkwMTRiNDRiMDMxNzgzNjQyZGI2N2U4ZGNkYzcxYmM1ZTE2MjI1ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEwOCw4ICsxMDgsOCBAQCB2b2lkIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KEZvbnQmIGZvbnQpCiAgICAgICAgIHJldHVybiAw
OwogICAgIH0pOwogICAgIGF1dG8mIGxhc3RWZXJzaW9uID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZTsKLSAgICBpZiAobGFzdFZlcnNpb24gIT0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lv
bikgewotICAgICAgICBsYXN0VmVyc2lvbiA9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b247CisgICAgaWYgKGxhc3RWZXJzaW9uICE9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKSkgeworICAgICAgICBsYXN0VmVyc2lvbiA9IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKTsKICAgICAg
ICAgKyttX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0K
ICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCkBAIC0xMjUsMTIgKzEyNSw2IEBAIHZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlCiAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFz
ZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgp
Ci17Ci0gICAgKyttX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOwotICAgIG1fbnVtYmVy
T2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOwotfQotCiB2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKCkKIHsKICAgICBmb3IgKGF1dG8mIGl0
ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkKQEAg
LTE1MCw3ICsxNDQsNyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVGb3JGb250cygpCiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gdG9SZW1vdmU7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9m
b250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsKLSAgICAgICAg
aWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49IG1pbmlt
dW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkgeworICAgICAgICBpZiAobV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpIC0gaXRl
bS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsK
ICAgICAgICAgICAgIHRvUmVtb3ZlLmFkZChpdGVtLmtleSk7CiAgICAgICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwog
ICAgICAgICB9CkBAIC0xNjEsMTAgKzE1NSwxMCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpCiAgICAgfSk7CiB9CiAKLXZv
aWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgp
Cit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUo
KQogewogICAgIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMoKTsKLSAgICBwcmVwYXJl
Rm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpOworICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJl
bnRSZW5kZXJpbmdVcGRhdGUgPSAwOwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ryb3llZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuaAppbmRleCA2ZDczMWM0Y2M1ZWY2ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkw
Li4xY2IyYmZmOTgxNDA2MjFlZmIwM2Q2MGEzYTZiNDBmMjIwMTU0YmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpOwogCiAgICAgdm9pZCBjYWNo
ZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwotICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJl
bW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnko
KTsKQEAgLTYzLDcgKzYzLDYgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHJlbGVhc2VOYXRp
dmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwotICAgIHZvaWQgcHJl
cGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIGNsZWFyRm9udE1hcCgpOwog
CiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwpAQCAtNzEsNyArNzAsNiBA
QCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIsIHVpbnQ2NF90PiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVy
c2lvbk1hcDsKICAgICB1bnNpZ25lZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVy
aW5nVXBkYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZl
cnNpb24geyAxIH07CiAKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMzA3
NzZhMDBkYjA3NGYyZDE5N2QyN2EwMDA4OTI5MmI1ODgwNzg1Ny4uZDBjZjJlYmUyZThmMTY4ODli
ZDZkMGFiMzMzNzJmNTIyZGNmMjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk3Miw2
ICs5NzIsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdT
eW5jaHJvbml6YXRpb24oKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViQ2hy
b21lQ2xpZW50OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGVzKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuY2FuVHJpZ2dlclJl
bmRlcmluZ1VwZGF0ZShyZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcyk7Cit9CisKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojp0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAobV9wYWdl
LmRyYXdpbmdBcmVhKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYzE1MTJmOTk4NzVkOTk3MDc0
NWY2MmM2NWY1ZGIyOTUyMTExNTUwMy4uMTE0NTQxMTVmZmNhZDc3MGU2MmE1ZjI4ZWVjMmU5NzE5
ZGJiYTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjI3LDYgKzIyNyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CisgICAgYm9vbCBjYW5U
cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVz
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsK
IAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2Q0NDhjNTMzYjA3ZjAyOWJi
YjY0YjFhZDQ2ODJiY2E4NjE3YjA2Mi4uZGEyYzU0Yzg5YTY5M2FiODg5ZDEyYTk2MGNjMmU4YTVi
YmI0MGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQxNTksMTIgKzQxNTksMjUgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRhdGVSZW5kZXJp
bmcoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlUmVuZGVyaW5n
QWZ0ZXJDb21taXR0aW5nTG9hZCgpKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25zdAor
eworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4UmVzY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZXMgPSBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQ7CisgICAgaWYgKHJlc2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGVzID49IG1heFJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBtYXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlcyA9IDI7CisgICAgaWYgKG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzKCkgPD0gbWF4RGVsYXllZFJl
bmRlcmluZ1VwZGF0ZXM7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBXZWJQ
YWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8RmluYWxpemVSZW5kZXJpbmdV
cGRhdGVGbGFncz4gZmxhZ3MpCiB7CiAgICAgbV9wYWdlLT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZShmbGFncyk7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkt
PnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7
CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5maW5hbGl6ZVJlbmRlcmlu
Z1VwZGF0ZSgpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAzNjIzMzVmZGQ3ODUxOGEyOGUyZmI3NjQ5ODM5ZTMyMDEwYzkyZGIz
Li5kM2I1OWNmNzEwODVlMWRhOGJkOTRhZmU1NDdlYzg5MGM4ODQ0Y2Q2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zOTksNiArMzk5LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBsYXlvdXRJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlUmVuZGVy
aW5nKCk7CisgICAgYm9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25zdDsKICAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKE9wdGlvblNldDxXZWJDb3JlOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZsYWdzPik7
CiAKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoV1RGOjpDcml0aWNhbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDQ0ZjQwNGZkZjViODkyNDI5MjI1MzRiODFhYjM3MjJjMTExNzFiMWUuLjkzOWIyODBk
YWMzNjUyNmNlMjdkZTRmZWJiYjU5ZTA3MDg4M2ViMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
ODUsNiArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAg
IHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKSBmaW5hbDsKKyAgICBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQg
cmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdHJpZ2dl
clJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOwogCiAgICAgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3Mg
YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CmluZGV4IGI2YzE5MDkxYmZmYTM4OTYyOTk0OGJhMDVkNzdkYzI0YTQyZWY5ZmYuLmU4ZTFmMDAy
MzgyNjljMzc0ZTUxYTI2NzlmYmVlN2I1MDZjOGUxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAg
LTkzOSw2ICs5MzksMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWdu
ZWQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojp0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433729</attachid>
            <date>2021-07-17 02:02:52 -0700</date>
            <delta_ts>2021-07-18 02:07:12 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-227791-20210717020252.patch</filename>
            <type>text/plain</type>
            <size>27271</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM0YjRkMjVhYjcyM2I4NzNmNzRjZGY3
YTM2NDVmMTdhMDAzMTlhYzcuLjFjNjZjNzMxNDQ3MTkzZDVlN2RkNDUxOTk1NTczOGE5YjM2M2Mx
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDctMTcgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDdXJyZW50IFJlbmRlcmlu
Z1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBidXN5IGNvbW1pdHRpbmcg
cHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0wNy0xMyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0
ZSBhbmQgZml4IFVSTCBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDkxMjAxYWU0NmYyYzcwNmIz
ODIyYjBjYzQ2YjI3MmUwMDVjNTRiLi44N2JlNjAyYjYzODAxZjYzZDJlZTk5ZGQ3ZGM5MWFkNmEx
MjI2OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDctMTcgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDdXJy
ZW50IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBidXN5
IGNvbW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0
MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpj
YW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1JlbmRlcmlu
Z1VwZGF0ZVNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmg6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRSZW5kZXJp
bmdVcGRhdGVGZW5jaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpyZW5kZXJpbmdVcGRhdGVGZW5jaW5nRW5hYmxlZCBjb25zdCk6CisKIDIwMjEt
MDctMTQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVu
ZGVyRWxlbWVudDo6dXBkYXRlRmlsbEltYWdlcyBtdXN0IGZpeCB0aGUgY2xpZW50cyBvZiB0aGUg
Q1NTIGltYWdlIHdob3NlIFVSTCBpcyBpbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyYzhjYzg4ZmYwMjU1
MTJlYWY1NDdiZWZiMDUwMGJhZjZkZGMwYzEuLmRmY2QzZDc4MWRiM2Q1NmU2NDY3MGZhYmFlZjBi
NmE1YTAyZDUwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDctMTcgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBD
dXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBi
dXN5IGNvbW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8v
Nzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdWJtaXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpyZW5kZXJpbmdVcGRhdGVWZXJzaW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVkUmVuZGVyaW5n
VXBkYXRlcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZv
bnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRyaWdnZXJS
ZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAyMS0wNy0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBQdXNoIE9TIHN0YXRlIGR1bXBpbmcgbG9naWMgZG93biBmcm9tIFdl
YlByb2Nlc3MgdG8gQXV4aWxpYXJ5UHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGYyYmU0YWNmZTdkNGY1Y2JjMGZiODhmODJmNjQ5YjU3MTgxMjVhZDEuLjc4YjgyYTkwZDcy
YzUzYzg4Mjc2MWFmZjgwYmY5Mjk4OWU3NzQxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNy0xNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEN1cnJlbnQgUmVuZGVyaW5nVXBk
YXRlIHNob3VsZCBiZSByZXNjaGVkdWxlZCBpZiBHUFVQIGlzIGJ1c3kgY29tbWl0dGluZyBwcmV2
aW91cyBSZW5kZXJpbmdVcGRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc3OTEKKyAgICAgICAgPHJkYXI6Ly83ODQzMDYzOT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIxLTA2LTI1ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTI2
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0ludGVybmFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4IDBmYmIwNjU4M2RjYTliODFkNTU1YmE5NjU2ZDU3
N2VlOTAxMDM0ZTEuLjRhMjA5ZGZlZGM1YzM0YTE1M2M4YTA0NWU0MThiZTNhMjBlZGNhNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0lu
dGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjIxLDYgKzYyMSwxNiBAQCBQcmVmZXJQYWdlUmVuZGVy
aW5nVXBkYXRlc05lYXI2MEZQU0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6
IHRydWUKIAorUmVuZGVyaW5nVXBkYXRlRmVuY2luZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJQcm90ZWN0IFdlYlByb2Nlc3MgZnJvbSBzbG93IHJlbmRlcmlu
ZyBjb21taXQiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlByb3RlY3QgV2ViUHJvY2Vz
cyBmcm9tIHNsb3cgcmVuZGVyaW5nIGNvbW1pdCIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6Cisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBSZXNvdXJjZUxvYWRTY2hlZHVsaW5n
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlJlc291cmNlIExv
YWQgU2NoZWR1bGluZyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE4OTY4Yzk0
NGU0YTFhYmFjYzhjMmZkMDNiOTcxZmQzYjNmOGU3MmMuLmViY2Q0ZTMwZTQ4MWY1YzcwYWVmODBk
YmY1NjQzYzAxYTQ4OGVkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzYy
LDYgKzM2Miw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNj
cmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOwog
CisgICAgdmlydHVhbCBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8gTWFrZXMgYSByZW5kZXJpbmcgdXBkYXRlIGhh
cHBlbiBzb29uLCB0eXBpY2FsbHkgaW4gdGhlIGN1cnJlbnQgcnVubG9vcC4KICAgICB2aXJ0dWFs
IHZvaWQgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpID0gMDsKICAgICAvLyBTY2hlZHVsZSBhIHJl
bmRlcmluZyB1cGRhdGUgdGhhdCBjb29yZGluYXRlcyB3aXRoIGRpc3BsYXkgcmVmcmVzaC4gUmV0
dXJucyB0cnVlIGlmIHNjaGVkdWxlZC4gKFRoaXMgaXMgb25seSB1c2VkIGJ5IFNWR0ltYWdlQ2hy
b21lQ2xpZW50LikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyLmNwcAppbmRleCA1MjZlNWVhNjk5ZDdlNjVkNDRiZDNlYzRiZWM1MTU1MDk2NGNmN2Iz
Li43NDMyNGY4ZGZhMjE2NGY1M2YyNjNkNGIyZGMyOWYyNzE4OTdmZjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCkBAIC0xMjYsNyAr
MTI2LDE1IEBAIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZp
cmVkKCkKICAgICB0cmFjZVBvaW50KFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUpOwogCiAgICAgY2xl
YXJTY2hlZHVsZWQoKTsKLSAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgCisgICAg
aWYgKG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5jYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKG1f
cmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMpKSB7CisgICAgICAgIHRyaWdnZXJSZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICAgICAgbV9yZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcyA9IDA7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbiBSZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKTogY291bGQgbm90IHRyaWdnZXJSZW5kZXJpbmdV
cGRhdGUoKSAlZFxuIiwgbV9yZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcyk7CisgICAgICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICsrbV9yZXNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlczsKKyAgICB9CiB9CiAKIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjp0cmln
Z2VyUmVuZGVyaW5nVXBkYXRlRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAppbmRleCA5YjUxYzcwNjBkOThlYmRmNjYzMTRjOGZj
ZmVkOTVmMGI3ZWZmOGU2Li5jNGE2MjBjZGU1MDAxODQ1YzBiNTk3OGYyMmExYmY4MzkyMTA5ZjVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgK
QEAgLTY3LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1f
cmVmcmVzaFRpbWVyOwogICAgIGJvb2wgbV91c2VUaW1lciB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3NjaGVkdWxlZCB7IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9yZXNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlcyB7IDAgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKaW5kZXggZTE2Y2I1ZDE1NzYyMTg2NTUwZjk1YmFhYTJmYjRlZThjYTM2
ZDZjZS4uNTAwMjZlN2I2YzBhMTk2ODU4OTE4ZjgzOTE3OWRjODY5NDc1Mzc1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTk4LDYgKzk4LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzcyhib29s
IGlzRW5hYmxlZCkgeyBtX2lzUmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcyA9IGlzRW5hYmxl
ZDsgfQogICAgIGJvb2wgcmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcygpIGNvbnN0IHsgcmV0
dXJuIG1faXNSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzOyB9CiAKKyAgICB2b2lkIHNldFJl
bmRlcmluZ1VwZGF0ZUZlbmNpbmdFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNSZW5kZXJp
bmdVcGRhdGVGZW5jaW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgcmVuZGVyaW5n
VXBkYXRlRmVuY2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVuZGVyaW5nVXBkYXRl
RmVuY2luZ0VuYWJsZWQ7IH0KKwogICAgIHZvaWQgc2V0U2VydmVyVGltaW5nRW5hYmxlZChib29s
IGlzRW5hYmxlZCkgeyBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAg
IGJvb2wgc2VydmVyVGltaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTZXJ2ZXJUaW1p
bmdFbmFibGVkOyB9CiAKQEAgLTI4Miw2ICsyODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9h
Y2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJp
YVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc1JlbmRlcmluZ1VwZGF0ZUZlbmNpbmdFbmFibGVkIHsgdHJ1
ZSB9OwogICAgIGJvb2wgbV9pc1Jlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2V4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDU3MGUxODliYTM3OWU0ZTMwOTg3YjQ2NTE3ZGNlMWFm
ZWFhY2U1MDUuLjM1ODE1Mzk1ODc5Zjk0NjNjNDdlODM0NTlhZDMwNjllZDJhNzQ5NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTE4OSw2ICsxODksOSBAQCBEaXNwbGF5TGlzdDo6UmVw
bGF5UmVzdWx0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN1Ym1pdChjb25zdCBEaXNwbGF5TGlz
dDo6RGlzcAogICAgIGlmIChkaXNwbGF5TGlzdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgY291bnRlciA9IDA7CisgICAgZnByaW50ZihzdGRl
cnIsICJJbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdWJtaXQoKTogJWRcbiIsICsrY291bnRl
cik7CisgICAgCiAgICAgRGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSogcmVwbGF5ZXJE
ZWxlZ2F0ZSA9IG51bGxwdHI7CiAgICAgaWYgKGRlc3RpbmF0aW9uLnJlbmRlcmluZ01vZGUoKSA9
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKICAgICAgICAgcmVwbGF5ZXJEZWxlZ2F0ZSA9
IHN0YXRpY19jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXIqPigmZGVzdGluYXRpb24p
OwpAQCAtNDczLDYgKzQ3NiwxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcgogICAgIHVwZGF0
ZVJlbmRlcmluZ1Jlc291cmNlUmVxdWVzdCgpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlVmVyc2lvbikKK3sKKyAgICBpZiAobV9wZW5kaW5nV2FrZXVwSW5mbyAmJiBtX3JlbW90
ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIobV9wZW5kaW5nV2FrZXVwSW5mby0+YXJn
dW1lbnRzLmRlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKKyAgICAgICAgd2FrZVVw
QW5kQXBwbHlEaXNwbGF5TGlzdChzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1dha2V1cEluZm8sIHN0
ZDo6bnVsbG9wdCktPmFyZ3VtZW50cyk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShmaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZVZlcnNpb24pLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKK30KKwog
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZShEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDczNDI3YTk2NGY3NDUxMjFiYWZh
MTE5ZWVmNGZlYjMzM2I0YzkzOTEuLjNhYjEzNGRiMWM3MjgxOGE5NDg1MWFiZmIyNmE0MTQ1NGUx
M2Y0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVs
ZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUodWludDY0X3QgcmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7CiAgICAgdm9pZCBkaWRDcmVh
dGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7CiAK
ICAgICBzdHJ1Y3QgUGVuZGluZ1dha2V1cEluZm9ybWF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggNGIzZmU5YTAyNjJlOGE1NDkxODUyYzZkNmEwNDA0
NWQ2YTY5NjM5Ny4uNDEwZDc1NDBjM2M3NjZlYjgwMjczNDAwYzhlNDc4NDNkYmRmMjgxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDcgQEAg
bWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB7CiAgICAgRGVsZXRlQWxsRm9udHMo
KQogICAgIERpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKICAgICBSZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKKyAgICBGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSh1aW50NjRfdCBmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZVZlcnNpb24pCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMDljZTRjNmVm
NmQ2YWJlNzFlMDNlYWI3ZmE4Y2QyMTRmZjY4YjBmZS4uYTU5YTAyNGNhMjU1MjNjMjZlNzY3MTNh
NTZkMjFlNTcxMjc1Nzg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtMTAyLDYgKzEwMiw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0CiAgICAgbV9n
ZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2dldFBpeGVsQnVm
ZmVyU2hhcmVkTWVtb3J5TGVuZ3RoID0gMDsKICAgICBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVt
b3J5ID0gbnVsbHB0cjsKKyAgICAKKyAgICBtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb24gPSAxOwor
ICAgIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uID0gMTsKIH0KIAogSVBDOjpDb25u
ZWN0aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgY29uc3QKQEAgLTI1Nyw2ICsyNjAsMTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWYK
ICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVtb3Rl
UmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OkZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKG1fcmVuZGVyaW5nVXBkYXRl
VmVyc2lvbiksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6
RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgICsrbV9y
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CkBA
IC0yNzcsNiArMjg3LDEyIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRG
bHVzaChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlCiAgICAgICAgIGltYWdl
QnVmZmVyLT5kaWRGbHVzaChmbHVzaElkZW50aWZpZXIpOwogfQogCit2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZmlu
YWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQoreworICAgIEFTU0VSVChmaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZVZlcnNpb24gPD0gbV9yZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKKyAgICBtX2Zp
bmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA9IHN0ZDo6bWluKGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlVmVyc2lvbiwgbV9yZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKK30KKwogdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndpbGxBcHBlbmRJdGVtKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBuZXdEZXN0aW5hdGlvbklkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1fY3VycmVu
dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyID09IG5ld0Rlc3RpbmF0aW9uSWRlbnRp
ZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDYzMTQ5Njcw
YTM1OTRlMjVhMmRhNWNkMTk3NjExNDYxYzYxNzk3NDAuLjZhYzA4NGM5ZDYzNjkyNzkwNmZiODAy
NjgxZDFkNDJlMjc0YzM0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aApAQCAtMTA2LDYgKzEwNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygp
OwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7Cisg
ICAgdWludDY0X3QgcmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbjsgfQorICAgIHVuc2lnbmVkIGRlbGF5ZWRSZW5kZXJpbmdVcGRh
dGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJpbmdVcGRhdGVWZXJzaW9uIC0gbV9maW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKwogICAgIGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJh
Y2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAgICAgICBSZWNlaXZlZEFueVJlc3BvbnNl
LAogICAgICAgICBUaW1lb3V0T3JJUENGYWlsdXJlCkBAIC0xMjgsNiArMTMyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGRpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGbHVzaChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZmlu
YWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKIAogICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdy
aXRlckhhbmRsZT4gbW9zdFJlY2VudGx5VXNlZERpc3BsYXlMaXN0SGFuZGxlKCk7CiAgICAgUmVm
UHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBmaW5kUmV1c2FibGVEaXNwbGF5TGlzdEhhbmRs
ZShzaXplX3QgY2FwYWNpdHkpOwpAQCAtMTQ4LDYgKzE1Myw5IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICB1aW50
NjRfdCBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5TGVuZ3RoIHsgMCB9OwogICAgIFdlYkNv
cmU6OlRpbWVyIG1fZGVzdHJveUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5VGltZXIgeyAqdGhp
cywgJlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVzdHJveUdldFBpeGVsQnVmZmVyU2hh
cmVkTWVtb3J5IH07CisKKyAgICB1aW50NjRfdCBtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAx
IH07CisgICAgdWludDY0X3QgbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAxIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2E1MzJkNWU0ZmY2MTZiZGIwN2Vk
ZTdhOWE4M2U5MzEzN2U3M2JmMS4uMWQ2N2ZjYjI4YjE1NzRmYTk4MzhkMjY4NDY5Y2NiMzU2ZDc4
MDZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBEaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQoV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAg
IERpZEZsdXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQorICAgIERpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90
IHJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggMDNmMzRiMzNhMjJk
ZDQ5MjhkNDI2MGU0Nzg2MmQzOTEzNzExMDFhZi4uOTAxNGI0NGIwMzE3ODM2NDJkYjY3ZThkY2Rj
NzFiYzVlMTYyMjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAt
MTA4LDggKzEwOCw4IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQo
Rm9udCYgZm9udCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfSk7CiAgICAgYXV0byYgbGFzdFZl
cnNpb24gPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwotICAgIGlmIChsYXN0VmVyc2lvbiAhPSBt
X2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKSB7Ci0gICAgICAgIGxhc3RWZXJzaW9uID0g
bV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKKyAgICBpZiAobGFzdFZlcnNpb24gIT0g
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpKSB7
CisgICAgICAgIGxhc3RWZXJzaW9uID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbigpOwogICAgICAgICArK21fbnVtYmVyT2ZGb250c1VzZWRJbkN1
cnJlbnRSZW5kZXJpbmdVcGRhdGU7CiAgICAgfQogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkK
QEAgLTEyNSwxMiArMTI1LDYgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVh
c2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnBy
ZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAgICArK21fY3VycmVudFJlbmRlcmlu
Z1VwZGF0ZVZlcnNpb247Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmlu
Z1VwZGF0ZSA9IDA7Ci19Ci0KIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjbGVhckZv
bnRNYXAoKQogewogICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwKQpAQCAtMTUwLDcgKzE0NCw3IEBAIHZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKCkKIAog
ICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB0b1JlbW92
ZTsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRl
VmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVw
Rm9udEFsaXZlKSB7CisgICAgICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5y
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uKCkgLSBpdGVtLnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdV
cGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkgewogICAgICAgICAgICAgdG9SZW1vdmUuYWRkKGl0
ZW0ua2V5KTsKICAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShpdGVtLmtleSk7CiAgICAgICAgIH0KQEAgLTE2MSwxMCArMTU1LDEw
IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZUZvckZvbnRzKCkKICAgICB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgZmluYWxpemVSZW5kZXJpbmdV
cGRhdGVGb3JGb250cygpOwotICAgIHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCk7Cisg
ICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiB9CiAK
IHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVz
dHJveWVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCmluZGV4IDZkNzMxYzRjYzVl
ZjZlZjMyYzI4MDI5YTViMDMyNDEzYTE1YTU4OTAuLjFjYjJiZmY5ODE0MDYyMWVmYjAzZDYwYTNh
NmI0MGYyMjAxNTRiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApAQCAtNTIs
NyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6Ok5h
dGl2ZUltYWdlJik7CiAKICAgICB2b2lkIGNhY2hlRm9udChXZWJDb3JlOjpGb250Jik7Ci0gICAg
dm9pZCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgIHZvaWQgZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGUoKTsKIAogICAgIHZvaWQgcmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ryb3ll
ZCgpOwogICAgIHZvaWQgcmVsZWFzZU1lbW9yeSgpOwpAQCAtNjMsNyArNjMsNiBAQCBwcml2YXRl
OgogICAgIAogICAgIHZvaWQgcmVsZWFzZU5hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZUZvckZvbnRzKCk7Ci0gICAgdm9pZCBwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgp
OwogICAgIHZvaWQgY2xlYXJGb250TWFwKCk7CiAKICAgICBJbWFnZUJ1ZmZlckhhc2hNYXAgbV9p
bWFnZUJ1ZmZlcnM7CkBAIC03MSw3ICs3MCw2IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgdWludDY0X3Q+IG1fZm9udElkZW50
aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwOwogICAgIHVuc2lnbmVkIG1fbnVt
YmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgeyAwIH07Ci0gICAgdWludDY0
X3QgbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKIAogICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzMDc3NmEwMGRiMDc0ZjJkMTk3ZDI3YTAwMDg5Mjky
YjU4ODA3ODU3Li5kMGNmMmViZTJlOGYxNjg4OWJkNmQwYWIzMzM3MmY1MjJkY2YyODE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTcyLDYgKzk3MiwxMSBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJp
bmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcGFnZS5jYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHJlc2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGVzKTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnRyaWdnZXJSZW5kZXJp
bmdVcGRhdGUoKQogewogICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCBjMTUxMmY5OTg3NWQ5OTcwNzQ1ZjYyYzY1ZjVkYjI5NTIxMTE1NTAzLi4xMTQ1
NDExNWZmY2FkNzcwZTYyYTVmMjhlZWMyZTk3MTlkYmJhNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0yMjcsNiArMjI3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwog
ICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb24oKSBmaW5hbDsKKyAgICBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWdu
ZWQgcmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3RO
b3RpZmljYXRpb24oY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVz
dWx0cyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBjZDQ0OGM1MzNiMDdmMDI5YmJiNjRiMWFkNDY4MmJjYTg2MTdiMDYyLi5iYTQz
NTYwNmZjNjFjMjlmZmRmMjQwMDY5MWJiNDI3YzBiNjJmY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDE1OSwxMiArNDE1OSwzMCBAQCB2
b2lkIFdlYlBhZ2U6OmRpZFVwZGF0ZVJlbmRlcmluZygpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRVcGRhdGVSZW5kZXJpbmdBZnRlckNvbW1pdHRpbmdMb2FkKCkpOwogfQog
Citib29sIFdlYlBhZ2U6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQgcmVzY2hl
ZHVsZVJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0Cit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlbmRlcmluZ1VwZGF0ZUZlbmNpbmdFbmFibGVkKCkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBt
YXhSZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcyA9IEZ1bGxTcGVlZEZyYW1lc1BlclNlY29uZDsK
KyAgICBpZiAocmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMgPj0gbWF4UmVzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4RGVsYXllZFJlbmRlcmluZ1Vw
ZGF0ZXMgPSAyOworICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKKyAgICAg
ICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5kZWxheWVkUmVuZGVyaW5n
VXBkYXRlcygpIDw9IG1heERlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShP
cHRpb25TZXQ8RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4gZmxhZ3MpCiB7CiAgICAgbV9w
YWdlLT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShmbGFncyk7CiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmRp
ZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzNjIzMzVmZGQ3ODUx
OGEyOGUyZmI3NjQ5ODM5ZTMyMDEwYzkyZGIzLi5kM2I1OWNmNzEwODVlMWRhOGJkOTRhZmU1NDdl
Yzg5MGM4ODQ0Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0zOTksNiArMzk5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsYXlvdXRJZk5lZWRl
ZCgpOwogICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKCk7CisgICAgYm9vbCBjYW5UcmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25zdDsK
ICAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKE9wdGlvblNldDxXZWJDb3JlOjpGaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZUZsYWdzPik7CiAKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoV1RG
OjpDcml0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQ0ZjQwNGZkZjViODkyNDI5MjI1MzRi
ODFhYjM3MjJjMTExNzFiMWUuLmM5NTQwM2Y2MmVmYzEzYmE3MWY1MDVmZDAyODZkZDUwYjYwZTgy
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODUsNiArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKKyAgICBib29sIGNhblRyaWdn
ZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKIAogICAgIENvbXBvc2l0
aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QgZmluYWwK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZGM4
ODkwNmEwNTI0MjUwYjc4MzBiZDg2YmUyMTU3Mzg1MjQ3ZWMzLi41N2M2ZDllOGMzYmEzZjRhMzk3
ZTE1MDJmNzQ3MThhNGY4MzcxMDk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMTcgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDdXJyZW50
IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBidXN5IGNv
bW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6OmRlZmF1bHRzKToKKwogMjAyMS0wNy0xNCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0ZXAgbmFtZSBhbmQgZGVzY3JpcHRpb24gdG8gSW5z
dGFsbEJ1aWx0UHJvZHVjdCBidWlsZCBzdGVwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlv
bnMuY3BwCmluZGV4IDIxMjZmM2NiOTY3NTBlOTIwNjgyZjk4MDU5Nzg3YzkxNGRkMzFmYjcuLjkw
M2Q4NzJkOTRjMzQ4NDkwZWRkN2RiNzAwNjcyNWViNWMxZGU5MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMjEsNiArMTIxLDcgQEAgY29uc3QgVGVzdEZlYXR1
cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFdFQkdMKQogICAgICAgICAgICAgeyAiVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxl
ZCIsIGZhbHNlIH0sCiAjZW5kaWYKKyAgICAgICAgICAgIHsgIlJlbmRlcmluZ1VwZGF0ZUZlbmNp
bmdFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICAgICAgZmVhdHVyZXMuc3RyaW5n
V2ViUHJlZmVyZW5jZUZlYXR1cmVzID0gewogICAgICAgICAgICAgeyAiQ3Vyc2l2ZUZvbnRGYW1p
bHkiLCAiQXBwbGUgQ2hhbmNlcnkiIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433746</attachid>
            <date>2021-07-18 02:07:14 -0700</date>
            <delta_ts>2021-07-18 23:35:08 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-227791-20210718020713.patch</filename>
            <type>text/plain</type>
            <size>25125</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM0YjRkMjVhYjcyM2I4NzNmNzRjZGY3
YTM2NDVmMTdhMDAzMTlhYzcuLjFjNjZjNzMxNDQ3MTkzZDVlN2RkNDUxOTk1NTczOGE5YjM2M2Mx
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDctMTcgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDdXJyZW50IFJlbmRlcmlu
Z1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBidXN5IGNvbW1pdHRpbmcg
cHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0wNy0xMyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0
ZSBhbmQgZml4IFVSTCBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDkxMjAxYWU0NmYyYzcwNmIz
ODIyYjBjYzQ2YjI3MmUwMDVjNTRiLi44N2JlNjAyYjYzODAxZjYzZDJlZTk5ZGQ3ZGM5MWFkNmEx
MjI2OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDctMTcgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBDdXJy
ZW50IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBidXN5
IGNvbW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8vNzg0
MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpj
YW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1JlbmRlcmlu
Z1VwZGF0ZVNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmg6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRSZW5kZXJp
bmdVcGRhdGVGZW5jaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpyZW5kZXJpbmdVcGRhdGVGZW5jaW5nRW5hYmxlZCBjb25zdCk6CisKIDIwMjEt
MDctMTQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVu
ZGVyRWxlbWVudDo6dXBkYXRlRmlsbEltYWdlcyBtdXN0IGZpeCB0aGUgY2xpZW50cyBvZiB0aGUg
Q1NTIGltYWdlIHdob3NlIFVSTCBpcyBpbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyYzhjYzg4ZmYwMjU1
MTJlYWY1NDdiZWZiMDUwMGJhZjZkZGMwYzEuLmRmY2QzZDc4MWRiM2Q1NmU2NDY3MGZhYmFlZjBi
NmE1YTAyZDUwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDctMTcgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBD
dXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBzaG91bGQgYmUgcmVzY2hlZHVsZWQgaWYgR1BVUCBpcyBi
dXN5IGNvbW1pdHRpbmcgcHJldmlvdXMgUmVuZGVyaW5nVXBkYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8v
Nzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdWJtaXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpyZW5kZXJpbmdVcGRhdGVWZXJzaW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVkUmVuZGVyaW5n
VXBkYXRlcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZv
bnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRyaWdnZXJS
ZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAyMS0wNy0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBQdXNoIE9TIHN0YXRlIGR1bXBpbmcgbG9naWMgZG93biBmcm9tIFdl
YlByb2Nlc3MgdG8gQXV4aWxpYXJ5UHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggMGZi
YjA2NTgzZGNhOWI4MWQ1NTViYTk2NTZkNTc3ZWU5MDEwMzRlMS4uNGEyMDlkZmVkYzVjMzRhMTUz
YzhhMDQ1ZTQxOGJlM2EyMGVkY2E2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC02MjEsNiAr
NjIxLDE2IEBAIFByZWZlclBhZ2VSZW5kZXJpbmdVcGRhdGVzTmVhcjYwRlBTRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitSZW5kZXJpbmdVcGRhdGVGZW5jaW5n
RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlByb3RlY3QgV2Vi
UHJvY2VzcyBmcm9tIHNsb3cgcmVuZGVyaW5nIGNvbW1pdCIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiUHJvdGVjdCBXZWJQcm9jZXNzIGZyb20gc2xvdyByZW5kZXJpbmcgY29tbWl0Igor
ICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBleHBvc2VkOiBbIFdl
YktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiB0cnVl
CisKIFJlc291cmNlTG9hZFNjaGVkdWxpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFu
UmVhZGFibGVOYW1lOiAiUmVzb3VyY2UgTG9hZCBTY2hlZHVsaW5nIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggYTg5NjhjOTQ0ZTRhMWFiYWNjOGMyZmQwM2I5NzFmZDNiM2Y4ZTcy
Yy4uZjdhOTY2YWJmNGNmZGY2ZmEyNzA4MWY4YTRmMWY1NDEyYTA3ODQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAgIC8vIHRo
ZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMg
dG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY2FuVHJpZ2dlclJl
bmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIE1h
a2VzIGEgcmVuZGVyaW5nIHVwZGF0ZSBoYXBwZW4gc29vbiwgdHlwaWNhbGx5IGluIHRoZSBjdXJy
ZW50IHJ1bmxvb3AuCiAgICAgdmlydHVhbCB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSA9
IDA7CiAgICAgLy8gU2NoZWR1bGUgYSByZW5kZXJpbmcgdXBkYXRlIHRoYXQgY29vcmRpbmF0ZXMg
d2l0aCBkaXNwbGF5IHJlZnJlc2guIFJldHVybnMgdHJ1ZSBpZiBzY2hlZHVsZWQuIChUaGlzIGlz
IG9ubHkgdXNlZCBieSBTVkdJbWFnZUNocm9tZUNsaWVudC4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKaW5kZXggNTI2ZTVlYTY5OWQ3ZTY1
ZDQ0YmQzZWM0YmVjNTE1NTA5NjRjZjdiMy4uNzA0Njc4OThiYWM5NmY5MTlmYjM2MzMwYjhhZjY4
NzllMDkzMDhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRl
U2NoZWR1bGVyLmNwcApAQCAtMTI2LDcgKzEyNiwxNCBAQCB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiAgICAgdHJhY2VQb2ludChUcmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKTsKIAogICAgIGNsZWFyU2NoZWR1bGVkKCk7Ci0gICAgdHJpZ2dlclJlbmRl
cmluZ1VwZGF0ZSgpOworICAgIAorICAgIGlmIChtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuY2Fu
VHJpZ2dlclJlbmRlcmluZ1VwZGF0ZShtX3Jlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSkgewor
ICAgICAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fcmVzY2hlZHVsZVJl
bmRlcmluZ1VwZGF0ZXMgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIHNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CisgICAgICAgICsrbV9yZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlczsKKyAg
ICB9CiB9CiAKIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjp0cmlnZ2VyUmVuZGVyaW5n
VXBkYXRlRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIuaAppbmRleCA5YjUxYzcwNjBkOThlYmRmNjYzMTRjOGZjZmVkOTVmMGI3ZWZm
OGU2Li5jNGE2MjBjZGU1MDAxODQ1YzBiNTk3OGYyMmExYmY4MzkyMTA5ZjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKQEAgLTY3LDYgKzY3
LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fcmVmcmVzaFRpbWVy
OwogICAgIGJvb2wgbV91c2VUaW1lciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3NjaGVkdWxlZCB7
IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9yZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcyB7IDAg
fTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKaW5kZXggZTE2Y2I1ZDE1NzYyMTg2NTUwZjk1YmFhYTJmYjRlZThjYTM2ZDZjZS4uNTAwMjZl
N2I2YzBhMTk2ODU4OTE4ZjgzOTE3OWRjODY5NDc1Mzc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTk4LDYgKzk4LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzcyhib29sIGlzRW5hYmxlZCkg
eyBtX2lzUmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcyA9IGlzRW5hYmxlZDsgfQogICAgIGJv
b2wgcmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXN0
cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzOyB9CiAKKyAgICB2b2lkIHNldFJlbmRlcmluZ1VwZGF0
ZUZlbmNpbmdFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNSZW5kZXJpbmdVcGRhdGVGZW5j
aW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgcmVuZGVyaW5nVXBkYXRlRmVuY2lu
Z0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVuZGVyaW5nVXBkYXRlRmVuY2luZ0VuYWJs
ZWQ7IH0KKwogICAgIHZvaWQgc2V0U2VydmVyVGltaW5nRW5hYmxlZChib29sIGlzRW5hYmxlZCkg
eyBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgc2VydmVy
VGltaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTZXJ2ZXJUaW1pbmdFbmFibGVkOyB9
CiAKQEAgLTI4Miw2ICsyODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5
T2JqZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rpb25F
bmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9pc1JlbmRlcmluZ1VwZGF0ZUZlbmNpbmdFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJv
b2wgbV9pc1Jlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3MgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2lzU2VydmVyVGltaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4cGVyaW1lbnRh
bFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCmluZGV4IDU3MGUxODliYTM3OWU0ZTMwOTg3YjQ2NTE3ZGNlMWFmZWFhY2U1MDUuLjkz
YTNlZTRjZmI1ZTQxMDNiNjI0YjA3NWFkZmJmODdiM2Y1MTczZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKQEAgLTQ3Myw2ICs0NzMsMTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHIKICAg
ICB1cGRhdGVSZW5kZXJpbmdSZXNvdXJjZVJlcXVlc3QoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSh1aW50NjRfdCBmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZVZlcnNpb24pCit7CisgICAgaWYgKG1fcGVuZGluZ1dha2V1cEluZm8gJiYg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKG1fcGVuZGluZ1dha2V1cElu
Zm8tPmFyZ3VtZW50cy5kZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllcikpCisgICAgICAg
IHdha2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpleGNoYW5nZShtX3BlbmRpbmdXYWtldXBJ
bmZvLCBzdGQ6Om51bGxvcHQpLT5hcmd1bWVudHMpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmluYWxp
emVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRlU2hhcmVkRGlzcGxh
eUxpc3RIYW5kbGUoRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA3MzQyN2E5NjRmNzQ1
MTIxYmFmYTExOWVlZjRmZWIzMzNiNGM5MzkxLi4zYWIxMzRkYjFjNzI4MThhOTQ4NTFhYmZiMjZh
NDE0NTRlMTNmNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTE0MCw2ICsxNDAsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2
b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlKHVpbnQ2NF90IHJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pOwogICAgIHZvaWQg
ZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1CdWZmZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZp
ZXIpOwogCiAgICAgc3RydWN0IFBlbmRpbmdXYWtldXBJbmZvcm1hdGlvbiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4IDRiM2ZlOWEwMjYyZThhNTQ5MTg1MmM2
ZDZhMDQwNDVkNmE2OTYzOTcuLjQxMGQ3NTQwYzNjNzY2ZWI4MDI3MzQwMGM4ZTQ3ODQzZGJkZjI4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0zNyw2ICsz
Nyw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgewogICAgIERlbGV0ZUFs
bEZvbnRzKCkKICAgICBEaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiAgICAgUmVsZWFzZVJlbW90ZVJl
c291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCisgICAgRmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZmlu
YWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDA5
Y2U0YzZlZjZkNmFiZTcxZTAzZWFiN2ZhOGNkMjE0ZmY2OGIwZmUuLmE1OWEwMjRjYTI1NTIzYzI2
ZTc2NzEzYTU2ZDIxZTU3MTI3NTc4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKQEAgLTEwMiw2ICsxMDIsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdAog
ICAgIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9nZXRQ
aXhlbEJ1ZmZlclNoYXJlZE1lbW9yeUxlbmd0aCA9IDA7CiAgICAgbV9nZXRQaXhlbEJ1ZmZlclNo
YXJlZE1lbW9yeSA9IG51bGxwdHI7CisgICAgCisgICAgbV9yZW5kZXJpbmdVcGRhdGVWZXJzaW9u
ID0gMTsKKyAgICBtX2ZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA9IDE7CiB9CiAKIElQ
Qzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGNvbnN0CkBAIC0yNTcsNiArMjYwLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFz
ZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmlu
Z1VwZGF0ZVZlcnNpb24pLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCBJUEM6OlNlbmRP
cHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAg
ICArK21fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwpAQCAtMjc3LDYgKzI4NywxMiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgICAg
ICBpbWFnZUJ1ZmZlci0+ZGlkRmx1c2goZmx1c2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2
NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbikKK3sKKyAgICBBU1NFUlQoZmluYWxp
emVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIDw9IG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7Cisg
ICAgbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gPSBzdGQ6Om1pbihmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZVZlcnNpb24sIG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7Cit9CisKIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3aWxsQXBwZW5kSXRlbShSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgbmV3RGVzdGluYXRpb25JZGVudGlmaWVyKQogewogICAgIGlmICht
X2N1cnJlbnREZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllciA9PSBuZXdEZXN0aW5hdGlv
bklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCA2
MzE0OTY3MGEzNTk0ZTI1YTJkYTVjZDE5NzYxMTQ2MWM2MTc5NzQwLi42YWMwODRjOWQ2MzY5Mjc5
MDZmYjgwMjY4MWQxZDQyZTI3NGMzNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgKQEAgLTEwNiw2ICsxMDYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQWxs
Rm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpOworICAgIHVpbnQ2NF90IHJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVuZGVy
aW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIG1f
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOyB9CisKICAgICBlbnVtIGNsYXNzIERpZFJl
Y2VpdmVCYWNrZW5kQ3JlYXRpb25SZXN1bHQgOiBib29sIHsKICAgICAgICAgUmVjZWl2ZWRBbnlS
ZXNwb25zZSwKICAgICAgICAgVGltZW91dE9ySVBDRmFpbHVyZQpAQCAtMTI4LDYgKzEzMiw3IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCBkaWRD
cmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmx1c2goV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2
NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7CiAKICAgICBSZWZQdHI8RGlzcGxh
eUxpc3RXcml0ZXJIYW5kbGU+IG1vc3RSZWNlbnRseVVzZWREaXNwbGF5TGlzdEhhbmRsZSgpOwog
ICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gZmluZFJldXNhYmxlRGlzcGxheUxp
c3RIYW5kbGUoc2l6ZV90IGNhcGFjaXR5KTsKQEAgLTE0OCw2ICsxNTMsOSBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CiAg
ICAgdWludDY0X3QgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeUxlbmd0aCB7IDAgfTsKICAg
ICBXZWJDb3JlOjpUaW1lciBtX2Rlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeVRpbWVy
IHsgKnRoaXMsICZSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlc3Ryb3lHZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeSB9OworCisgICAgdWludDY0X3QgbV9yZW5kZXJpbmdVcGRhdGVWZXJz
aW9uIHsgMSB9OworICAgIHVpbnQ2NF90IG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9u
IHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNhNTMyZDVlNGZmNjE2
YmRiMDdlZGU3YTlhODNlOTMxMzdlNzNiZjEuLjFkNjdmY2IyOGIxNTc0ZmE5ODM4ZDI2ODQ2OWNj
YjM1NmQ3ODA2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRGlkQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZs
dXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSh1
aW50NjRfdCByZW5kZXJpbmdVcGRhdGVWZXJzaW9uKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDAzZjM0
YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJkMzkxMzcxMTAxYWYuLjkwMTRiNDRiMDMxNzgzNjQyZGI2
N2U4ZGNkYzcxYmM1ZTE2MjI1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHAKQEAgLTEwOCw4ICsxMDgsOCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2Fj
aGVGb250KEZvbnQmIGZvbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0pOwogICAgIGF1dG8m
IGxhc3RWZXJzaW9uID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAobGFzdFZlcnNp
b24gIT0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbikgewotICAgICAgICBsYXN0VmVy
c2lvbiA9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgaWYgKGxhc3RWZXJz
aW9uICE9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZVZlcnNp
b24oKSkgeworICAgICAgICBsYXN0VmVyc2lvbiA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LnJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKTsKICAgICAgICAgKyttX251bWJlck9mRm9udHNV
c2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0KICAgICBpZiAocmVzdWx0LmlzTmV3
RW50cnkpCkBAIC0xMjUsMTIgKzEyNSw2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlCiAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpCi17Ci0gICAgKyttX2N1cnJlbnRS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uOwotICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRS
ZW5kZXJpbmdVcGRhdGUgPSAwOwotfQotCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Y2xlYXJGb250TWFwKCkKIHsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkKQEAgLTE1MCw3ICsxNDQsNyBAQCB2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250
cygpCiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4g
dG9SZW1vdmU7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsKLSAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmlu
Z1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3Vu
dFRvS2VlcEZvbnRBbGl2ZSkgeworICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkucmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVu
ZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKICAgICAgICAgICAgIHRvUmVtb3Zl
LmFkZChpdGVtLmtleSk7CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgICAgICB9CkBAIC0xNjEsMTAg
KzE1NSwxMCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGVGb3JGb250cygpCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCit2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIGZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRm9yRm9udHMoKTsKLSAgICBwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0
ZSgpOworICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAw
OwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNo
ZVdhc0Rlc3Ryb3llZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCA2ZDcz
MWM0Y2M1ZWY2ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkwLi4xY2IyYmZmOTgxNDA2MjFlZmIw
M2Q2MGEzYTZiNDBmMjIwMTU0YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
QEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShXZWJD
b3JlOjpOYXRpdmVJbWFnZSYpOwogCiAgICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYp
OwotICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJlbW90ZVJlc291cmNlQ2FjaGVXYXNE
ZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKQEAgLTYzLDcgKzYzLDYgQEAg
cHJpdmF0ZToKICAgICAKICAgICB2b2lkIHJlbGVhc2VOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogICAgIHZvaWQgZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVGb3JGb250cygpOwotICAgIHZvaWQgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdV
cGRhdGUoKTsKICAgICB2b2lkIGNsZWFyRm9udE1hcCgpOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNo
TWFwIG1faW1hZ2VCdWZmZXJzOwpAQCAtNzEsNyArNzAsNiBAQCBwcml2YXRlOgogCiAgICAgSGFz
aE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVpbnQ2NF90PiBtX2Zv
bnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcDsKICAgICB1bnNpZ25l
ZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlIHsgMCB9OwotICAg
IHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAxIH07CiAKICAgICBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMzA3NzZhMDBkYjA3NGYyZDE5N2QyN2Ew
MDA4OTI5MmI1ODgwNzg1Ny4uZDBjZjJlYmUyZThmMTY4ODliZDZkMGFiMzMzNzJmNTIyZGNmMjgx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk3Miw2ICs5NzIsMTEgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5UcmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25z
dAoreworICAgIHJldHVybiBtX3BhZ2UuY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZShyZXNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlcyk7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0cmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVhKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggYzE1MTJmOTk4NzVkOTk3MDc0NWY2MmM2NWY1ZGIyOTUyMTExNTUw
My4uMTE0NTQxMTVmZmNhZDc3MGU2MmE1ZjI4ZWVjMmU5NzE5ZGJiYTcwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMjI3LDYgKzIyNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdHRhY2hSb290
R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBm
aW5hbDsKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgZmluYWw7CisgICAgYm9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRl
KHVuc2lnbmVkIHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKIAogICAgIHZvaWQgY29udGVudFJ1
bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRSdWxl
TGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggY2Q0NDhjNTMzYjA3ZjAyOWJiYjY0YjFhZDQ2ODJiY2E4NjE3YjA2
Mi4uYmE0MzU2MDZmYzYxYzI5ZmZkZjI0MDA2OTFiYjQyN2MwYjYyZmNjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQxNTksMTIgKzQxNTks
MzAgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRhdGVSZW5kZXJpbmcoKQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlUmVuZGVyaW5nQWZ0ZXJDb21taXR0aW5nTG9hZCgp
KTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVk
IHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzKSBjb25zdAoreworICAgIGlmICghUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5yZW5kZXJpbmdVcGRhdGVGZW5jaW5nRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbWF4UmVzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZXMgPSBGdWxsU3BlZWRGcmFtZXNQZXJT
ZWNvbmQ7CisgICAgaWYgKHJlc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVzID49IG1heFJlc2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heERlbGF5ZWRSZW5k
ZXJpbmdVcGRhdGVzID0gMjsKKyAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
CisgICAgICAgIHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+ZGVsYXllZFJl
bmRlcmluZ1VwZGF0ZXMoKSA8PSBtYXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlczsKKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+IGZsYWdzKQogewog
ICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmxhZ3MpOwogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAg
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMzYyMzM1
ZmRkNzg1MThhMjhlMmZiNzY0OTgzOWUzMjAxMGM5MmRiMy4uZDNiNTljZjcxMDg1ZTFkYThiZDk0
YWZlNTQ3ZWM4OTBjODg0NGNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbGF5b3V0
SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZygpOworICAgIGJvb2wgY2FuVHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlcykg
Y29uc3Q7CiAgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8V2ViQ29y
ZTo6RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4pOwogCiAgICAgdm9pZCByZWxlYXNlTWVt
b3J5KFdURjo6Q3JpdGljYWwpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGFkYzg4OTA2YTA1MjQyNTBiNzgzMGJkODZiZTIxNTczODUyNDdlYzMu
LjU3YzZkOWU4YzNiYTNmNGEzOTdlMTUwMmY3NDcxOGE0ZjgzNzEwOTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wNy0xNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBb
R1BVIFByb2Nlc3NdIEN1cnJlbnQgUmVuZGVyaW5nVXBkYXRlIHNob3VsZCBiZSByZXNjaGVkdWxl
ZCBpZiBHUFVQIGlzIGJ1c3kgY29tbWl0dGluZyBwcmV2aW91cyBSZW5kZXJpbmdVcGRhdGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3OTEKKyAg
ICAgICAgPHJkYXI6Ly83ODQzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVmYXVsdHMpOgorCiAyMDIxLTA3LTE0ICBBYWthc2gg
SmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3RlcCBuYW1lIGFu
ZCBkZXNjcmlwdGlvbiB0byBJbnN0YWxsQnVpbHRQcm9kdWN0IGJ1aWxkIHN0ZXAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKaW5kZXggMjEyNmYzY2I5Njc1MGU5MjA2ODJmOTgw
NTk3ODdjOTE0ZGQzMWZiNy4uOTAzZDg3MmQ5NGMzNDg0OTBlZGQ3ZGI3MDA2NzI1ZWI1YzFkZTkx
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKQEAgLTEyMSw2ICsxMjEs
NyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCiAgICAgICAgICAgICB7ICJVc2VHUFVQ
cm9jZXNzRm9yV2ViR0xFbmFibGVkIiwgZmFsc2UgfSwKICNlbmRpZgorICAgICAgICAgICAgeyAi
UmVuZGVyaW5nVXBkYXRlRmVuY2luZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICB9OwogICAg
ICAgICBmZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMgPSB7CiAgICAgICAgICAg
ICB7ICJDdXJzaXZlRm9udEZhbWlseSIsICJBcHBsZSBDaGFuY2VyeSIgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433771</attachid>
            <date>2021-07-18 23:35:10 -0700</date>
            <delta_ts>2021-07-19 11:52:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210718233510.patch</filename>
            <type>text/plain</type>
            <size>26361</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM0YjRkMjVhYjcyM2I4NzNmNzRjZGY3
YTM2NDVmMTdhMDAzMTlhYzcuLjBjOTZkZWY1ZmRiMGVjNjJhN2FjN2I3OTZhZGU2ODNiNjcyZmMy
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDctMTggIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVndWxhdGUgdGhlIFdlYlBhZ2UgUmVuZGVyaW5n
VXBkYXRlcyBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3OTEKKyAgICAgICAgPHJk
YXI6Ly83ODQzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYW4gaW50ZXJuYWwgcHJlZmVyZW5jZSBmb3IgcmVndWxhdGluZyB0aGUgUmVu
ZGVyaW5nVXBkYXRlcyBmb3JtIAorICAgICAgICBXZWJQcm9jZXNzIHRvIEdQVVByb2Nlc3MgYW5k
IGRpc2FibGUgaXQgZm9yIFdlYktpdFRleHRSdW5uZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0wNy0xMyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0
ZSBhbmQgZml4IFVSTCBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDkxMjAxYWU0NmYyYzcwNmIz
ODIyYjBjYzQ2YjI3MmUwMDVjNTRiLi42M2VmZTM0ZWM2NWYxMzIzNDQwMmU5MDhhYjdjZDQ2Njk5
ZTFiNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDctMTggIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVndWxhdGUgdGhlIFdlYlBh
Z2UgUmVuZGVyaW5nVXBkYXRlcyBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3OTEK
KyAgICAgICAgPHJkYXI6Ly83ODQzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIENocm9tZUNsaWVudCBkZWNpZGUgd2hldGhlciBhIFJl
bmRlcmluZ1VwZGF0ZSBjYW4gYmUgdHJpZ2dlcmVkIG9yCisgICAgICAgIHJlc2NoZWR1bGVkLiBL
ZWVwIHRyYWNrIG9mIGhvdyBtYW55IHRpbWVzIFJlbmRlcmluZ1VwZGF0ZSB3YXMgcmVzY2hlZHVs
ZWQKKyAgICAgICAgdG8gZW5zdXJlIFJlbmRlcmluZ1VwZGF0ZSB3aWxsIGJlIHRyaWdnZXJlZCBh
bnl3YXkgYWZ0ZXIgYSBjZXJ0YWluIG51bWJlcgorICAgICAgICBvZiByZXNjaGVkdWxpbmcuCisK
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJp
bmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQpOgorICAgICAgICAqIHBhZ2Uv
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmg6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
ZXRSZW5kZXJpbmdVcGRhdGVSZWd1bGF0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6cmVuZGVyaW5nVXBkYXRlUmVndWxhdGVFbmFibGVkIGNvbnN0
KToKKwogMjAyMS0wNy0xNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW5kZXJFbGVtZW50Ojp1cGRhdGVGaWxsSW1hZ2VzIG11c3QgZml4IHRoZSBjbGll
bnRzIG9mIHRoZSBDU1MgaW1hZ2Ugd2hvc2UgVVJMIGlzIGludmFsaWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODJj
OGNjODhmZjAyNTUxMmVhZjU0N2JlZmIwNTAwYmFmNmRkYzBjMS4uMTA1MGFiZTNkN2EzOThlYjUz
MjFkOWI3OWVmYTY2NmFmNDcwNTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMS0w
Ny0xOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBSZWd1
bGF0ZSB0aGUgV2ViUGFnZSBSZW5kZXJpbmdVcGRhdGVzIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8g
dGhlIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzc5MQorICAgICAgICA8cmRhcjovLzc4NDMwNjM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIHdvcmtmbG93IHRv
IHJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXM6CisKKyAgICAgICAgLS0gV2Vi
UGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBjYWxscyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OgorICAgICAgICAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpLgorCisgICAg
ICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoKSBzZW5kcyBpdHMKKyAgICAgICAgICAgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9u
IHRvIEdQVVBQcm9jZXNzIGFuZCBhc2tzIGl0IHRvIHByb2Nlc3MKKyAgICAgICAgICAgYWxsIHRo
ZSBwZW5kaW5nIERpc3BsYXlMaXN0IGl0ZW1zLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKSBwcm9jZXNzZXMgYWxsIHRoZQorICAg
ICAgICAgICBwZW5kaW5nIGl0ZW1zIGFuZCBzZW5kcyB0aGUgcmVjZWl2ZWQgZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uCisgICAgICAgICAgIGJhY2sgdG8gV2ViUHJvY2Vzcy4KKworICAg
ICAgICAtLSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKCkgc3RvcmVzIHRoZSAKKyAgICAgICAgICAgcmVjZWl2ZWQgZGlkRmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZGVsYXllZFJlbmRlcmluZ1VwZGF0ZXMoKSByZXR1cm5zCisgICAgICAgICAgIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVy
c2lvbgorICAgICAgICAgICB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIHVuLXByb2Nlc3NlZCBmaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZSBieSBHUFVQLgorCisgICAgICAgIC0tIFdlYlBhZ2U6OmNhblRy
aWdnZXJSZW5kZXJpbmdVcGRhdGUoKSB1c2VzIGRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzKCkKKyAg
ICAgICAgICAgdG8gZGVjaWRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBj
YW4gYmUgdHJpZ2dlcmVkIG9yCisgICAgICAgICAgIHNob3VsZCBiZSByZXNjaGVkdWxlZC4KKwor
ICAgICAgICAtLSBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQo
KSBjYWxscyAKKyAgICAgICAgICAgV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgp
IHRocm91Z2ggdGhlIHBhZ2UgY2hyb21lIGNsaWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJp
bmdVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVsYXllZFJlbmRlcmluZ1Vw
ZGF0ZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRm9yRm9udHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJS
ZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBk
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjEt
MDctMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dLMl0gUHVzaCBPUyBzdGF0ZSBkdW1waW5nIGxvZ2ljIGRvd24gZnJvbSBXZWJQcm9jZXNzIHRv
IEF1eGlsaWFyeVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4IDBmYmIwNjU4M2RjYTli
ODFkNTU1YmE5NjU2ZDU3N2VlOTAxMDM0ZTEuLjE2ODExNTA3NDE5MWEyY2EzOTZiOWI1ZjhlYzIy
MjhiYjM1N2YzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjIxLDYgKzYyMSwxNyBAQCBQ
cmVmZXJQYWdlUmVuZGVyaW5nVXBkYXRlc05lYXI2MEZQU0VuYWJsZWQ6CiAgICAgV2ViQ29yZToK
ICAgICAgIGRlZmF1bHQ6IHRydWUKIAorUmVuZGVyaW5nVXBkYXRlUmVndWxhdGVFbmFibGVkOgor
ICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVuZGVyaW5nIFVwZGF0ZSBSZWd1
bGF0ZSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUmVndWxhdGUgdGhlIFdlYlBhZ2Ug
UmVuZGVyaW5nVXBkYXRlcyBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzIgor
ICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjb25kaXRpb246IEVO
QUJMRShHUFVfUFJPQ0VTUykKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6
CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorCiBSZXNvdXJjZUxvYWRTY2hlZHVs
aW5nRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlJlc291cmNl
IExvYWQgU2NoZWR1bGluZyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE4OTY4
Yzk0NGU0YTFhYmFjYzhjMmZkMDNiOTcxZmQzYjNmOGU3MmMuLmY3YTk2NmFiZjRjZmRmNmZhMjcw
ODFmOGE0ZjFmNTQxMmEwNzg0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MzYyLDYgKzM2Miw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhl
IHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgogICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAw
OwogCisgICAgdmlydHVhbCBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBNYWtlcyBhIHJlbmRlcmluZyB1cGRhdGUg
aGFwcGVuIHNvb24sIHR5cGljYWxseSBpbiB0aGUgY3VycmVudCBydW5sb29wLgogICAgIHZpcnR1
YWwgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgPSAwOwogICAgIC8vIFNjaGVkdWxlIGEg
cmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNvb3JkaW5hdGVzIHdpdGggZGlzcGxheSByZWZyZXNoLiBS
ZXR1cm5zIHRydWUgaWYgc2NoZWR1bGVkLiAoVGhpcyBpcyBvbmx5IHVzZWQgYnkgU1ZHSW1hZ2VD
aHJvbWVDbGllbnQuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdV
cGRhdGVTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXIuY3BwCmluZGV4IDUyNmU1ZWE2OTlkN2U2NWQ0NGJkM2VjNGJlYzUxNTUwOTY0Y2Y3
YjMuLjFjNjg5ZDM4YWM4OTRhMWRmZDEyNGUzYmMxMWE4YzExNzEwOWM0NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKQEAgLTEyNiw3
ICsxMjYsMTQgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNo
RmlyZWQoKQogICAgIHRyYWNlUG9pbnQoVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSk7CiAKICAgICBj
bGVhclNjaGVkdWxlZCgpOwotICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAKKyAg
ICBpZiAobV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUo
bV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMpKSB7CisgICAgICAgIHRyaWdnZXJSZW5kZXJp
bmdVcGRhdGUoKTsKKyAgICAgICAgbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMgPSAwOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAg
ICsrbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXM7CisgICAgfQogfQogCiB2b2lkIFJlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlcjo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZUZvclRlc3RpbmcoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKaW5kZXgg
OWI1MWM3MDYwZDk4ZWJkZjY2MzE0YzhmY2ZlZDk1ZjBiN2VmZjhlNi4uZTcyNWIxODJlZDY0NGFh
MzkxMzkzNmE3NDFlZjIxNGJjYzZiODA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX3JlZnJlc2hUaW1lcjsKICAgICBib29sIG1fdXNlVGlt
ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zY2hlZHVsZWQgeyBmYWxzZSB9OworICAgIHVuc2ln
bmVkIG1fcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVzIHsgMCB9OwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBlMTZjYjVkMTU3
NjIxODY1NTBmOTViYWFhMmZiNGVlOGNhMzZkNmNlLi5lMWNlNDk5NTY5ZWUxZjZjZjQ1YzJmOTI5
ZGUyOTY1YWQ4NjQwNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaApAQCAtOTgsNiArOTgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXN0cmlj
dGVkSFRUUFJlc3BvbnNlQWNjZXNzKGJvb2wgaXNFbmFibGVkKSB7IG1faXNSZXN0cmljdGVkSFRU
UFJlc3BvbnNlQWNjZXNzID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCByZXN0cmljdGVkSFRUUFJl
c3BvbnNlQWNjZXNzKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jlc3RyaWN0ZWRIVFRQUmVzcG9uc2VB
Y2Nlc3M7IH0KIAorICAgIHZvaWQgc2V0UmVuZGVyaW5nVXBkYXRlUmVndWxhdGVFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1faXNSZW5kZXJpbmdVcGRhdGVSZWd1bGF0ZUVuYWJsZWQgPSBpc0Vu
YWJsZWQ7IH0KKyAgICBib29sIHJlbmRlcmluZ1VwZGF0ZVJlZ3VsYXRlRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNSZW5kZXJpbmdVcGRhdGVSZWd1bGF0ZUVuYWJsZWQ7IH0KKwogICAgIHZv
aWQgc2V0U2VydmVyVGltaW5nRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzU2VydmVyVGlt
aW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgc2VydmVyVGltaW5nRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNTZXJ2ZXJUaW1pbmdFbmFibGVkOyB9CiAKQEAgLTI4Miw2ICsy
ODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlbmRl
cmluZ1VwZGF0ZVJlZ3VsYXRlRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNSZXN0cmlj
dGVkSFRUUFJlc3BvbnNlQWNjZXNzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1NlcnZlclRpbWlu
Z0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9leHBlcmltZW50YWxQbHVnSW5TYW5kYm94
UHJvZmlsZXNFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA1
NzBlMTg5YmEzNzllNGUzMDk4N2I0NjUxN2RjZTFhZmVhYWNlNTA1Li45M2EzZWU0Y2ZiNWU0MTAz
YjYyNGIwNzVhZGZiZjg3YjNmNTE3M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC00
NzMsNiArNDczLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90
ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByCiAgICAgdXBkYXRlUmVuZGVy
aW5nUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVW
ZXJzaW9uKQoreworICAgIGlmIChtX3BlbmRpbmdXYWtldXBJbmZvICYmIG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihtX3BlbmRpbmdXYWtldXBJbmZvLT5hcmd1bWVudHMu
ZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQorICAgICAgICB3YWtlVXBBbmRBcHBs
eURpc3BsYXlMaXN0KHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nV2FrZXVwSW5mbywgc3RkOjpudWxs
b3B0KS0+YXJndW1lbnRzKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKGZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlVmVyc2lvbiksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQorCiB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKERp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVz
dGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNzM0MjdhOTY0Zjc0NTEyMWJhZmExMTllZWY0
ZmViMzMzYjRjOTM5MS4uM2FiMTM0ZGIxYzcyODE4YTk0ODUxYWJmYjI2YTQxNDU0ZTEzZjQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0xNDAsNiArMTQwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxG
b250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSh1
aW50NjRfdCByZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKICAgICB2b2lkIGRpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKIAogICAgIHN0
cnVjdCBQZW5kaW5nV2FrZXVwSW5mb3JtYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgppbmRleCA0YjNmZTlhMDI2MmU4YTU0OTE4NTJjNmQ2YTA0MDQ1ZDZhNjk2
Mzk3Li40MTBkNzU0MGMzYzc2NmViODAyNzM0MDBjOGU0Nzg0M2RiZGYyODEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsNyBAQCBtZXNzYWdl
cyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBEZWxldGVBbGxGb250cygpCiAgICAg
RGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGlu
YXRpb25CdWZmZXJJZGVudGlmaWVyKQogICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KQorICAgIEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlVmVyc2lvbikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAwOWNlNGM2ZWY2ZDZhYmU3
MWUwM2VhYjdmYThjZDIxNGZmNjhiMGZlLi5iYjJiMzcyMWVjODgyZmExYmQ2NjU0YmNjYzE0MDZl
Mjg0ZDk0ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBA
IC0xMDIsNiArMTAyLDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3QKICAgICBtX2dldFBpeGVs
QnVmZmVyU2VtYXBob3JlID0gc3RkOjpudWxsb3B0OwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFy
ZWRNZW1vcnlMZW5ndGggPSAwOwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkgPSBu
dWxscHRyOworICAgIAorICAgIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uID0gMTsK
KyAgICBtX2RpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA9IDE7CiB9CiAKIElQQzo6
Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0CkBAIC0yNTcsNiArMjYwLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJl
bW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX2ZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbiksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQQzo6
U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsK
KyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgp
OworICAgICsrbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247Cit9CisKIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGltYWdlQnVmZmVyID0g
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKQEAgLTI3Nyw2ICsyODcsMTIgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1
c2hJZGUKICAgICAgICAgaW1hZ2VCdWZmZXItPmRpZEZsdXNoKGZsdXNoSWRlbnRpZmllcik7CiB9
CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmlu
Z1VwZGF0ZSh1aW50NjRfdCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pCit7Cisg
ICAgQVNTRVJUKGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA8PSBtX2ZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7CisgICAgbV9kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZVZlcnNpb24gPSBzdGQ6Om1pbihkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24sIG1f
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OndpbGxBcHBlbmRJdGVtKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBuZXdEZXN0aW5hdGlvbklkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1fY3VycmVudERlc3RpbmF0
aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyID09IG5ld0Rlc3RpbmF0aW9uSWRlbnRpZmllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDYzMTQ5NjcwYTM1OTRlMjVh
MmRhNWNkMTk3NjExNDYxYzYxNzk3NDAuLjNmZWExM2FhNjc5NDI4MTVhZTc2ZTRlODE5YTljYzBl
MDI0NTA4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtMTA2
LDYgKzEwNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZv
aWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgdWludDY0
X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9maW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVuZGVy
aW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uIC0gbV9kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKwogICAgIGVudW0g
Y2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAgICAgICBS
ZWNlaXZlZEFueVJlc3BvbnNlLAogICAgICAgICBUaW1lb3V0T3JJUENGYWlsdXJlCkBAIC0xMjgs
NiArMTMyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAg
ICB2b2lkIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRG
bHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGUodWludDY0X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKIAogICAgIFJl
ZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gbW9zdFJlY2VudGx5VXNlZERpc3BsYXlMaXN0
SGFuZGxlKCk7CiAgICAgUmVmUHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBmaW5kUmV1c2Fi
bGVEaXNwbGF5TGlzdEhhbmRsZShzaXplX3QgY2FwYWNpdHkpOwpAQCAtMTQ4LDYgKzE1Myw5IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJl
ZE1lbW9yeTsKICAgICB1aW50NjRfdCBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5TGVuZ3Ro
IHsgMCB9OwogICAgIFdlYkNvcmU6OlRpbWVyIG1fZGVzdHJveUdldFBpeGVsQnVmZmVyU2hhcmVk
TWVtb3J5VGltZXIgeyAqdGhpcywgJlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVzdHJv
eUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5IH07CisKKyAgICB1aW50NjRfdCBtX2ZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKKyAgICB1aW50NjRfdCBtX2RpZEZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bgppbmRleCAzYTUzMmQ1ZTRmZjYxNmJkYjA3ZWRlN2E5YTgzZTkzMTM3ZTczYmYxLi4xZDY3ZmNi
MjhiMTU3NGZhOTgzOGQyNjg0NjljY2IzNTZkNzgwNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAog
bWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewog
ICAgIERpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgRGlkRmx1c2goV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgRGlkRmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgcmVuZGVyaW5nVXBkYXRlVmVyc2lvbikKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcAppbmRleCAwM2YzNGIzM2EyMmRkNDkyOGQ0MjYwZTQ3ODYyZDM5MTM3MTEwMWFm
Li43MGIzY2EwNGZhZjc1ZGE4YzI4NTFkZjg0YTRiYjY0MTc2ZGQ5NTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBAIC0xMDgsOCArMTA4LDggQEAgdm9pZCBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udChGb250JiBmb250KQogICAgICAgICByZXR1cm4g
MDsKICAgICB9KTsKICAgICBhdXRvJiBsYXN0VmVyc2lvbiA9IHJlc3VsdC5pdGVyYXRvci0+dmFs
dWU7Ci0gICAgaWYgKGxhc3RWZXJzaW9uICE9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b24pIHsKLSAgICAgICAgbGFzdFZlcnNpb24gPSBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uOworICAgIGlmIChsYXN0VmVyc2lvbiAhPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKSkgeworICAgICAgICBsYXN0VmVyc2lv
biA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
VmVyc2lvbigpOwogICAgICAgICArK21fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJp
bmdVcGRhdGU7CiAgICAgfQogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKQEAgLTEyNyw3ICsx
MjcsNiBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdl
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKQogewotICAgICsrbV9jdXJy
ZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKICAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJy
ZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKIH0KIApAQCAtMTUwLDcgKzE0OSw3IEBAIHZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKCkK
IAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB0b1Jl
bW92ZTsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBk
YXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9L
ZWVwRm9udEFsaXZlKSB7CisgICAgICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24oKSAtIGl0ZW0udmFsdWUgPj0gbWluaW11
bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKSB7CiAgICAgICAgICAgICB0b1Jl
bW92ZS5hZGQoaXRlbS5rZXkpOwogICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKICAgICAgICAgfQpAQCAtMTYx
LDcgKzE2MCw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZUZvckZvbnRzKCkKICAgICB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3ZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwogICAgIHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBk
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCA2ZDczMWM0Y2M1ZWY2
ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkwLi43YTM4Yjc2OTkxM2Q1ODYxNmFkNWJjOGMwOTcz
NWE1MGM1OTRmZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRp
dmVJbWFnZSYpOwogCiAgICAgdm9pZCBjYWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwotICAgIHZv
aWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQo
KTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKQEAgLTcxLDcgKzcxLDYgQEAgcHJpdmF0ZToK
IAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50
NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXA7CiAg
ICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSB7
IDAgfTsKLSAgICB1aW50NjRfdCBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHsgMSB9
OwogCiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDMwNzc2YTAwZGIwNzRm
MmQxOTdkMjdhMDAwODkyOTJiNTg4MDc4NTcuLjFlNzhmZTE4NjZiMTJiNzg5NjBiOWZkZTg4YzJl
ZGMzMjcyMjA2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05NzIsNiArOTcyLDExIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0
aW9uKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6
Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1Vw
ZGF0ZXMpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jYW5UcmlnZ2VyUmVuZGVyaW5nVXBk
YXRlKHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlcyk7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojp0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdB
cmVhKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYzE1MTJmOTk4NzVkOTk3MDc0NWY2MmM2NWY1
ZGIyOTUyMTExNTUwMy4uNzkxMzA0YTMyZWYxNWQ1MmZlNzNhNzMzZTIyM2QzN2U1YWRkYzQxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjI3LDYgKzIyNyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNo
b3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CisgICAgYm9vbCBjYW5UcmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlcykgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAKICAgICB2
b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmLCBjb25zdCBXZWJDb3Jl
OjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGNkNDQ4YzUzM2IwN2YwMjliYmI2NGIxYWQ0
NjgyYmNhODYxN2IwNjIuLmY4MDhmN2JjZTE0YjZjOTMxZTM1MGQyZmY5ZWE0MmM1ODhkZGRkZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00
MTU5LDEyICs0MTU5LDI5IEBAIHZvaWQgV2ViUGFnZTo6ZGlkVXBkYXRlUmVuZGVyaW5nKCkKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFVwZGF0ZVJlbmRlcmluZ0FmdGVyQ29t
bWl0dGluZ0xvYWQoKSk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1Vw
ZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0Cit7CisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5yZW5kZXJpbmdVcGRhdGVSZWd1bGF0ZUVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFJlc2NoZWR1
bGVkUmVuZGVyaW5nVXBkYXRlcyA9IEZ1bGxTcGVlZEZyYW1lc1BlclNlY29uZDsKKyAgICBpZiAo
cmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVzID49IG1heFJlc2NoZWR1bGVkUmVuZGVyaW5nVXBk
YXRlcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG1heERlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzID0gMjsKKyAgICBpZiAobV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkgJiYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRlbGF5
ZWRSZW5kZXJpbmdVcGRhdGVzKCkgPiBtYXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlcykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2Vi
UGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlRmxhZ3M+IGZsYWdzKQogewogICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoZmxhZ3MpOwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgp
OworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggMzYyMzM1ZmRkNzg1MThhMjhlMmZiNzY0OTgzOWUzMjAxMGM5MmRi
My4uMjIxNGZmZThhZmQ4MDFkZDViMWFlNWUwN2UxZWM0M2E5ODQyNzRkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgbGF5b3V0SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRl
cmluZygpOworICAgIGJvb2wgY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNj
aGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0OwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OkZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+
KTsKIAogICAgIHZvaWQgcmVsZWFzZU1lbW9yeShXVEY6OkNyaXRpY2FsKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZGM4ODkwNmEwNTI0MjUw
Yjc4MzBiZDg2YmUyMTU3Mzg1MjQ3ZWMzLi4xMzQwYzNiMGJmYmE2YzlhNjZiZjJmZmZiN2FkY2Qw
MDJjNzdlNzNjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDctMTggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVndWxhdGUgdGhlIFdlYlBhZ2UgUmVuZGVyaW5nVXBk
YXRlcyBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3OTEKKyAgICAgICAgPHJkYXI6
Ly83ODQzMDYzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUdXJuIHRoZSBpbnRlcm5hbCBwcmVmZXJlbmNlIFJlbmRlcmluZ1VwZGF0ZVJlZ3VsYXRl
RW5hYmxlZCBvZmYgZm9yIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjpkZWZhdWx0cyk6CisKIDIwMjEtMDctMTQgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdGVwIG5hbWUgYW5kIGRlc2NyaXB0aW9uIHRvIElu
c3RhbGxCdWlsdFByb2R1Y3QgYnVpbGQgc3RlcApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRp
b25zLmNwcAppbmRleCAyMTI2ZjNjYjk2NzUwZTkyMDY4MmY5ODA1OTc4N2M5MTRkZDMxZmI3Li4z
ZWRhZDAzNmFmNDIxYjkyODIxMTE3ODk2NWU0NThhNjkxY2IxYzE1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcApAQCAtMTIxLDYgKzEyMSw3IEBAIGNvbnN0IFRlc3RGZWF0
dXJlcyYgVGVzdE9wdGlvbnM6OmRlZmF1bHRzKCkKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShXRUJHTCkKICAgICAgICAgICAgIHsgIlVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJs
ZWQiLCBmYWxzZSB9LAogI2VuZGlmCisgICAgICAgICAgICB7ICJSZW5kZXJpbmdVcGRhdGVSZWd1
bGF0ZUVuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgICAgICBmZWF0dXJlcy5zdHJp
bmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMgPSB7CiAgICAgICAgICAgICB7ICJDdXJzaXZlRm9udEZh
bWlseSIsICJBcHBsZSBDaGFuY2VyeSIgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433805</attachid>
            <date>2021-07-19 11:52:30 -0700</date>
            <delta_ts>2021-07-20 02:14:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210719115229.patch</filename>
            <type>text/plain</type>
            <size>21670</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5MTIwMWFlNDZmMmM3
MDZiMzgyMmIwY2M0NmIyNzJlMDA1YzU0Yi4uYjJiNTQ5OTMzZDI1YzFkNWUyNWEzZmEzMmU0NTU2
N2FhM2I4NTAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTE5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWVDbGllbnQgZGVjaWRlIHdoZXRoZXIg
YSBSZW5kZXJpbmdVcGRhdGUgY2FuIGJlIHRyaWdnZXJlZCBvcgorICAgICAgICByZXNjaGVkdWxl
ZC4gS2VlcCB0cmFjayBvZiBob3cgbWFueSB0aW1lcyBSZW5kZXJpbmdVcGRhdGUgd2FzIHJlc2No
ZWR1bGVkCisgICAgICAgIHRvIGVuc3VyZSBSZW5kZXJpbmdVcGRhdGUgd2lsbCBiZSB0cmlnZ2Vy
ZWQgYW55d2F5IGFmdGVyIGEgY2VydGFpbiBudW1iZXIKKyAgICAgICAgb2YgcmVzY2hlZHVsaW5n
LgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAgICAgICAgKiBw
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oOgorCiAyMDIxLTA3LTE0ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6OnVwZGF0
ZUZpbGxJbWFnZXMgbXVzdCBmaXggdGhlIGNsaWVudHMgb2YgdGhlIENTUyBpbWFnZSB3aG9zZSBV
UkwgaXMgaW52YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MmM4Y2M4OGZmMDI1NTEyZWFmNTQ3YmVmYjA1MDBi
YWY2ZGRjMGMxLi4xMDUwYWJlM2Q3YTM5OGViNTMyMWQ5Yjc5ZWZhNjY2YWY0NzA1N2MxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIxLTA3LTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmluZ1Vw
ZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFy
Oi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBpcyB0aGUgd29ya2Zsb3cgdG8gcmVndWxhdGUgdGhlIFdlYlBhZ2UgUmVuZGVy
aW5nVXBkYXRlczoKKworICAgICAgICAtLSBXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpIGNhbGxzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6CisgICAgICAgICAgIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpIHNlbmRzIGl0cworICAgICAgICAgICBm
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gdG8gR1BVUFByb2Nlc3MgYW5kIGFza3MgaXQg
dG8gcHJvY2VzcworICAgICAgICAgICBhbGwgdGhlIHBlbmRpbmcgRGlzcGxheUxpc3QgaXRlbXMu
CisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUpIHByb2Nlc3NlcyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgaXRlbXMgYW5kIHNl
bmRzIHRoZSByZWNlaXZlZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24KKyAgICAgICAg
ICAgYmFjayB0byBXZWJQcm9jZXNzLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzdG9yZXMgdGhlIAorICAgICAg
ICAgICByZWNlaXZlZCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24uCisKKyAgICAg
ICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVkUmVuZGVyaW5nVXBkYXRl
cygpIHJldHVybnMKKyAgICAgICAgICAgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIC0g
ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uCisgICAgICAgICAgIHdoaWNoIGlzIHRo
ZSBudW1iZXIgb2YgdW4tcHJvY2Vzc2VkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlIGJ5IEdQVVAu
CisKKyAgICAgICAgLS0gV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIHVzZXMg
ZGVsYXllZFJlbmRlcmluZ1VwZGF0ZXMoKQorICAgICAgICAgICB0byBkZWNpZGVzIHdoZXRoZXIg
dGhlIGN1cnJlbnQgUmVuZGVyaW5nVXBkYXRlIGNhbiBiZSB0cmlnZ2VyZWQgb3IKKyAgICAgICAg
ICAgc2hvdWxkIGJlIHJlc2NoZWR1bGVkLgorCisgICAgICAgIC0tIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpIGNhbGxzIAorICAgICAgICAgICBXZWJQYWdl
OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgdGhyb3VnaCB0aGUgcGFnZSBjaHJvbWUgY2xp
ZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxp
emVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xv
c2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGVWZXJzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpkZWxheWVkUmVuZGVyaW5nVXBkYXRlcyBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Y2FjaGVGb250KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpw
cmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNy0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBQdXNoIE9TIHN0YXRlIGR1bXBpbmcg
bG9naWMgZG93biBmcm9tIFdlYlByb2Nlc3MgdG8gQXV4aWxpYXJ5UHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYTg5NjhjOTQ0ZTRhMWFiYWNjOGMyZmQwM2I5NzFmZDNi
M2Y4ZTcyYy4uZjdhOTY2YWJmNGNmZGY2ZmEyNzA4MWY4YTRmMWY1NDEyYTA3ODQzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAg
IC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVw
ZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hv
dERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY2FuVHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IC8vIE1ha2VzIGEgcmVuZGVyaW5nIHVwZGF0ZSBoYXBwZW4gc29vbiwgdHlwaWNhbGx5IGluIHRo
ZSBjdXJyZW50IHJ1bmxvb3AuCiAgICAgdmlydHVhbCB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRh
dGUoKSA9IDA7CiAgICAgLy8gU2NoZWR1bGUgYSByZW5kZXJpbmcgdXBkYXRlIHRoYXQgY29vcmRp
bmF0ZXMgd2l0aCBkaXNwbGF5IHJlZnJlc2guIFJldHVybnMgdHJ1ZSBpZiBzY2hlZHVsZWQuIChU
aGlzIGlzIG9ubHkgdXNlZCBieSBTVkdJbWFnZUNocm9tZUNsaWVudC4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKaW5kZXggNTI2ZTVlYTY5
OWQ3ZTY1ZDQ0YmQzZWM0YmVjNTE1NTA5NjRjZjdiMy4uMWM2ODlkMzhhYzg5NGExZGZkMTI0ZTNi
YzExYThjMTE3MTA5YzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJp
bmdVcGRhdGVTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmNwcApAQCAtMTI2LDcgKzEyNiwxNCBAQCB2b2lkIFJlbmRlcmluZ1Vw
ZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiAgICAgdHJhY2VQb2ludChUcmln
Z2VyUmVuZGVyaW5nVXBkYXRlKTsKIAogICAgIGNsZWFyU2NoZWR1bGVkKCk7Ci0gICAgdHJpZ2dl
clJlbmRlcmluZ1VwZGF0ZSgpOworICAgIAorICAgIGlmIChtX3BhZ2UuY2hyb21lKCkuY2xpZW50
KCkuY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZShtX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRl
cykpIHsKKyAgICAgICAgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICBtX3Jlc2No
ZWR1bGVkUmVuZGVyaW5nVXBkYXRlcyA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgKyttX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBk
YXRlczsKKyAgICB9CiB9CiAKIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjp0cmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAppbmRleCA5YjUxYzcwNjBkOThlYmRmNjYzMTRjOGZjZmVk
OTVmMGI3ZWZmOGU2Li5lNzI1YjE4MmVkNjQ0YWEzOTEzOTM2YTc0MWVmMjE0YmNjNmI4MDg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKQEAg
LTY3LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fcmVm
cmVzaFRpbWVyOwogICAgIGJvb2wgbV91c2VUaW1lciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nj
aGVkdWxlZCB7IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1Vw
ZGF0ZXMgeyAwIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggNTcwZTE4
OWJhMzc5ZTRlMzA5ODdiNDY1MTdkY2UxYWZlYWFjZTUwNS4uOTNhM2VlNGNmYjVlNDEwM2I2MjRi
MDc1YWRmYmY4N2IzZjUxNzNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDczLDYg
KzQ3MywxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNv
dXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcgogICAgIHVwZGF0ZVJlbmRlcmluZ1Jl
c291cmNlUmVxdWVzdCgpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lv
bikKK3sKKyAgICBpZiAobV9wZW5kaW5nV2FrZXVwSW5mbyAmJiBtX3JlbW90ZVJlc291cmNlQ2Fj
aGUuY2FjaGVkSW1hZ2VCdWZmZXIobV9wZW5kaW5nV2FrZXVwSW5mby0+YXJndW1lbnRzLmRlc3Rp
bmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKKyAgICAgICAgd2FrZVVwQW5kQXBwbHlEaXNw
bGF5TGlzdChzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1dha2V1cEluZm8sIHN0ZDo6bnVsbG9wdCkt
PmFyZ3VtZW50cyk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZl
cnNpb24pLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShEaXNwbGF5
TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDczNDI3YTk2NGY3NDUxMjFiYWZhMTE5ZWVmNGZlYjMz
M2I0YzkzOTEuLjdmMTBjM2ZkMjAwZjhmOWQ4OWZmYjMxZWU2ZWViYzNiZmY3ZGY4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
YWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMo
KTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0
X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKICAgICB2b2lkIGRpZENyZWF0ZVNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRl
bnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKIAogICAg
IHN0cnVjdCBQZW5kaW5nV2FrZXVwSW5mb3JtYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgppbmRleCA0YjNmZTlhMDI2MmU4YTU0OTE4NTJjNmQ2YTA0MDQ1ZDZh
Njk2Mzk3Li40MTBkNzU0MGMzYzc2NmViODAyNzM0MDBjOGU0Nzg0M2RiZGYyODEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsNyBAQCBtZXNz
YWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBEZWxldGVBbGxGb250cygpCiAg
ICAgRGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVz
dGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgIEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHVpbnQ2NF90IGZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlVmVyc2lvbikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAwOWNlNGM2ZWY2ZDZh
YmU3MWUwM2VhYjdmYThjZDIxNGZmNjhiMGZlLi5iYjJiMzcyMWVjODgyZmExYmQ2NjU0YmNjYzE0
MDZlMjg0ZDk0ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
CkBAIC0xMDIsNiArMTAyLDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3QKICAgICBtX2dldFBp
eGVsQnVmZmVyU2VtYXBob3JlID0gc3RkOjpudWxsb3B0OwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJT
aGFyZWRNZW1vcnlMZW5ndGggPSAwOwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkg
PSBudWxscHRyOworICAgIAorICAgIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uID0g
MTsKKyAgICBtX2RpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA9IDE7CiB9CiAKIElQ
Qzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGNvbnN0CkBAIC0yNTcsNiArMjYwLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFz
ZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX2ZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpOworICAgICsrbV9maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247Cit9CisKIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQo
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGltYWdlQnVmZmVy
ID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTI3Nyw2ICsyODcsMTIgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIg
Zmx1c2hJZGUKICAgICAgICAgaW1hZ2VCdWZmZXItPmRpZEZsdXNoKGZsdXNoSWRlbnRpZmllcik7
CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZSh1aW50NjRfdCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pCit7
CisgICAgQVNTRVJUKGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA8PSBtX2ZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbik7CisgICAgbV9kaWRGaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZVZlcnNpb24gPSBzdGQ6Om1pbihkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb24s
IG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKK30KKwogdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OndpbGxBcHBlbmRJdGVtKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBuZXdEZXN0aW5hdGlvbklkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1fY3VycmVudERlc3Rp
bmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyID09IG5ld0Rlc3RpbmF0aW9uSWRlbnRpZmllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDYzMTQ5NjcwYTM1OTRl
MjVhMmRhNWNkMTk3NjExNDYxYzYxNzk3NDAuLjBiOWIyZGE0OGE1Mzc0ZTg4NGFiYjJlZmUxZGQy
Y2Y2MzhlNjUwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAt
MTA2LDYgKzEwNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAg
IHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7CiAKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgdWlu
dDY0X3QgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9m
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVu
ZGVyaW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmluYWxpemVSZW5kZXJpbmdVcGRhdGVW
ZXJzaW9uIC0gbV9kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZVZlcnNpb247IH0KKwogICAgIGVu
dW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAgICAg
ICBSZWNlaXZlZEFueVJlc3BvbnNlLAogICAgICAgICBUaW1lb3V0T3JJUENGYWlsdXJlCkBAIC0x
MjgsNiArMTMyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4K
ICAgICB2b2lkIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBk
aWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJp
bmdVcGRhdGUodWludDY0X3QgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKTsKIAog
ICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gbW9zdFJlY2VudGx5VXNlZERpc3Bs
YXlMaXN0SGFuZGxlKCk7CiAgICAgUmVmUHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBmaW5k
UmV1c2FibGVEaXNwbGF5TGlzdEhhbmRsZShzaXplX3QgY2FwYWNpdHkpOwpAQCAtMTQ4LDYgKzE1
Myw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZl
clNoYXJlZE1lbW9yeTsKICAgICB1aW50NjRfdCBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5
TGVuZ3RoIHsgMCB9OwogICAgIFdlYkNvcmU6OlRpbWVyIG1fZGVzdHJveUdldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5VGltZXIgeyAqdGhpcywgJlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZGVzdHJveUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5IH07CisKKyAgICB1aW50NjRfdCBtX2Zp
bmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKKyAgICB1aW50NjRfdCBtX2RpZEZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNz
YWdlcy5pbgppbmRleCAzYTUzMmQ1ZTRmZjYxNmJkYjA3ZWRlN2E5YTgzZTkzMTM3ZTczYmYxLi5k
YTMyZWQ3ZWQwZmU0NjFkZjNlMzQ2ZTVkNWRkNTA2YTg2MGZmNjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUs
NyBAQAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIERpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJLaXQ6OkltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgRGlkRmx1c2goV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
RGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUodWludDY0X3QgZGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGVWZXJzaW9uKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDAzZjM0YjMzYTIyZGQ0OTI4ZDQyNjBl
NDc4NjJkMzkxMzcxMTAxYWYuLjcwYjNjYTA0ZmFmNzVkYThjMjg1MWRmODRhNGJiNjQxNzZkZDk1
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEwOCw4ICsxMDgs
OCBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KEZvbnQmIGZvbnQp
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0pOwogICAgIGF1dG8mIGxhc3RWZXJzaW9uID0gcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAobGFzdFZlcnNpb24gIT0gbV9jdXJyZW50UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbikgewotICAgICAgICBsYXN0VmVyc2lvbiA9IG1fY3VycmVudFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgaWYgKGxhc3RWZXJzaW9uICE9IG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpKSB7Cisg
ICAgICAgIGxhc3RWZXJzaW9uID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuZmluYWxp
emVSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKCk7CiAgICAgICAgICsrbV9udW1iZXJPZkZvbnRzVXNl
ZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZTsKICAgICB9CiAgICAgaWYgKHJlc3VsdC5pc05ld0Vu
dHJ5KQpAQCAtMTI3LDcgKzEyNyw2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpy
ZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlCiAKIHZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgp
CiB7Ci0gICAgKyttX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOwogICAgIG1fbnVtYmVy
T2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOwogfQogCkBAIC0xNTAsNyAr
MTQ5LDcgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlRm9yRm9udHMoKQogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IHRvUmVtb3ZlOwogICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50
aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwKSB7Ci0gICAgICAgIGlmIChtX2N1
cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVy
aW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKKyAgICAgICAgaWYgKG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlVmVyc2lvbigpIC0gaXRl
bS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsK
ICAgICAgICAgICAgIHRvUmVtb3ZlLmFkZChpdGVtLmtleSk7CiAgICAgICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwog
ICAgICAgICB9CkBAIC0xNjEsNyArMTYwLDcgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMoKQogICAgIH0pOwogfQogCi12b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQor
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkK
IHsKICAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKCk7CiAgICAgcHJlcGFyZUZv
ck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCmlu
ZGV4IDZkNzMxYzRjYzVlZjZlZjMyYzI4MDI5YTViMDMyNDEzYTE1YTU4OTAuLjdhMzhiNzY5OTEz
ZDU4NjE2YWQ1YmM4YzA5NzM1YTUwYzU5NGZlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUlt
YWdlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7CiAKICAgICB2b2lkIGNhY2hlRm9udChXZWJDb3Jl
OjpGb250Jik7Ci0gICAgdm9pZCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgIHZv
aWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIHZvaWQgcmVtb3RlUmVzb3VyY2VD
YWNoZVdhc0Rlc3Ryb3llZCgpOwogICAgIHZvaWQgcmVsZWFzZU1lbW9yeSgpOwpAQCAtNzEsNyAr
NzEsNiBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIsIHVpbnQ2NF90PiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBk
YXRlVmVyc2lvbk1hcDsKICAgICB1bnNpZ25lZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50
UmVuZGVyaW5nVXBkYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1Vw
ZGF0ZVZlcnNpb24geyAxIH07CiAKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggMzA3NzZhMDBkYjA3NGYyZDE5N2QyN2EwMDA4OTI5MmI1ODgwNzg1Ny4uMWU3OGZlMTg2NmIx
MmI3ODk2MGI5ZmRlODhjMmVkYzMyNzIyMDYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTk3Miw2ICs5NzIsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wg
V2ViQ2hyb21lQ2xpZW50OjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2No
ZWR1bGVkUmVuZGVyaW5nVXBkYXRlcykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmNhblRy
aWdnZXJSZW5kZXJpbmdVcGRhdGUocmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVzKTsKK30KKwog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIGlm
IChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTUxMmY5OTg3
NWQ5OTcwNzQ1ZjYyYzY1ZjVkYjI5NTIxMTE1NTAzLi43OTEzMDRhMzJlZjE1ZDUyZmU3M2E3MzNl
MjIzZDM3ZTVhZGRjNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMjcsNiArMjI3LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgYXR0YWNoVmlld092
ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2
b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKKyAgICBi
b29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZWRSZW5kZXJp
bmdVcGRhdGVzKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUo
KSBmaW5hbDsKIAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVS
TCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2Q0NDhjNTMz
YjA3ZjAyOWJiYjY0YjFhZDQ2ODJiY2E4NjE3YjA2Mi4uMWI4YWQyODk2ZDcwZTI3MWFiYzIxMWUw
Mzg1ZDA5MjFmZWJkMzk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQxNTksMTIgKzQxNTksMjYgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRh
dGVSZW5kZXJpbmcoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRl
UmVuZGVyaW5nQWZ0ZXJDb21taXR0aW5nTG9hZCgpKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5U
cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRl
cykgY29uc3QKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBtYXhSZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMgPSBGdWxsU3BlZWRGcmFt
ZXNQZXJTZWNvbmQ7CisgICAgaWYgKHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlcyA+PSBtYXhS
ZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlcyA9IDI7
CisgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5ICYmIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5kZWxheWVkUmVuZGVyaW5nVXBkYXRlcygpID4gbWF4RGVsYXllZFJl
bmRlcmluZ1VwZGF0ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJldHVy
biB0cnVlOworfQorCiB2b2lkIFdlYlBhZ2U6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKE9wdGlv
blNldDxGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZsYWdzPiBmbGFncykKIHsKICAgICBtX3BhZ2Ut
PmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKGZsYWdzKTsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAgICAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuZGlkRmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHktPmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDM2MjMzNWZkZDc4NTE4YTI4
ZTJmYjc2NDk4MzllMzIwMTBjOTJkYjMuLjIyMTRmZmU4YWZkODAxZGQ1YjFhZTVlMDdlMWVjNDNh
OTg0Mjc0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTM5OSw2ICszOTksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGxheW91dElmTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVSZW5kZXJpbmcoKTsKKyAgICBib29sIGNhblRyaWdnZXJSZW5kZXJp
bmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVzKSBjb25zdDsKICAg
ICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKE9wdGlvblNldDxXZWJDb3JlOjpGaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZUZsYWdzPik7CiAKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoV1RGOjpD
cml0aWNhbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433861</attachid>
            <date>2021-07-20 02:14:18 -0700</date>
            <delta_ts>2021-07-21 20:26:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210720021417.patch</filename>
            <type>text/plain</type>
            <size>40776</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzIwN2NhNmNmZDcxMTc0
ZWJhNzFkNTg1MTk5MzRmMDcxOGFiMDZmMC4uNGRlN2I3OTkzMTdmNmU3YjViZmExZDg3OGY5MzNk
YzdjYzk1NGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWVDbGllbnQgZGVjaWRlIHdoZXRoZXIg
YSBSZW5kZXJpbmdVcGRhdGUgY2FuIGJlIHRyaWdnZXJlZCBvcgorICAgICAgICByZXNjaGVkdWxl
ZC4gS2VlcCB0cmFjayBvZiBob3cgbWFueSB0aW1lcyBSZW5kZXJpbmdVcGRhdGUgd2FzIHJlc2No
ZWR1bGVkCisgICAgICAgIHRvIGVuc3VyZSBSZW5kZXJpbmdVcGRhdGUgd2lsbCBiZSB0cmlnZ2Vy
ZWQgYW55d2F5IGFmdGVyIGEgY2VydGFpbiBudW1iZXIKKyAgICAgICAgb2YgcmVzY2hlZHVsaW5n
LgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAgICAgICAgKiBw
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oOgorCiAyMDIxLTA3LTE5ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBJREJUcmFuc2FjdGlv
bi5jb21taXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA0Y2RkYjIwZGJmZmI2YjkwOGM0ZmRkYTlkMDIwZGUzY2I0
OWU1NjUwLi44ODg3ZjQyODFlNzk0ODAzZjMxMGNhYzBjODZlNjc5NTk4OTM0OTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEwOCBAQAorMjAyMS0wNy0yMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KKworICAgICAgICBSZWd1bGF0ZSB0aGUgV2ViUGFnZSBSZW5kZXJpbmdVcGRh
dGVzIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc5MQorICAgICAgICA8cmRhcjov
Lzc4NDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgaXMgdGhlIHdvcmtmbG93IHRvIHJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmlu
Z1VwZGF0ZXM6CisKKyAgICAgICAgLS0gV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUo
KSBjYWxscyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OgorICAgICAgICAgICBmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZSgpLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzZW5kcyBpdHMKKyAgICAgICAgICAgcmVu
ZGVyaW5nVXBkYXRlSUQgdG8gR1BVUFByb2Nlc3MgYW5kIGFza3MgaXQgdG8gcHJvY2VzcyBhbGwg
dGhlCisgICAgICAgICAgIHBlbmRpbmcgRGlzcGxheUxpc3QgaXRlbXMuCisKKyAgICAgICAgLS0g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpIHByb2Nlc3Nl
cyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgaXRlbXMgYW5kIHNlbmRzIHRoZSByZWNlaXZl
ZCByZW5kZXJpbmdVcGRhdGVJRCBiYWNrIHRvIHRoZQorICAgICAgICAgICBXZWJQcm9jZXNzLgor
CisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVSZW5k
ZXJpbmdVcGRhdGUoKSBzdG9yZXMgdGhlIAorICAgICAgICAgICByZWNlaXZlZCBkaWRSZW5kZXJp
bmdVcGRhdGVJRC4KKworICAgICAgICAtLSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRl
bGF5ZWRSZW5kZXJpbmdVcGRhdGVzKCkgcmV0dXJucworICAgICAgICAgICAncmVuZGVyaW5nVXBk
YXRlSUQgLSBkaWRSZW5kZXJpbmdVcGRhdGVJRCcgd2hpY2ggaXMgdGhlIG51bWJlciBvZgorICAg
ICAgICAgICB1bi1wcm9jZXNzZWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUgYnkgR1BVUC4KKwor
ICAgICAgICAtLSBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgdXNlcyBkZWxh
eWVkUmVuZGVyaW5nVXBkYXRlcygpCisgICAgICAgICAgIHRvIGRlY2lkZXMgd2hldGhlciB0aGUg
Y3VycmVudCBSZW5kZXJpbmdVcGRhdGUgY2FuIGJlIHRyaWdnZXJlZCBvcgorICAgICAgICAgICBz
aG91bGQgYmUgcmVzY2hlZHVsZWQuCisKKyAgICAgICAgLS0gUmVuZGVyaW5nVXBkYXRlU2NoZWR1
bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKCkgY2FsbHMgCisgICAgICAgICAgIFdlYlBhZ2U6OmNh
blRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSB0aHJvdWdoIHRoZSBwYWdlIGNocm9tZSBjbGllbnQu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6
CisgICAgICAgICogU2hhcmVkL01vbm90b25pY09iamVjdElkZW50aWZpZXIuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdC9TaGFyZWQvVHJhbnNhY3Rpb25JRC5oLgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I+IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPD0gY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvciE9IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aW5jcmVtZW50
KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bmV4dCBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OnRvVUludDY0
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3Bl
cmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVyOjpoYXNoVGFibGVEZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppc1ZhbGlkSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIFNoYXJlZC9SZW5kZXJpbmdVcGRhdGVJ
RC5oOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvVHJhbnNhY3Rpb25JRC5oOgorICAgICAgICAo
V2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
cjo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRv
cj09IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcjo6b3BlcmF0b3I+IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I+PSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9w
ZXJhdG9yPD0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyOjpvcGVyYXRvciE9IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aW5jcmVtZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bmV4dCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OnRvVUludDY0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpoYXNoVGFibGVEZWxl
dGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjppc1ZhbGlkSWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Om9w
ZXJhdG9yPDwpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpyZW5kZXJpbmdVcGRhdGVJRCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVsYXllZFJlbmRlcmluZ1VwZGF0ZXMg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNsZWFyRm9udE1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGVGb3JGb250cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRl
cmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNy0x
OSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBUYXBwaW5nIGltYWdlcyBvbiB0d2l0dGVyLmNvbSBzaG91bGQgbm90IHRvZ2dsZSB0YWIgYmFy
IHZpc2liaWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQ4NjJiNmE3Nzlk
ZmVkODcxM2FmNDA1ZTkxZGNhZmVkNTJlZTk5ODEuLjdhYjQ1NzI5NjA5ZGUxOTcyZjllNDU0ZTgy
YWUzOTMxNGMxOWI0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzY0LDYg
KzM2NCw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVl
biBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOwogCisg
ICAgdmlydHVhbCBib29sIGNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBNYWtlcyBhIHJlbmRlcmluZyB1cGRhdGUgaGFwcGVu
IHNvb24sIHR5cGljYWxseSBpbiB0aGUgY3VycmVudCBydW5sb29wLgogICAgIHZpcnR1YWwgdm9p
ZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgPSAwOwogICAgIC8vIFNjaGVkdWxlIGEgcmVuZGVy
aW5nIHVwZGF0ZSB0aGF0IGNvb3JkaW5hdGVzIHdpdGggZGlzcGxheSByZWZyZXNoLiBSZXR1cm5z
IHRydWUgaWYgc2NoZWR1bGVkLiAoVGhpcyBpcyBvbmx5IHVzZWQgYnkgU1ZHSW1hZ2VDaHJvbWVD
bGllbnQuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuY3BwCmluZGV4IDUyNmU1ZWE2OTlkN2U2NWQ0NGJkM2VjNGJlYzUxNTUwOTY0Y2Y3YjMuLjdk
ODA4YTg4NGY1YWE3YzJhNjM0MjI4MzY2NmI0N2M5ZTkxNWI4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKQEAgLTEyNiw3ICsxMjYs
MTQgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQo
KQogICAgIHRyYWNlUG9pbnQoVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSk7CiAKICAgICBjbGVhclNj
aGVkdWxlZCgpOwotICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAKKyAgICBpZiAo
bV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUobV9yZXNj
aGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KSkgeworICAgICAgICB0cmlnZ2VyUmVuZGVyaW5n
VXBkYXRlKCk7CisgICAgICAgIG1fcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IDA7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAg
ICAgKyttX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQ7CisgICAgfQogfQogCiB2b2lk
IFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZUZvclRlc3Rp
bmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgK
aW5kZXggOWI1MWM3MDYwZDk4ZWJkZjY2MzE0YzhmY2ZlZDk1ZjBiN2VmZjhlNi4uYjJhYTBlNTU2
MmUwNzQ4MzM0M2U2NDgyZjk1YTdlNDY2NmI2N2ZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6
CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX3JlZnJl
c2hUaW1lcjsKKyAgICB1bnNpZ25lZCBtX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQg
eyAwIH07CiAgICAgYm9vbCBtX3VzZVRpbWVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2NoZWR1
bGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggYTVlZGY5MWE3
YjU0MmM1ZjZiZTcyNzgxMDI5ZDhkYTFjNmU2NTJjMi4uMTM5MDg4OTYxNjU4MzAxYzQwOTU5ODE5
ZDRmMjQzZjhmY2JkNjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNDkwLDYgKzQ5
MCwxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcgogICAgIHVwZGF0ZVJlbmRlcmluZ1Jlc291
cmNlUmVxdWVzdCgpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIHJlbmRlcmluZ1VwZGF0ZUlEKQorewor
ICAgIGlmIChtX3BlbmRpbmdXYWtldXBJbmZvICYmIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNo
ZWRJbWFnZUJ1ZmZlcihtX3BlbmRpbmdXYWtldXBJbmZvLT5hcmd1bWVudHMuZGVzdGluYXRpb25J
bWFnZUJ1ZmZlcklkZW50aWZpZXIpKQorICAgICAgICB3YWtlVXBBbmRBcHBseURpc3BsYXlMaXN0
KHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nV2FrZXVwSW5mbywgc3RkOjpudWxsb3B0KS0+YXJndW1l
bnRzKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRp
ZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHJlbmRlcmluZ1VwZGF0ZUlEKSwgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcik7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlk
Q3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBoYW5kbGUs
IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApp
bmRleCBhMzUxNjViMTkxMWY5YTkzZjNkNGE4ZGU5MWIxMDFmNzU2OWFiYjIyLi43ZGFjOWI1ZWY4
MjIwMDYxNzA3ZTQwMWMzNmQ1YTIxNTEzNTA1NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCIK
ICNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5oIgogI2luY2x1
ZGUgIlNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CkBAIC0xNDUs
NiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9u
dD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90
ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9p
ZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCk7CiAgICAgdm9pZCBk
aWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmll
cik7CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1dha2V1cEluZm9ybWF0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggNGIzZmU5YTAyNjJlOGE1NDkxODUyYzZk
NmEwNDA0NWQ2YTY5NjM5Ny4uOWJlOWQ5ZGRlOGRiOGM4NGIwMGQ5YjVkZWI5YmZiMmNiNjQxYTVk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3
LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB7CiAgICAgRGVsZXRlQWxs
Rm9udHMoKQogICAgIERpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKICAgICBSZWxlYXNlUmVtb3RlUmVz
b3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKKyAgICBGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShXZWJLaXQ6OlJlbmRl
cmluZ1VwZGF0ZUlEIHJlbmRlcmluZ1VwZGF0ZUlEKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXgg
NDYwOTk5ZWZmOWFmMzA1MGI3Yzc5ZTY1ZjI5ZTc0NjBkM2VmNmVjZC4uMTkwZGE2YWYyMGM2YmIx
YTk5ZmZiZWYyY2E4NmVlNzZjNDA3MzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CkBAIC0zMzQsNiArMzM0LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2Jl
X2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpSZW5kZXJpbmdVcGRhdGVJRCcsCiAgICAgICAgICdXZWJL
aXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRGVj
b2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllcics
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzVlMTZjNWVhNGU1NGE1MTczMjdhY2IwY2Q4ZDU5ZGY1ZTJiNmNhZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL01vbm90b25pY09iamVjdElkZW50
aWZpZXIuaApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJh
aXRzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciB7CitwdWJsaWM6CisgICAgTW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcigpID0gZGVmYXVsdDsKKworICAgIE1vbm90b25pY09iamVj
dElkZW50aWZpZXIoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1f
aWRlbnRpZmllcihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICB7IH0KKworICAgIGJvb2wg
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0g
aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNWYWxpZElkZW50aWZpZXIobV9pZGVudGlmaWVyKSk7CisgICAgICAgIGVuY29kZXIg
PDwgbV9pZGVudGlmaWVyOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGlk
ZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFp
ZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgQVNT
RVJUKGlzVmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyIHsgKmlkZW50aWZpZXIgfTsKKyAgICB9CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID09IG90aGVyLm1faWRlbnRpZmll
cjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIg
PiBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj49KGNvbnN0
IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1faWRlbnRpZmllciA+PSBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAg
Ym9vbCBvcGVyYXRvcjwoY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyIDwgb3RoZXIubV9pZGVudGlm
aWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZp
ZXIgPD0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2lkZW50aWZpZXIgIT0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKwor
ICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXImIGluY3JlbWVudCgpCisgICAgeworICAgICAg
ICArK21faWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIE1v
bm90b25pY09iamVjdElkZW50aWZpZXIgbmV4dCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcihtX2lkZW50aWZpZXIgKyAxKTsKKyAgICB9CisK
KyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
ICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KKworICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBTdHJpbmc6Om51bWJlcihtX2lkZW50aWZpZXIpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxV
PiBtYWtlTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCk7CisgICAgZnJpZW5kIHN0
cnVjdCBIYXNoVHJhaXRzPE1vbm90b25pY09iamVjdElkZW50aWZpZXI+OworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGZyaWVuZCBzdHJ1Y3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllckhhc2g7
CisKKyAgICBzdGF0aWMgdWludDY0X3QgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1cm4g
c3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNWYWxpZElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRpZmll
ciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorCisgICAgZXhwbGljaXQgTW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQorICAgICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50aWZp
ZXIgeyAwIH07Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxUPiYg
aWRlbnRpZmllcikKK3sKKyAgICB0cyA8PCBpZGVudGlmaWVyLnRvVUludDY0KCk7CisgICAgcmV0
dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbmRlcmluZ1VwZGF0ZUlELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW5kZXJpbmdVcGRhdGVJRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4MDUxZGY2NTE3NDI0NjMxN2QxYzhjNjA3
NmIyOTA3ZTYwYTBlMWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW5kZXJpbmdVcGRhdGVJRC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIk1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2VudW0gUmVuZGVyaW5nVXBkYXRlSURUeXBlIHsgfTsKK3VzaW5nIFJl
bmRlcmluZ1VwZGF0ZUlEID0gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxSZW5kZXJpbmdVcGRh
dGVJRFR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5z
YWN0aW9uSUQuaAppbmRleCA5YzFkMDU0NjNiNmU3NmYwODlhNGRkZTAzODRlNjczMGQwNTI3MmQ3
Li40MjliZDBlN2ZhZTEzZDc1YTdmNjU5MGY3Yjg5NmM4ODNlNWU3NzZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvVHJhbnNhY3Rpb25JRC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNSwxMTEgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKyNpbmNsdWRlICJNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyIHsKLXB1YmxpYzoKLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKCkg
PSBkZWZhdWx0OwotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcihXVEY6Okhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpKQotICAgIHsgfQotCi0gICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllciA9PSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllciht
X2lkZW50aWZpZXIpKTsKLSAgICAgICAgZW5jb2RlciA8PCBtX2lkZW50aWZpZXI7Ci0gICAgfQot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm90
b25pY09iamVjdElkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcjsKLSAgICAgICAgZGVjb2Rl
ciA+PiBpZGVudGlmaWVyOwotICAgICAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIoKmlk
ZW50aWZpZXIpKTsKLSAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeyAq
aWRlbnRpZmllciB9OwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2lkZW50aWZpZXIgPT0gb3RoZXIubV9pZGVudGlmaWVyOwotICAgIH0KLQotICAgIGJvb2wgb3Bl
cmF0b3I+KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA+IG90aGVyLm1faWRlbnRpZmllcjsKLSAg
ICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPj0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
ciYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID49IG90
aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPChjb25zdCBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBtX2lkZW50aWZpZXIgPCBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9vbCBv
cGVyYXRvcjw9KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA8PSBvdGhlci5tX2lkZW50aWZpZXI7
Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50
aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciAh
PSBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgaW5jcmVtZW50KCkKLSAgICB7Ci0gICAgICAgICsrbV9pZGVudGlmaWVyOwotICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciBu
ZXh0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyKG1faWRlbnRpZmllciArIDEpOwotICAgIH0KLQotICAgIHVpbnQ2NF90IHRvVUludDY0KCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9v
bCgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotCi0gICAgU3RyaW5nIGxvZ2dpbmdT
dHJpbmcoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1faWRl
bnRpZmllcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZy
aWVuZCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFU+IG1ha2VNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyKHVpbnQ2NF90KTsKLSAgICBmcmllbmQgc3RydWN0IEhhc2hUcmFpdHM8TW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcj47Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIHN0cnVj
dCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVySGFzaDsKLQotICAgIHN0YXRpYyB1aW50NjRfdCBo
YXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2
NF90Pjo6bWF4KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRpZmllcih1aW50NjRf
dCBpZGVudGlmaWVyKSB7IHJldHVybiBpZGVudGlmaWVyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpOyB9Ci0KLSAgICBleHBsaWNpdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90
IGlkZW50aWZpZXIpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgewot
ICAgIH0KLQotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKLX07Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFQ+JiBpZGVudGlmaWVyKQotewotICAgIHRzIDw8
IGlkZW50aWZpZXIudG9VSW50NjQoKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIGVudW0gVHJhbnNh
Y3Rpb25JRFR5cGUgeyB9OwogdXNpbmcgVHJhbnNhY3Rpb25JRCA9IE1vbm90b25pY09iamVjdElk
ZW50aWZpZXI8VHJhbnNhY3Rpb25JRFR5cGU+OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDIyNDYwNmNjNWUxNWQxODA4ZjU1OTMyMzYxNTk5MzRkOTcxYjJmOWIuLjczZWIwMjgyZmRhN2Zk
OTIyOWVkNGZiNWUxM2VjMDI2MmExMTVmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYwMyw2ICs0NjAzLDggQEAKIAkJNzFCQUE3
MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8qIFdL
TW9kZWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tN
b2RlbFZpZXcubW07IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcxRkI4MTBBMjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVk
TW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMDM0NDlCMjZBNkM0NzYw
MDBBNUY1NCAvKiBSZW5kZXJpbmdVcGRhdGVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdV
cGRhdGVJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhCRDdE
MDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjZENTZERDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90
ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxMSw2ICs2ODEzLDcgQEAKIAkJCQkyRDEw
ODc1RTFEMkM1NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuY3BwICovLAogCQkJCTJEMTA4
NzVGMUQyQzU3M0UwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5oICovLAogCQkJCTQ5OTE3REIw
MjUyRTMwNzUwMDUwMzEzRiAvKiBNZWRpYVBsYXliYWNrU3RhdGUuaCAqLywKKwkJCQk3MjAzNDQ5
QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oICovLAogCQkJ
CTJENTAzNjZBMUJDREUxNzkwMEUyMEJCMyAvKiBOYXRpdmVXZWJHZXN0dXJlRXZlbnQuaCAqLywK
IAkJCQlDMDJCRkYxNTEyNTE0RkQ4MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5o
ICovLAogCQkJCTMxRUEyNUQzMTM0Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50
LmggKi8sCkBAIC02ODMwLDYgKzY4MzMsNyBAQAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgz
OCAvKiBQcmludEluZm8uaCAqLywKIAkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8sCiAJCQkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8sCisJCQkJNzIwMzQ0OUIy
NkE2QzQ3NjAwMEE1RjU0IC8qIFJlbmRlcmluZ1VwZGF0ZUlELmggKi8sCiAJCQkJNUNCN0FGRTYy
M0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk1QzAwOTkzQjI0
MTdGQjdFMDBENTNDMjUgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCAqLywK
IAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMDljZTRjNmVmNmQ2YWJl
NzFlMDNlYWI3ZmE4Y2QyMTRmZjY4YjBmZS4uMWY1MzA3MGRlM2JhOTFlZmY4YjczMjgwYmJiOTg2
NGFiNWRjMWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApA
QCAtMTAyLDYgKzEwMiw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVQ
cm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0CiAgICAgbV9nZXRQaXhl
bEJ1ZmZlclNlbWFwaG9yZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2dldFBpeGVsQnVmZmVyU2hh
cmVkTWVtb3J5TGVuZ3RoID0gMDsKICAgICBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5ID0g
bnVsbHB0cjsKKyAgICAKKyAgICBtX3JlbmRlcmluZ1VwZGF0ZUlEID0geyB9OworICAgIG1fZGlk
UmVuZGVyaW5nVXBkYXRlSUQgPSB7IH07CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CkBAIC0y
NTcsNiArMjYwLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNl
UmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmCiAgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQQzo6
U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsK
IH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpG
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmluZ1VwZGF0ZUlEKSwgcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgbV9yZW5kZXJpbmdVcGRhdGVJRC5pbmNyZW1l
bnQoKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAg
IGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFn
ZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtMjc3LDYgKzI4NywxMiBA
QCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6
OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgICAgICBpbWFnZUJ1ZmZlci0+ZGlkRmx1c2go
Zmx1c2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRlcmlu
Z1VwZGF0ZUlEKQoreworICAgIEFTU0VSVChkaWRSZW5kZXJpbmdVcGRhdGVJRCA8PSBtX3JlbmRl
cmluZ1VwZGF0ZUlEKTsKKyAgICBtX2RpZFJlbmRlcmluZ1VwZGF0ZUlEID0gc3RkOjptaW4oZGlk
UmVuZGVyaW5nVXBkYXRlSUQsIG1fcmVuZGVyaW5nVXBkYXRlSUQpOworfQorCiB2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2lsbEFwcGVuZEl0ZW0oUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIG5ld0Rlc3RpbmF0aW9uSWRlbnRpZmllcikKIHsKICAgICBpZiAobV9jdXJyZW50
RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIgPT0gbmV3RGVzdGluYXRpb25JZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggNjMxNDk2NzBh
MzU5NGUyNWEyZGE1Y2QxOTc2MTE0NjFjNjE3OTc0MC4uODljMjYxZjdjMzg5MjY2YzA5ZGFlZjU1
NjdmMzllOGI3MmJhYTc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgog
I2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVuZGVy
aW5nVXBkYXRlSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RpbWVyLmg+CkBAIC0xMDYsNiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0
ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICBSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlSUQ7IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVu
ZGVyaW5nVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlSUQudG9VSW50
NjQoKSAtIG1fZGlkUmVuZGVyaW5nVXBkYXRlSUQudG9VSW50NjQoKTsgfQorCiAgICAgZW51bSBj
bGFzcyBEaWRSZWNlaXZlQmFja2VuZENyZWF0aW9uUmVzdWx0IDogYm9vbCB7CiAgICAgICAgIFJl
Y2VpdmVkQW55UmVzcG9uc2UsCiAgICAgICAgIFRpbWVvdXRPcklQQ0ZhaWx1cmUKQEAgLTEyOCw2
ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAg
IHZvaWQgZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZs
dXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCBkaWRSZW5kZXJpbmdVcGRhdGVJRCk7CiAKICAgICBSZWZQ
dHI8RGlzcGxheUxpc3RXcml0ZXJIYW5kbGU+IG1vc3RSZWNlbnRseVVzZWREaXNwbGF5TGlzdEhh
bmRsZSgpOwogICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gZmluZFJldXNhYmxl
RGlzcGxheUxpc3RIYW5kbGUoc2l6ZV90IGNhcGFjaXR5KTsKQEAgLTE0OCw2ICsxNTQsOSBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRN
ZW1vcnk7CiAgICAgdWludDY0X3QgbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeUxlbmd0aCB7
IDAgfTsKICAgICBXZWJDb3JlOjpUaW1lciBtX2Rlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1l
bW9yeVRpbWVyIHsgKnRoaXMsICZSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlc3Ryb3lH
ZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSB9OworCisgICAgUmVuZGVyaW5nVXBkYXRlSUQgbV9y
ZW5kZXJpbmdVcGRhdGVJRDsKKyAgICBSZW5kZXJpbmdVcGRhdGVJRCBtX2RpZFJlbmRlcmluZ1Vw
ZGF0ZUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNhNTMyZDVlNGZmNjE2
YmRiMDdlZGU3YTlhODNlOTMxMzdlNzNiZjEuLjQ2NzgzMDg5ZDM2MjVkOWUzNGNhNmFkYWMxOGQ2
MWQ4MGMwZDc4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRGlkQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZs
dXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShX
ZWJLaXQ6OlJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRlcmluZ1VwZGF0ZUlEKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwCmluZGV4IDAzZjM0YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJkMzkxMzcxMTAxYWYuLjg5MzRi
YTBiN2NiMTVjZTViYzFhZTYwMjczOGZjMjcxM2MyZDA1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEwNCwxNiArMTA0LDIwIEBAIHZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkKIAogdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udChGb250JiBmb250KQogewotICAg
IGF1dG8gcmVzdWx0ID0gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b25NYXAuZW5zdXJlKGZvbnQucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSB7Ci0g
ICAgICAgIHJldHVybiAwOworICAgIGF1dG8gcmVzdWx0ID0gbV9mb250SWRlbnRpZmllclRvTGFz
dFJlbmRlcmluZ1VwZGF0ZUlETWFwLmVuc3VyZShmb250LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcigpLCBbJl0geworICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkucmVuZGVyaW5nVXBkYXRlSUQoKTsKICAgICB9KTsKKwogICAgIGF1dG8mIGxhc3RWZXJzaW9u
ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAobGFzdFZlcnNpb24gIT0gbV9jdXJy
ZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbikgewotICAgICAgICBsYXN0VmVyc2lvbiA9IG1fY3Vy
cmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgaWYgKGxhc3RWZXJzaW9uICE9IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCkpIHsKKyAgICAgICAg
bGFzdFZlcnNpb24gPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdVcGRh
dGVJRCgpOwogICAgICAgICArK21fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdV
cGRhdGU7CiAgICAgfQotICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAKKyAgICBpZiAo
cmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY2FjaGVGb250KG1ha2VSZWYoZm9udCkpOworICAgICAgICArK21fbnVtYmVyT2ZGb250c1Vz
ZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGU7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC0xMjcsMTUgKzEzMSwxNCBAQCB2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKQogewotICAgICsrbV9jdXJyZW50UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbjsKICAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVy
aW5nVXBkYXRlID0gMDsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNsZWFy
Rm9udE1hcCgpCiB7Ci0gICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFz
dFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwKQogICAgICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwotICAg
IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7
CisgICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwLmNsZWFyKCk7
CiAgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiB9
CiAKQEAgLTE0MywyNSArMTQ2LDI2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpm
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKCkKIHsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSA9IDQ7
CiAKLSAgICB1bnNpZ25lZCB0b3RhbEZvbnRDb3VudCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnNpemUoKTsKKyAgICB1bnNpZ25lZCB0b3RhbEZvbnRD
b3VudCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcC5zaXplKCk7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmlu
Z1VwZGF0ZSA8PSB0b3RhbEZvbnRDb3VudCk7CiAgICAgaWYgKHRvdGFsRm9udENvdW50ID09IG1f
bnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB0
b1JlbW92ZTsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50
VG9LZWVwRm9udEFsaXZlKSB7CisgICAgYXV0byByZW5kZXJpbmdVcGRhdGVJRCA9IG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCk7CisgICAgZm9yIChhdXRv
JiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwKSB7Cisg
ICAgICAgIGlmIChyZW5kZXJpbmdVcGRhdGVJRC50b1VJbnQ2NCgpIC0gaXRlbS52YWx1ZS50b1VJ
bnQ2NCgpID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkgewog
ICAgICAgICAgICAgdG9SZW1vdmUuYWRkKGl0ZW0ua2V5KTsKICAgICAgICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShpdGVtLmtleSk7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBk
YXRlVmVyc2lvbk1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYgYnVja2V0KSB7CisgICAgbV9m
b250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwLnJlbW92ZUlmKFsmXShjb25z
dCBhdXRvJiBidWNrZXQpIHsKICAgICAgICAgcmV0dXJuIHRvUmVtb3ZlLmNvbnRhaW5zKGJ1Y2tl
dC5rZXkpOwogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlk
RmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZUZvckZvbnRzKCk7CiAgICAgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCmluZGV4IDZkNzMxYzRjYzVlZjZlZjMyYzI4MDI5YTVi
MDMyNDEzYTE1YTU4OTAuLjQ0NWMyNGRmNzQ3YjY1ZGFiNzk1ODE1OGRiYjJjNTY4NTRiYTY4NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlSUQuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAt
NTIsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKFdlYkNvcmU6
Ok5hdGl2ZUltYWdlJik7CiAKICAgICB2b2lkIGNhY2hlRm9udChXZWJDb3JlOjpGb250Jik7Ci0g
ICAgdm9pZCBkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgIHZvaWQgZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIHZvaWQgcmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ry
b3llZCgpOwogICAgIHZvaWQgcmVsZWFzZU1lbW9yeSgpOwpAQCAtNjksOSArNzAsOCBAQCBwcml2
YXRlOgogICAgIEltYWdlQnVmZmVySGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKICAgICBOYXRpdmVJ
bWFnZUhhc2hNYXAgbV9uYXRpdmVJbWFnZXM7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgdWludDY0X3Q+IG1fZm9udElkZW50aWZpZXJUb0xhc3RS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBSZW5kZXJpbmdVcGRhdGVJRD4gbV9mb250SWRlbnRpZmllclRv
TGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZGb250c1Vz
ZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9jdXJyZW50
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiB7IDEgfTsKIAogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCBiNDliNDM0N2ZkYTZjNzc1YWEyNWI2MmE0YzM3Y2I5YTQ0NDYyNWEzLi42
ZDljNTQzYzNiNDMyNjljYzgyZjVmZWY5OWI2NjFmNWQyMDc2ZDIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtOTc3LDYgKzk3NywxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5z
aWduZWQgcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVzKSBjb25zdAoreworICAgIHJldHVybiBt
X3BhZ2UuY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZShyZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0
ZXMpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgp
CiB7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IGM3NDdmOWMxYjljZTcxZTk1ZDhiMGJkMDY0MDI4NWVjMGJlM2Y2YzQuLjE0MWYwNWRhMTA3NWUw
NDVhZWZjOTFiNGMzYTg4NmYyNzZlOGJhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIyOSw2
ICsyMjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZp
bmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZp
bmFsOworICAgIGJvb2wgY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVk
dWxlZFJlbmRlcmluZ1VwZGF0ZXMpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdHJpZ2dlclJlbmRl
cmluZ1VwZGF0ZSgpIGZpbmFsOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRp
b24oY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAzOWEwNDJhZWZkOTg5MTE5NGM0YjFmNjU4ODQ0NWM5MzI4OGUxNzU3Li4yOWVmYzBkYzk2NDY4
YzI5MDIwOWY2YzUwZGFhMTVjZDhhNzhiYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDE2NywxMiArNDE2NywyNiBAQCB2b2lkIFdlYlBh
Z2U6OmRpZFVwZGF0ZVJlbmRlcmluZygpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRVcGRhdGVSZW5kZXJpbmdBZnRlckNvbW1pdHRpbmdMb2FkKCkpOwogfQogCitib29sIFdl
YlBhZ2U6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZWRSZW5k
ZXJpbmdVcGRhdGVzKSBjb25zdAoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlcyA9IEZ1
bGxTcGVlZEZyYW1lc1BlclNlY29uZDsKKyAgICBpZiAocmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRh
dGVzID49IG1heFJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlcykKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heERlbGF5ZWRSZW5kZXJpbmdV
cGRhdGVzID0gMjsKKyAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgJiYgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVzKCkgPiBt
YXhEZWxheWVkUmVuZGVyaW5nVXBkYXRlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+IGZsYWdzKQogewog
ICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmxhZ3MpOwogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAg
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDY1YjY4
NzY3OGZiNDAyNmVlYTFkNWY5MGM2ODFkZjBhZTczZWE4ZC4uYzg2OWQ4OWFiZDlhMGMxNThmMTdi
MGViNGM1OGI1OGNiMTQzYzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbGF5b3V0
SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZygpOworICAgIGJvb2wgY2FuVHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZXMp
IGNvbnN0OwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PFdlYkNv
cmU6OkZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+KTsKIAogICAgIHZvaWQgcmVsZWFzZU1l
bW9yeShXVEY6OkNyaXRpY2FsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433985</attachid>
            <date>2021-07-21 20:26:46 -0700</date>
            <delta_ts>2021-07-26 12:40:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210721202642.patch</filename>
            <type>text/plain</type>
            <size>41019</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU5NTcxZDZjZTliNjgz
NzU3YjZlMjYxNWFmMTlhYmI4MDZkYzQxMy4uZWFhYzcxNTBhMjIwZTlmZjQ5Mzk2MzllYzFiNjdj
YWM4MzFkYjI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTIxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWVDbGllbnQgZGVjaWRlIHdoZXRoZXIg
YSBSZW5kZXJpbmdVcGRhdGUgY2FuIGJlIHRyaWdnZXJlZCBvcgorICAgICAgICByZXNjaGVkdWxl
ZC4gS2VlcCB0cmFjayBvZiBob3cgbWFueSB0aW1lcyBSZW5kZXJpbmdVcGRhdGUgd2FzIHJlc2No
ZWR1bGVkCisgICAgICAgIHRvIGVuc3VyZSBSZW5kZXJpbmdVcGRhdGUgd2lsbCBiZSB0cmlnZ2Vy
ZWQgYW55d2F5IGFmdGVyIGEgY2VydGFpbiBudW1iZXIKKyAgICAgICAgb2YgcmVzY2hlZHVsaW5n
LgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAgICAgICAgKiBw
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oOgorCiAyMDIxLTA3LTIxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGxpbmtlZE9u
T3JBZnRlciBjaGVjayBmb3IgcjI2OTE2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxODc2MjU4NDI2MWJhYTllMzIy
ZTlhNzBjZjhkMmE2ZjA3YjA5MDk2Li44ZThlYzdmMzhiYTg3YjhmM2M2MTFkMGIyODZhMTM3OTIy
NjM4NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAyMS0wNy0yMSAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBSZWd1bGF0ZSB0aGUgV2ViUGFn
ZSBSZW5kZXJpbmdVcGRhdGVzIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIEdQVVByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc5MQor
ICAgICAgICA8cmRhcjovLzc4NDMwNjM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIHdvcmtmbG93IHRvIHJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXM6CisKKyAgICAgICAgLS0gV2ViUGFnZTo6ZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoKSBjYWxscyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OgorICAg
ICAgICAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpLgorCisgICAgICAgIC0tIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzZW5kcyBpdHMK
KyAgICAgICAgICAgcmVuZGVyaW5nVXBkYXRlSUQgdG8gR1BVUFByb2Nlc3MgYW5kIGFza3MgaXQg
dG8gcHJvY2VzcyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgRGlzcGxheUxpc3QgaXRlbXMu
CisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUpIHByb2Nlc3NlcyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgaXRlbXMgYW5kIHNl
bmRzIHRoZSByZWNlaXZlZCByZW5kZXJpbmdVcGRhdGVJRCBiYWNrIHRvIHRoZQorICAgICAgICAg
ICBXZWJQcm9jZXNzLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzdG9yZXMgdGhlIAorICAgICAgICAgICByZWNl
aXZlZCBkaWRSZW5kZXJpbmdVcGRhdGVJRC4KKworICAgICAgICAtLSBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCgpIHJldHVybnMKKyAgICAg
ICAgICAgJ3JlbmRlcmluZ1VwZGF0ZUlEIC0gZGlkUmVuZGVyaW5nVXBkYXRlSUQnIHdoaWNoIGlz
IHRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgdW4tcHJvY2Vzc2VkIGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlIGJ5IEdQVVAuCisKKyAgICAgICAgLS0gV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmlu
Z1VwZGF0ZSgpIHVzZXMgZGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KCkKKyAgICAgICAgICAg
dG8gZGVjaWRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBjYW4gYmUgdHJp
Z2dlcmVkIG9yCisgICAgICAgICAgIHNob3VsZCBiZSByZXNjaGVkdWxlZC4KKworICAgICAgICAt
LSBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKSBjYWxscyAK
KyAgICAgICAgICAgV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIHRocm91Z2gg
dGhlIHBhZ2UgY2hyb21lIGNsaWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnN1Ym1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBTaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgu
CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0
b3I8PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6
Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjppbmNyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjpuZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcjo6dG9VSW50NjQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVk
L1JlbmRlcmluZ1VwZGF0ZUlELmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9UcmFuc2FjdGlv
bklELmg6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90
b25pY09iamVjdElkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmVuY29kZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZp
ZXI6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElk
ZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6
b3BlcmF0b3I8IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yIT0gY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppbmNyZW1lbnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpu
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcjo6dG9VSW50NjQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvciBib29sIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZp
ZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbmRlcmluZ1VwZGF0ZUlEIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVk
UmVuZGVyaW5nVXBkYXRlQ291bnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRS
ZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNsZWFyRm9udE1hcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRy
aWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpm
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKwogMjAyMS0wNy0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1bm5pbmdCb2FyZCBraWxscyB0aGUgbmV0d29yayBwcm9jZXNzIGlmIGl0IGlz
IHN0aWxsIGhvbGRpbmcgdGhlICJob2xkaW5nIGxvY2tlZCBmaWxlIiBhc3NlcnRpb24gdXBvbiBz
dXNwZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0ODYyYjZhNzc5ZGZl
ZDg3MTNhZjQwNWU5MWRjYWZlZDUyZWU5OTgxLi43YWI0NTcyOTYwOWRlMTk3MmY5ZTQ1NGU4MmFl
MzkzMTRjMTliNDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM2NCw2ICsz
NjQsNyBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9uIHRoZSBzY3JlZW4g
aW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4KICAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpID0gMDsKIAorICAg
IHZpcnR1YWwgYm9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAgICAgLy8gTWFrZXMgYSByZW5kZXJpbmcgdXBkYXRlIGhhcHBlbiBz
b29uLCB0eXBpY2FsbHkgaW4gdGhlIGN1cnJlbnQgcnVubG9vcC4KICAgICB2aXJ0dWFsIHZvaWQg
dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpID0gMDsKICAgICAvLyBTY2hlZHVsZSBhIHJlbmRlcmlu
ZyB1cGRhdGUgdGhhdCBjb29yZGluYXRlcyB3aXRoIGRpc3BsYXkgcmVmcmVzaC4gUmV0dXJucyB0
cnVlIGlmIHNjaGVkdWxlZC4gKFRoaXMgaXMgb25seSB1c2VkIGJ5IFNWR0ltYWdlQ2hyb21lQ2xp
ZW50LikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVy
LmNwcAppbmRleCA1MjZlNWVhNjk5ZDdlNjVkNDRiZDNlYzRiZWM1MTU1MDk2NGNmN2IzLi43ZDgw
OGE4ODRmNWFhN2MyYTYzNDIyODM2NjZiNDdjOWU5MTViOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCkBAIC0xMjYsNyArMTI2LDE0
IEBAIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKCkK
ICAgICB0cmFjZVBvaW50KFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUpOwogCiAgICAgY2xlYXJTY2hl
ZHVsZWQoKTsKLSAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgCisgICAgaWYgKG1f
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5jYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKG1fcmVzY2hl
ZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCkpIHsKKyAgICAgICAgdHJpZ2dlclJlbmRlcmluZ1Vw
ZGF0ZSgpOworICAgICAgICBtX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQgPSAwOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAg
ICsrbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50OworICAgIH0KIH0KIAogdm9pZCBS
ZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0aW5n
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCmlu
ZGV4IDliNTFjNzA2MGQ5OGViZGY2NjMxNGM4ZmNmZWQ5NWYwYjdlZmY4ZTYuLmIyYWEwZTU1NjJl
MDc0ODMzNDNlNjQ4MmY5NWE3ZTQ2NjZiNjdmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaApAQCAtNjUsNiArNjUsNyBAQCBwcml2YXRlOgog
CiAgICAgUGFnZSYgbV9wYWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gbV9yZWZyZXNo
VGltZXI7CisgICAgdW5zaWduZWQgbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50IHsg
MCB9OwogICAgIGJvb2wgbV91c2VUaW1lciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3NjaGVkdWxl
ZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGE1ZWRmOTFhN2I1
NDJjNWY2YmU3Mjc4MTAyOWQ4ZGExYzZlNjUyYzIuLjEzOTA4ODk2MTY1ODMwMWM0MDk1OTgxOWQ0
ZjI0M2Y4ZmNiZDYzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTQ5MCw2ICs0OTAs
MTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHIKICAgICB1cGRhdGVSZW5kZXJpbmdSZXNvdXJj
ZVJlcXVlc3QoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCkKK3sKKyAg
ICBpZiAobV9wZW5kaW5nV2FrZXVwSW5mbyAmJiBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVk
SW1hZ2VCdWZmZXIobV9wZW5kaW5nV2FrZXVwSW5mby0+YXJndW1lbnRzLmRlc3RpbmF0aW9uSW1h
Z2VCdWZmZXJJZGVudGlmaWVyKSkKKyAgICAgICAgd2FrZVVwQW5kQXBwbHlEaXNwbGF5TGlzdChz
dGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1dha2V1cEluZm8sIHN0ZDo6bnVsbG9wdCktPmFyZ3VtZW50
cyk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpEaWRG
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShyZW5kZXJpbmdVcGRhdGVJRCksIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENy
ZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKERpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaGFuZGxlLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5k
ZXggYTM1MTY1YjE5MTFmOWE5M2YzZDRhOGRlOTFiMTAxZjc1NjlhYmIyMi4uN2RhYzliNWVmODIy
MDA2MTcwN2U0MDFjMzZkNWEyMTUxMzUwNTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmgiCiAj
aW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlSUQuaCIKICNpbmNsdWRl
ICJTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
b2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgpAQCAtMTQ1LDYg
KzE0Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+
JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVS
ZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQpOwogICAgIHZvaWQgZGlk
Q3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1C
dWZmZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIp
OwogCiAgICAgc3RydWN0IFBlbmRpbmdXYWtldXBJbmZvcm1hdGlvbiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCmluZGV4IDRiM2ZlOWEwMjYyZThhNTQ5MTg1MmM2ZDZh
MDQwNDVkNmE2OTYzOTcuLjliZTlkOWRkZThkYjhjODRiMDBkOWI1ZGViOWJmYjJjYjY0MWE1ZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw3
IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgewogICAgIERlbGV0ZUFsbEZv
bnRzKCkKICAgICBEaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiAgICAgUmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoV2ViS2l0OjpSZW5kZXJp
bmdVcGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDQ2
MDk5OWVmZjlhZjMwNTBiN2M3OWU2NWYyOWU3NDYwZDNlZjZlY2QuLjE5MGRhNmFmMjBjNmJiMWE5
OWZmYmVmMmNhODZlZTc2YzQwNzM4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMzM0LDYgKzMzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
JywKKyAgICAgICAgJ1dlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQnLAogICAgICAgICAnV2ViS2l0
OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29k
ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM1ZTE2YzVlYTRlNTRhNTE3MzI3YWNiMGNkOGQ1OWRmNWUyYjZjYWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeworcHVibGljOgorICAgIE1vbm90
b25pY09iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAgICAgOiBtX2lk
ZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgeyB9CisKKyAgICBib29sIGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IGhh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBlbmNvZGVyIDw8
IG1faWRlbnRpZmllcjsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVu
dGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgIGlmICghaWRl
bnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIEFTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcigqaWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllciB7ICppZGVudGlmaWVyIH07CisgICAgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA9PSBvdGhlci5tX2lkZW50aWZpZXI7
CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj4oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID4g
b3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2lkZW50aWZpZXIgPj0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA8IG90aGVyLm1faWRlbnRpZmll
cjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPD0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVy
IDw9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pZGVudGlmaWVyICE9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAg
ICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBpbmNyZW1lbnQoKQorICAgIHsKKyAgICAgICAg
KyttX2lkZW50aWZpZXI7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyIG5leHQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIobV9pZGVudGlmaWVyICsgMSk7CisgICAgfQorCisg
ICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gU3RyaW5nOjpudW1iZXIobV9pZGVudGlmaWVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VT4g
bWFrZU1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0X3QpOworICAgIGZyaWVuZCBzdHJ1
Y3QgSGFzaFRyYWl0czxNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPjsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXJIYXNoOwor
CisgICAgc3RhdGljIHVpbnQ2NF90IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorICAgIHN0YXRpYyBib29sIGlz
VmFsaWRJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIg
IT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIGV4cGxpY2l0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAgdWludDY0X3QgbV9pZGVudGlmaWVy
IHsgMCB9OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VD4mIGlk
ZW50aWZpZXIpCit7CisgICAgdHMgPDwgaWRlbnRpZmllci50b1VJbnQ2NCgpOworICAgIHJldHVy
biB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW5kZXJpbmdVcGRhdGVJRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVu
ZGVyaW5nVXBkYXRlSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODA1MWRmNjUxNzQyNDYzMTdkMWM4YzYwNzZi
MjkwN2U2MGEwZTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVu
ZGVyaW5nVXBkYXRlSUQuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitlbnVtIFJlbmRlcmluZ1VwZGF0ZUlEVHlwZSB7IH07Cit1c2luZyBSZW5k
ZXJpbmdVcGRhdGVJRCA9IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8UmVuZGVyaW5nVXBkYXRl
SURUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2Fj
dGlvbklELmgKaW5kZXggOWMxZDA1NDYzYjZlNzZmMDg5YTRkZGUwMzg0ZTY3MzBkMDUyNzJkNy4u
NGJkZWVlMDNhYjcyNzc3MDBjYTQyNTYwODA4OGI5NzNmNDliNmY3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvVHJhbnNhY3Rpb25JRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1RyYW5zYWN0aW9uSUQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNSwxMTEgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKyNpbmNsdWRlICJNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVyIHsKLXB1YmxpYzoKLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
KCkgPSBkZWZhdWx0OwotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcihXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGhhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpKQotICAgIHsgfQotCi0gICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllciA9PSBoYXNoVGFibGVEZWxldGVkVmFsdWUo
KTsgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmll
cihtX2lkZW50aWZpZXIpKTsKLSAgICAgICAgZW5jb2RlciA8PCBtX2lkZW50aWZpZXI7Ci0gICAg
fQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1v
bm90b25pY09iamVjdElkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsK
LSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcjsKLSAgICAgICAgZGVj
b2RlciA+PiBpZGVudGlmaWVyOwotICAgICAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIo
KmlkZW50aWZpZXIpKTsKLSAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIg
eyAqaWRlbnRpZmllciB9OwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBtX2lkZW50aWZpZXIgPT0gb3RoZXIubV9pZGVudGlmaWVyOwotICAgIH0KLQotICAgIGJvb2wg
b3BlcmF0b3I+KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA+IG90aGVyLm1faWRlbnRpZmllcjsK
LSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPj0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID49
IG90aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPChjb25zdCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBtX2lkZW50aWZpZXIgPCBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9v
bCBvcGVyYXRvcjw9KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA8PSBvdGhlci5tX2lkZW50aWZp
ZXI7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE1vbm90b25pY09iamVjdElk
ZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmll
ciAhPSBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllciYgaW5jcmVtZW50KCkKLSAgICB7Ci0gICAgICAgICsrbV9pZGVudGlmaWVyOwotICAg
ICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
ciBuZXh0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyKG1faWRlbnRpZmllciArIDEpOwotICAgIH0KLQotICAgIHVpbnQ2NF90IHRvVUludDY0
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotCi0gICAgU3RyaW5nIGxvZ2dp
bmdTdHJpbmcoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1f
aWRlbnRpZmllcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+
IGZyaWVuZCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFU+IG1ha2VNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyKHVpbnQ2NF90KTsKLSAgICBmcmllbmQgc3RydWN0IEhhc2hUcmFpdHM8TW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcj47Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIHN0
cnVjdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVySGFzaDsKLQotICAgIHN0YXRpYyB1aW50NjRf
dCBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVp
bnQ2NF90Pjo6bWF4KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRpZmllcih1aW50
NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBpZGVudGlmaWVyICE9IGhhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpOyB9Ci0KLSAgICBleHBsaWNpdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2
NF90IGlkZW50aWZpZXIpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAg
ewotICAgIH0KLQotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKLX07Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+Ci1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFQ+JiBpZGVudGlmaWVyKQotewotICAgIHRz
IDw8IGlkZW50aWZpZXIudG9VSW50NjQoKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIGVudW0gVHJh
bnNhY3Rpb25JRFR5cGUgeyB9OwogdXNpbmcgVHJhbnNhY3Rpb25JRCA9IE1vbm90b25pY09iamVj
dElkZW50aWZpZXI8VHJhbnNhY3Rpb25JRFR5cGU+OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDIyNDYwNmNjNWUxNWQxODA4ZjU1OTMyMzYxNTk5MzRkOTcxYjJmOWIuLjczZWIwMjgyZmRh
N2ZkOTIyOWVkNGZiNWUxM2VjMDI2MmExMTVmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYwMyw2ICs0NjAzLDggQEAKIAkJNzFC
QUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8q
IFdLTW9kZWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tNb2RlbFZpZXcubW07IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcxRkI4MTBBMjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxh
dGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMDM0NDlCMjZBNkM0
NzYwMDBBNUY1NCAvKiBSZW5kZXJpbmdVcGRhdGVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJp
bmdVcGRhdGVJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhC
RDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjZENTZERDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VD
YWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJl
bW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxMSw2ICs2ODEzLDcgQEAKIAkJCQky
RDEwODc1RTFEMkM1NzNFMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnMuY3BwICovLAogCQkJCTJE
MTA4NzVGMUQyQzU3M0UwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5oICovLAogCQkJCTQ5OTE3
REIwMjUyRTMwNzUwMDUwMzEzRiAvKiBNZWRpYVBsYXliYWNrU3RhdGUuaCAqLywKKwkJCQk3MjAz
NDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oICovLAog
CQkJCTJENTAzNjZBMUJDREUxNzkwMEUyMEJCMyAvKiBOYXRpdmVXZWJHZXN0dXJlRXZlbnQuaCAq
LywKIAkJCQlDMDJCRkYxNTEyNTE0RkQ4MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oICovLAogCQkJCTMxRUEyNUQzMTM0Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2
ZW50LmggKi8sCkBAIC02ODMwLDYgKzY4MzMsNyBAQAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYy
NTgzOCAvKiBQcmludEluZm8uaCAqLywKIAkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyog
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8sCiAJCQkJOUIxMjI5RDAyM0ZGMkE1RTAwOENB
NzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8sCisJCQkJNzIwMzQ0
OUIyNkE2QzQ3NjAwMEE1RjU0IC8qIFJlbmRlcmluZ1VwZGF0ZUlELmggKi8sCiAJCQkJNUNCN0FG
RTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk1QzAwOTkz
QjI0MTdGQjdFMDBENTNDMjUgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCAq
LywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMDljZTRjNmVmNmQ2
YWJlNzFlMDNlYWI3ZmE4Y2QyMTRmZjY4YjBmZS4uMWY1MzA3MGRlM2JhOTFlZmY4YjczMjgwYmJi
OTg2NGFiNWRjMWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cApAQCAtMTAyLDYgKzEwMiw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpn
cHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0CiAgICAgbV9nZXRQ
aXhlbEJ1ZmZlclNlbWFwaG9yZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5TGVuZ3RoID0gMDsKICAgICBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5
ID0gbnVsbHB0cjsKKyAgICAKKyAgICBtX3JlbmRlcmluZ1VwZGF0ZUlEID0geyB9OworICAgIG1f
ZGlkUmVuZGVyaW5nVXBkYXRlSUQgPSB7IH07CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CkBA
IC0yNTcsNiArMjYwLDEzIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxl
YXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmCiAgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmluZ1VwZGF0ZUlEKSwgcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVu
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgbV9yZW5kZXJpbmdVcGRhdGVJRC5pbmNy
ZW1lbnQoKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewog
ICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJ
bWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtMjc3LDYgKzI4Nywx
MiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxheUxp
c3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgICAgICBpbWFnZUJ1ZmZlci0+ZGlkRmx1
c2goZmx1c2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRl
cmluZ1VwZGF0ZUlEKQoreworICAgIEFTU0VSVChkaWRSZW5kZXJpbmdVcGRhdGVJRCA8PSBtX3Jl
bmRlcmluZ1VwZGF0ZUlEKTsKKyAgICBtX2RpZFJlbmRlcmluZ1VwZGF0ZUlEID0gc3RkOjptaW4o
ZGlkUmVuZGVyaW5nVXBkYXRlSUQsIG1fcmVuZGVyaW5nVXBkYXRlSUQpOworfQorCiB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2lsbEFwcGVuZEl0ZW0oUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIG5ld0Rlc3RpbmF0aW9uSWRlbnRpZmllcikKIHsKICAgICBpZiAobV9jdXJy
ZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIgPT0gbmV3RGVzdGluYXRpb25JZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggNjMxNDk2
NzBhMzU5NGUyNWEyZGE1Y2QxOTc2MTE0NjFjNjE3OTc0MC4uMGE4YjYwMmY1ZDcyNjVmMGQyYmMz
MWM5NDlhYzI3NjJmOWZkYjJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZENy
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
IgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVu
ZGVyaW5nVXBkYXRlSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CkBAIC0xMDYsNiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
bGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoKTsKKyAgICBSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlSUQ7IH0KKyAgICB1bnNpZ25lZCBkZWxheWVk
UmVuZGVyaW5nVXBkYXRlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmluZ1VwZGF0ZUlE
LnRvVUludDY0KCkgLSBtX2RpZFJlbmRlcmluZ1VwZGF0ZUlELnRvVUludDY0KCk7IH0KKwogICAg
IGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAg
ICAgICBSZWNlaXZlZEFueVJlc3BvbnNlLAogICAgICAgICBUaW1lb3V0T3JJUENGYWlsdXJlCkBA
IC0xMjgsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZl
ZC4KICAgICB2b2lkIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluYWxpemVSZW5k
ZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVuZGVyaW5nVXBkYXRlSUQpOwogCiAg
ICAgUmVmUHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBtb3N0UmVjZW50bHlVc2VkRGlzcGxh
eUxpc3RIYW5kbGUoKTsKICAgICBSZWZQdHI8RGlzcGxheUxpc3RXcml0ZXJIYW5kbGU+IGZpbmRS
ZXVzYWJsZURpc3BsYXlMaXN0SGFuZGxlKHNpemVfdCBjYXBhY2l0eSk7CkBAIC0xNDgsNiArMTU0
LDkgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5OwogICAgIHVpbnQ2NF90IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnlM
ZW5ndGggeyAwIH07CiAgICAgV2ViQ29yZTo6VGltZXIgbV9kZXN0cm95R2V0UGl4ZWxCdWZmZXJT
aGFyZWRNZW1vcnlUaW1lciB7ICp0aGlzLCAmUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpk
ZXN0cm95R2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkgfTsKKworICAgIFJlbmRlcmluZ1VwZGF0
ZUlEIG1fcmVuZGVyaW5nVXBkYXRlSUQ7CisgICAgUmVuZGVyaW5nVXBkYXRlSUQgbV9kaWRSZW5k
ZXJpbmdVcGRhdGVJRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzYTUzMmQ1
ZTRmZjYxNmJkYjA3ZWRlN2E5YTgzZTkzMTM3ZTczYmYxLi40Njc4MzA4OWQzNjI1ZDllMzRjYTZh
ZGFjMThkNjFkODBjMGQ3ODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCiAgICAgRGlkRmx1c2goV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgRGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoV2ViS2l0OjpSZW5kZXJpbmdVcGRhdGVJRCBkaWRSZW5kZXJpbmdVcGRhdGVJRCkKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcAppbmRleCAwM2YzNGIzM2EyMmRkNDkyOGQ0MjYwZTQ3ODYyZDM5MTM3MTEwMWFm
Li43YmMyNDkzNGJlNTRhNWM1MmNjMWVjODQxYTRiZDA3ZGY1YjgxYmVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBAIC0xMDQsMTYgKzEwNCwyMSBAQCB2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYgaW1hZ2Up
CiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uTWFwLmVuc3VyZShmb250LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBb
Jl0gewotICAgICAgICByZXR1cm4gMDsKKyAgICBhdXRvIHJlc3VsdCA9IG1fZm9udElkZW50aWZp
ZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCk7CiAgICAgfSk7CisKKyAgICBpZiAocmVzdWx0
LmlzTmV3RW50cnkpIHsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2Fj
aGVGb250KG1ha2VSZWYoZm9udCkpOworICAgICAgICArK21fbnVtYmVyT2ZGb250c1VzZWRJbkN1
cnJlbnRSZW5kZXJpbmdVcGRhdGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRv
JiBsYXN0VmVyc2lvbiA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Ci0gICAgaWYgKGxhc3RWZXJz
aW9uICE9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pIHsKLSAgICAgICAgbGFzdFZl
cnNpb24gPSBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOworICAgIGlmIChsYXN0VmVy
c2lvbiAhPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdVcGRhdGVJRCgp
KSB7CisgICAgICAgIGxhc3RWZXJzaW9uID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVuZGVyaW5nVXBkYXRlSUQoKTsKICAgICAgICAgKyttX251bWJlck9mRm9udHNVc2VkSW5DdXJy
ZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0KLSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVmKGZv
bnQpKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQpAQCAtMTI3LDE1ICsxMzIsMTQgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKIAogdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRl
KCkKIHsKLSAgICArK21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CiAgICAgbV9udW1i
ZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiB9CiAKIHZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjbGVhckZvbnRNYXAoKQogewotICAgIGZvciAoYXV0byYg
aXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwKQor
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVJRE1hcCkKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJl
bW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKLSAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbk1hcC5jbGVhcigpOworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RS
ZW5kZXJpbmdVcGRhdGVJRE1hcC5jbGVhcigpOwogICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1
cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOwogfQogCkBAIC0xNDMsMjUgKzE0NywyNiBAQCB2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250
cygpCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtUmVuZGVyaW5nVXBk
YXRlQ291bnRUb0tlZXBGb250QWxpdmUgPSA0OwogCi0gICAgdW5zaWduZWQgdG90YWxGb250Q291
bnQgPSBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5zaXpl
KCk7CisgICAgdW5zaWduZWQgdG90YWxGb250Q291bnQgPSBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0
UmVuZGVyaW5nVXBkYXRlSURNYXAuc2l6ZSgpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fbnVtYmVy
T2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPD0gdG90YWxGb250Q291bnQpOwog
ICAgIGlmICh0b3RhbEZvbnRDb3VudCA9PSBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVu
ZGVyaW5nVXBkYXRlKQogICAgICAgICByZXR1cm47CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gdG9SZW1vdmU7Ci0gICAgZm9yIChhdXRvJiBpdGVt
IDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsKLSAg
ICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49
IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkgeworICAgIGF1dG8g
cmVuZGVyaW5nVXBkYXRlSUQgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJp
bmdVcGRhdGVJRCgpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xh
c3RSZW5kZXJpbmdVcGRhdGVJRE1hcCkgeworICAgICAgICBpZiAocmVuZGVyaW5nVXBkYXRlSUQu
dG9VSW50NjQoKSAtIGl0ZW0udmFsdWUudG9VSW50NjQoKSA+PSBtaW5pbXVtUmVuZGVyaW5nVXBk
YXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKICAgICAgICAgICAgIHRvUmVtb3ZlLmFkZChpdGVt
LmtleSk7CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNl
UmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAucmVtb3ZlSWYoWyZdKGNv
bnN0IGF1dG8mIGJ1Y2tldCkgeworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdV
cGRhdGVJRE1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYgYnVja2V0KSB7CiAgICAgICAgIHJl
dHVybiB0b1JlbW92ZS5jb250YWlucyhidWNrZXQua2V5KTsKICAgICB9KTsKIH0KIAotdm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3Zv
aWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7
CiAgICAgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwogICAgIHByZXBhcmVGb3JO
ZXh0UmVuZGVyaW5nVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRl
eCA2ZDczMWM0Y2M1ZWY2ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkwLi40NDVjMjRkZjc0N2I2
NWRhYjc5NTgxNThkYmIyYzU2ODU0YmE2ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIlJlbmRlcmluZ1VwZGF0ZUlELmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpOwogCiAgICAgdm9pZCBj
YWNoZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwotICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lk
IHJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1v
cnkoKTsKQEAgLTY5LDkgKzcwLDggQEAgcHJpdmF0ZToKICAgICBJbWFnZUJ1ZmZlckhhc2hNYXAg
bV9pbWFnZUJ1ZmZlcnM7CiAgICAgTmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwog
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVpbnQ2
NF90PiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcDsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVuZGVyaW5n
VXBkYXRlSUQ+IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcDsKICAg
ICB1bnNpZ25lZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlIHsg
MCB9OwotICAgIHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAxIH07
CiAKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYjQ5YjQzNDdmZGE2Yzc3
NWFhMjViNjJhNGMzN2NiOWE0NDQ2MjVhMy4uY2ZmNTJkYTMxZmM5NjFhMmY2NjJhMzZjNDBlNjRh
MDYwNzAzMTBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk3Nyw2ICs5NzcsMTEgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpj
YW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBk
YXRlQ291bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jYW5UcmlnZ2VyUmVuZGVyaW5n
VXBkYXRlKHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQpOworfQorCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgaWYgKG1fcGFnZS5k
cmF3aW5nQXJlYSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGM3NDdmOWMxYjljZTcxZTk1ZDhi
MGJkMDY0MDI4NWVjMGJlM2Y2YzQuLjczZTEyNDgxNzQzZDRiMGM1YWE2ODhlZGNkZjU2MzNiOTEw
ZWYwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBo
aWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOworICAgIGJvb2wgY2FuVHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNv
dW50KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5h
bDsKIAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmE4OWZjMmJkOGI3ODIz
MGU0ZWY2ZGFmYjdiZWUyMGZhNjM2OWYwZS4uODMzM2EwYjI4NDRjMjA3MDkyOWM5ZjRiZTQ0MTcz
YWFhNDFlZDBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTQxNzIsMTIgKzQxNzIsMjYgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRhdGVSZW5k
ZXJpbmcoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlUmVuZGVy
aW5nQWZ0ZXJDb21taXR0aW5nTG9hZCgpKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5UcmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbWF4UmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IEZ1bGxTcGVlZEZy
YW1lc1BlclNlY29uZDsKKyAgICBpZiAocmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA+
PSBtYXhSZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4RGVsYXllZFJlbmRlcmluZ1Vw
ZGF0ZUNvdW50ID0gMjsKKyAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgJiYg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3Vu
dCgpID4gbWF4RGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBXZWJQYWdlOjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4g
ZmxhZ3MpCiB7CiAgICAgbV9wYWdlLT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShmbGFncyk7CiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eSgpLmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCAwMDQyMjc1ZjVhNmQ1OTYxNmEwZGRmMGU5YmUyOGU0OGMyYzBjMWFjLi4zNjgxNDM3YWQx
ZGU1ZDFjMzdlMmM3MWQ5NWM5YTE0ODIwZDJlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zOTksNiArMzk5LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBsYXlvdXRJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKCk7CisgICAg
Ym9vbCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVy
aW5nVXBkYXRlQ291bnQpIGNvbnN0OwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUo
T3B0aW9uU2V0PFdlYkNvcmU6OkZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+KTsKIAogICAg
IHZvaWQgcmVsZWFzZU1lbW9yeShXVEY6OkNyaXRpY2FsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434227</attachid>
            <date>2021-07-26 12:40:44 -0700</date>
            <delta_ts>2021-07-26 14:49:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210726124043.patch</filename>
            <type>text/plain</type>
            <size>41187</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJkZGIzZjNhMjJkMTgz
YTJjN2M3NDVhOGVlZGMyY2FkMDM4MzQwNC4uNTRhNTRkZmM0MGFlZGI5NjE5M2VkYjhmZDI3ZjEx
OWU3ZDhmYzk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTI2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWVDbGllbnQgZGVjaWRlIHdoZXRoZXIg
YSBSZW5kZXJpbmdVcGRhdGUgY2FuIGJlIHRyaWdnZXJlZCBvcgorICAgICAgICBzaG91bGQgYmUg
cmVzY2hlZHVsZWQuIEtlZXAgdHJhY2sgb2YgaG93IG1hbnkgdGltZXMgUmVuZGVyaW5nVXBkYXRl
IHdhcworICAgICAgICByZXNjaGVkdWxlZCB0byBlbnN1cmUgUmVuZGVyaW5nVXBkYXRlIHdpbGwg
YmUgdHJpZ2dlcmVkIGFueXdheSBhZnRlciBhCisgICAgICAgIGNlcnRhaW4gbnVtYmVyIG9mIHJl
c2NoZWR1bGluZy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgor
ICAgICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCk6Cisg
ICAgICAgICogcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaDoKKwogMjAyMS0wNy0yNiAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbGwgaG9t
ZSBzY3JlZW4gd2ViIGFwcHMgcmVzdW1lIHdoZW4gYW55IGhvbWUgc2NyZWVuIHdlYiBhcHAgaXMg
Zm9yZWdyb3VuZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzMDE4ODBlNDE2YTQxN2NiNTJjODcwNDljNDczNjNh
NDJmZDYzNzguLmE4MGJkZmE2OTIwZmY0YWU3MjA4Mzg4NTYyNDAzNjFiNDdhZDA0MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTA5IEBACisyMDIxLTA3LTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmluZ1Vw
ZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFy
Oi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBpcyB0aGUgd29ya2Zsb3cgdG8gcmVndWxhdGUgdGhlIFdlYlBhZ2UgUmVuZGVy
aW5nVXBkYXRlczoKKworICAgICAgICAtLSBXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpIGNhbGxzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6CisgICAgICAgICAgIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCkuCisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpIHNlbmRzIGl0cworICAgICAgICAgICBy
ZW5kZXJpbmdVcGRhdGVJRCB0byBHUFVQUHJvY2VzcyBhbmQgYXNrcyBpdCB0byBwcm9jZXNzIGFs
bCB0aGUKKyAgICAgICAgICAgcGVuZGluZyBEaXNwbGF5TGlzdCBpdGVtcy4KKworICAgICAgICAt
LSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSkgcHJvY2Vz
c2VzIGFsbCB0aGUKKyAgICAgICAgICAgcGVuZGluZyBpdGVtcyBhbmQgc2VuZHMgdGhlIHJlY2Vp
dmVkIHJlbmRlcmluZ1VwZGF0ZUlEIGJhY2sgdG8gdGhlCisgICAgICAgICAgIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSgpIHN0b3JlcyB0aGUgCisgICAgICAgICAgIHJlY2VpdmVkIGRpZFJlbmRl
cmluZ1VwZGF0ZUlELgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KCkgcmV0dXJucworICAgICAgICAgICAncmVuZGVy
aW5nVXBkYXRlSUQgLSBkaWRSZW5kZXJpbmdVcGRhdGVJRCcgd2hpY2ggaXMgdGhlIG51bWJlciBv
ZgorICAgICAgICAgICB1bi1wcm9jZXNzZWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUgYnkgR1BV
UC4KKworICAgICAgICAtLSBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgdXNl
cyBkZWxheWVkUmVuZGVyaW5nVXBkYXRlQ291bnQoKQorICAgICAgICAgICB0byBkZWNpZGVzIHdo
ZXRoZXIgdGhlIGN1cnJlbnQgUmVuZGVyaW5nVXBkYXRlIGNhbiBiZSB0cmlnZ2VyZWQgb3IKKyAg
ICAgICAgICAgc2hvdWxkIGJlIHJlc2NoZWR1bGVkLgorCisgICAgICAgIC0tIFJlbmRlcmluZ1Vw
ZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpIGNhbGxzIAorICAgICAgICAgICBX
ZWJQYWdlOjpjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgdGhyb3VnaCB0aGUgcGFnZSBjaHJv
bWUgY2xpZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
c3VibWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxp
emVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFy
ZWQpOgorICAgICAgICAqIFNoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaC4KKyAgICAgICAgKFdl
YktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
cik6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzSGFzaFRh
YmxlRGVsZXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0
SWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0
SWRlbnRpZmllcjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25p
Y09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjw9IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3IhPSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmluY3Jl
bWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om5leHQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjp0b1VJ
bnQ2NCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6
Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcjo6aGFzaFRhYmxlRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdl
YktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aXNWYWxpZElkZW50aWZpZXIpOgorICAg
ICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvUmVuZGVyaW5nVXBk
YXRlSUQuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL1RyYW5zYWN0aW9uSUQuaDoKKyAgICAg
ICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3Bl
cmF0b3I9PSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVj
dElkZW50aWZpZXI6Om9wZXJhdG9yPiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPj0gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjwgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
OjpvcGVyYXRvcjw9IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3IhPSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmluY3JlbWVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om5leHQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjp0b1VJ
bnQ2NCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElk
ZW50aWZpZXI6Om9wZXJhdG9yIGJvb2wgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aGFzaFRhYmxl
RGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0
SWRlbnRpZmllcjo6aXNWYWxpZElkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpvcGVyYXRvcjw8KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVuZGVyaW5nVXBkYXRlSUQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlbGF5ZWRSZW5kZXJpbmdVcGRh
dGVDb3VudCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250
TWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjYW5Ucmln
Z2VyUmVuZGVyaW5nVXBkYXRlIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmlu
Z1VwZGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAy
MDIxLTA3LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBzdXJlIHRoZSBQcm9jZXNzQXNzZXJ0aW9uIGdldHMgZGVzdHJveWVkIG9uIHRoZSBtYWluIHRo
cmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNDg2MmI2YTc3OWRmZWQ4NzEz
YWY0MDVlOTFkY2FmZWQ1MmVlOTk4MS4uN2FiNDU3Mjk2MDlkZTE5NzJmOWU0NTRlODJhZTM5MzE0
YzE5YjQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNjQsNiArMzY0LDcg
QEAgcHVibGljOgogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5
bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIC8vIE1ha2VzIGEgcmVuZGVyaW5nIHVwZGF0ZSBoYXBwZW4gc29vbiwg
dHlwaWNhbGx5IGluIHRoZSBjdXJyZW50IHJ1bmxvb3AuCiAgICAgdmlydHVhbCB2b2lkIHRyaWdn
ZXJSZW5kZXJpbmdVcGRhdGUoKSA9IDA7CiAgICAgLy8gU2NoZWR1bGUgYSByZW5kZXJpbmcgdXBk
YXRlIHRoYXQgY29vcmRpbmF0ZXMgd2l0aCBkaXNwbGF5IHJlZnJlc2guIFJldHVybnMgdHJ1ZSBp
ZiBzY2hlZHVsZWQuIChUaGlzIGlzIG9ubHkgdXNlZCBieSBTVkdJbWFnZUNocm9tZUNsaWVudC4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAK
aW5kZXggNTI2ZTVlYTY5OWQ3ZTY1ZDQ0YmQzZWM0YmVjNTE1NTA5NjRjZjdiMy4uN2Q4MDhhODg0
ZjVhYTdjMmE2MzQyMjgzNjY2YjQ3YzllOTE1YjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcApAQCAtMTI2LDcgKzEyNiwxNCBAQCB2
b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiAgICAg
dHJhY2VQb2ludChUcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKTsKIAogICAgIGNsZWFyU2NoZWR1bGVk
KCk7Ci0gICAgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpOworICAgIAorICAgIGlmIChtX3BhZ2Uu
Y2hyb21lKCkuY2xpZW50KCkuY2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZShtX3Jlc2NoZWR1bGVk
UmVuZGVyaW5nVXBkYXRlQ291bnQpKSB7CisgICAgICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUo
KTsKKyAgICAgICAgbV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50ID0gMDsKKyAgICB9
IGVsc2UgeworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICArK21f
cmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudDsKKyAgICB9CiB9CiAKIHZvaWQgUmVuZGVy
aW5nVXBkYXRlU2NoZWR1bGVyOjp0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlRm9yVGVzdGluZygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAppbmRleCA5
YjUxYzcwNjBkOThlYmRmNjYzMTRjOGZjZmVkOTVmMGI3ZWZmOGU2Li5iMmFhMGU1NTYyZTA3NDgz
MzQzZTY0ODJmOTVhN2U0NjY2YjY3ZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAg
IFBhZ2UmIG1fcGFnZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fcmVmcmVzaFRpbWVy
OworICAgIHVuc2lnbmVkIG1fcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCB7IDAgfTsK
ICAgICBib29sIG1fdXNlVGltZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zY2hlZHVsZWQgeyBm
YWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBlYTgyODZkYTBjOWRlNGRm
Y2E3ZGUzNWJlMzM3ZGYwMzJjMDM3ZTdlLi40MWM3MTcxNjEzYmUyYzgzNTBkYzI2ZjIzZDZmMzk4
NDhmOWY3N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC01MTYsNiArNTE2LDEzIEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByCiAgICAgdXBkYXRlUmVuZGVyaW5nUmVzb3VyY2VSZXF1
ZXN0KCk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQgcmVuZGVyaW5nVXBkYXRlSUQpCit7CisgICAgaWYg
KG1fcGVuZGluZ1dha2V1cEluZm8gJiYgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdl
QnVmZmVyKG1fcGVuZGluZ1dha2V1cEluZm8tPmFyZ3VtZW50cy5kZXN0aW5hdGlvbkltYWdlQnVm
ZmVySWRlbnRpZmllcikpCisgICAgICAgIHdha2VVcEFuZEFwcGx5RGlzcGxheUxpc3Qoc3RkOjpl
eGNoYW5nZShtX3BlbmRpbmdXYWtldXBJbmZvLCBzdGQ6Om51bGxvcHQpLT5hcmd1bWVudHMpOwor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkRmluYWxp
emVSZW5kZXJpbmdVcGRhdGUocmVuZGVyaW5nVXBkYXRlSUQpLCBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZShEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IGY3
YmY2YmMzYjA3M2FkYmVhZTZmNmI4NjJmYTM2N2Y2YWIwMGU1YjAuLjhmYTVlOGY0NGUwYmQ5MGIw
YzczNTgzMjdjYmNjZmI2NjlkY2E2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIlJlbmRlcmluZ1VwZGF0ZUlELmgiCiAjaW5jbHVkZSAiU2Nv
cGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JT
cGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KQEAgLTE0NSw2ICsxNDYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsK
ICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEKTsKICAgICB2b2lkIGRpZENyZWF0
ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
SWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKIAog
ICAgIGNsYXNzIFJlcGxheWVyRGVsZWdhdGUgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluCmluZGV4IDRiM2ZlOWEwMjYyZThhNTQ5MTg1MmM2ZDZhMDQwNDVkNmE2OTYzOTcuLjliZTlk
OWRkZThkYjhjODRiMDBkOWI1ZGViOWJmYjJjYjY0MWE1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQgewogICAgIERlbGV0ZUFsbEZvbnRzKCkKICAgICBEaWRDcmVhdGVT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5k
bGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZl
cklkZW50aWZpZXIpCiAgICAgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgRmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoV2ViS2l0OjpSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdV
cGRhdGVJRCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDQ2MDk5OWVmZjlhZjMwNTBiN2M3OWU2
NWYyOWU3NDYwZDNlZjZlY2QuLjE5MGRhNmFmMjBjNmJiMWE5OWZmYmVmMmNhODZlZTc2YzQwNzM4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzM0LDYg
KzMzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6
UmVuZGVyaW5nVXBkYXRlSUQnLAogICAgICAgICAnV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMWM5MDA3NDVm
OGU1ZTUzNGE0M2NkMTMwNWY3YjkyZjZkZjZmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwxMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0hhc2hG
dW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1vbm90b25pY09i
amVjdElkZW50aWZpZXIgeworcHVibGljOgorICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIo
KSA9IGRlZmF1bHQ7CisKKyAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCkpCisgICAgeyB9CisKKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
OyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFsaWRJZGVudGlmaWVy
KG1faWRlbnRpZmllcikpOworICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKKyAgICB9
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyOworICAgICAgICBkZWNv
ZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllcigq
aWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciB7
ICppZGVudGlmaWVyIH07CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1vbm90
b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1faWRlbnRpZmllciA9PSBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAgYm9vbCBv
cGVyYXRvcj4oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID4gb3RoZXIubV9pZGVudGlmaWVyOwor
ICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgPj0g
b3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1v
bm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1faWRlbnRpZmllciA8IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29s
IG9wZXJhdG9yPD0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyIDw9IG90aGVyLm1faWRlbnRpZmll
cjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVy
ICE9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyJiBpbmNyZW1lbnQoKQorICAgIHsKKyAgICAgICAgKyttX2lkZW50aWZpZXI7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
IG5leHQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50
aWZpZXIobV9pZGVudGlmaWVyICsgMSk7CisgICAgfQorCisgICAgdWludDY0X3QgdG9VSW50NjQo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICBTdHJpbmcgbG9nZ2lu
Z1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9p
ZGVudGlmaWVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4g
ZnJpZW5kIE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VT4gbWFrZU1vbm90b25pY09iamVjdElk
ZW50aWZpZXIodWludDY0X3QpOworICAgIGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyPjsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3Ry
dWN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXJIYXNoOworCisgICAgc3RhdGljIHVpbnQ2NF90
IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDY0X3Q+OjptYXgoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVmFsaWRJZGVudGlmaWVyKHVpbnQ2
NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gaGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCk7IH0KKworICAgIGV4cGxpY2l0IE1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0
X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICB7
CisgICAgfQorCisgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OworfTsKKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK2lubGluZSB1bnNpZ25lZCBvcGVyYXRvci0oY29uc3QgTW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcjxUPiYgYSwgY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxU
PiYgYikKK3sKKyAgICByZXR1cm4gYS50b1VJbnQ2NCgpIC0gYi50b1VJbnQ2NCgpOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRpZmllcikKK3sKKyAg
ICB0cyA8PCBpZGVudGlmaWVyLnRvVUludDY0KCk7CisgICAgcmV0dXJuIHRzOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbmRl
cmluZ1VwZGF0ZUlELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW5kZXJpbmdVcGRhdGVJRC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY4MDUxZGY2NTE3NDI0NjMxN2QxYzhjNjA3NmIyOTA3ZTYwYTBlMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW5kZXJpbmdVcGRhdGVJRC5o
CkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
Ik1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Vu
dW0gUmVuZGVyaW5nVXBkYXRlSURUeXBlIHsgfTsKK3VzaW5nIFJlbmRlcmluZ1VwZGF0ZUlEID0g
TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxSZW5kZXJpbmdVcGRhdGVJRFR5cGU+OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5z
YWN0aW9uSUQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaAppbmRleCA5
YzFkMDU0NjNiNmU3NmYwODlhNGRkZTAzODRlNjczMGQwNTI3MmQ3Li40YmRlZWUwM2FiNzI3Nzcw
MGNhNDI1NjA4MDg4Yjk3M2Y0OWI2ZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9UcmFuc2FjdGlvbklELmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVHJhbnNhY3Rpb25J
RC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI1LDExMSArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvSGFz
aEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFN0cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2lu
Y2x1ZGUgIk1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1vbm90b25pY09iamVjdElkZW50aWZpZXIg
ewotcHVibGljOgotICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7Ci0K
LSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
VHlwZSkKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCi0g
ICAgeyB9Ci0KLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikp
OwotICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKLSAgICB9Ci0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyOwotICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZp
ZXI7Ci0gICAgICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllcigqaWRlbnRpZmllcikpOwot
ICAgICAgICByZXR1cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciB7ICppZGVudGlmaWVyIH07
Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50
aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA9
PSBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvcj4oY29uc3Qg
TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gbV9pZGVudGlmaWVyID4gb3RoZXIubV9pZGVudGlmaWVyOwotICAgIH0KLQotICAgIGJv
b2wgb3BlcmF0b3I+PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgPj0gb3RoZXIubV9pZGVudGlm
aWVyOwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1vbm90b25pY09iamVjdElk
ZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmll
ciA8IG90aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPD0oY29u
c3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAg
ICByZXR1cm4gbV9pZGVudGlmaWVyIDw9IG90aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyICE9IG90aGVyLm1faWRl
bnRpZmllcjsKLSAgICB9Ci0KLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBpbmNyZW1l
bnQoKQotICAgIHsKLSAgICAgICAgKyttX2lkZW50aWZpZXI7Ci0gICAgICAgIHJldHVybiAqdGhp
czsKLSAgICB9Ci0KLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIG5leHQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIobV9pZGVudGlm
aWVyICsgMSk7Ci0gICAgfQotCi0gICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0KLSAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9pZGVudGlmaWVyKTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE1vbm90b25p
Y09iamVjdElkZW50aWZpZXI8VT4gbWFrZU1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0
X3QpOwotICAgIGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyPjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXJIYXNoOwotCi0gICAgc3RhdGljIHVpbnQ2NF90IGhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsg
fQotICAgIHN0YXRpYyBib29sIGlzVmFsaWRJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIp
IHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KLQotICAg
IGV4cGxpY2l0IE1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikK
LSAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICB7Ci0gICAgfQotCi0gICAg
dWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXI8VD4mIGlkZW50aWZpZXIpCi17Ci0gICAgdHMgPDwgaWRlbnRpZmllci50
b1VJbnQ2NCgpOwotICAgIHJldHVybiB0czsKLX0KLQogZW51bSBUcmFuc2FjdGlvbklEVHlwZSB7
IH07CiB1c2luZyBUcmFuc2FjdGlvbklEID0gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxUcmFu
c2FjdGlvbklEVHlwZT47CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjI0NjA2Y2M1ZTE1
ZDE4MDhmNTU5MzIzNjE1OTkzNGQ5NzFiMmY5Yi4uNzNlYjAyODJmZGE3ZmQ5MjI5ZWQ0ZmI1ZTEz
ZWMwMjYyYTExNWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NjAzLDYgKzQ2MDMsOCBAQAogCQk3MUJBQTczMTI1RkZDQ0JBMDBE
N0NENUQgLyogV0tNb2RlbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tNb2RlbFZpZXcuaDsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MUJBQTczMjI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vZGVsVmlldy5tbTsg
cGF0aCA9IGlvcy9XS01vZGVsVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzFGQjgxMEEyMjYwNjI3QTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rp
c3BhdGNoUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVT
aW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTcyMDM0NDlBMjZBNkM0NEMwMDBBNUY1NCAvKiBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vbm90b25pY09iamVjdElkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIwMzQ0OUIyNkE2QzQ3NjAwMEE1RjU0IC8qIFJl
bmRlcmluZ1VwZGF0ZUlELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0ZUlELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQ
bGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
NkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02ODExLDYgKzY4MTMsNyBAQAogCQkJCTJEMTA4NzVFMUQyQzU3M0Uw
MEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5jcHAgKi8sCiAJCQkJMkQxMDg3NUYxRDJDNTczRTAw
Qjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggKi8sCiAJCQkJNDk5MTdEQjAyNTJFMzA3NTAwNTAz
MTNGIC8qIE1lZGlhUGxheWJhY2tTdGF0ZS5oICovLAorCQkJCTcyMDM0NDlBMjZBNkM0NEMwMDBB
NUY1NCAvKiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmggKi8sCiAJCQkJMkQ1MDM2NkExQkNE
RTE3OTAwRTIwQkIzIC8qIE5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oICovLAogCQkJCUMwMkJGRjE1
MTI1MTRGRDgwMDlDQ0JFQSAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJMzFF
QTI1RDMxMzRGNzhENjAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnQuaCAqLywKQEAgLTY4
MzAsNiArNjgzMyw3IEBACiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
by5oICovLAogCQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRp
b25SZWFzb24uaCAqLywKIAkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLywKKwkJCQk3MjAzNDQ5QjI2QTZDNDc2MDAwQTVG
NTQgLyogUmVuZGVyaW5nVXBkYXRlSUQuaCAqLywKIAkJCQk1Q0I3QUZFNjIzQzY4MUIwMDBFNDlD
RjMgLyogUmVzb3VyY2VMb2FkSW5mby5oICovLAogCQkJCTVDMDA5OTNCMjQxN0ZCN0UwMEQ1M0My
NSAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oICovLAogCQkJCTQxMDQ4MkNC
MURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAwOWNlNGM2ZWY2ZDZhYmU3MWUwM2VhYjdmYThj
ZDIxNGZmNjhiMGZlLi4xZjUzMDcwZGUzYmE5MWVmZjhiNzMyODBiYmI5ODY0YWI1ZGMxYzY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0xMDIsNiArMTAy
LDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdVByb2Nlc3NDb25uZWN0
aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3QKICAgICBtX2dldFBpeGVsQnVmZmVyU2VtYXBo
b3JlID0gc3RkOjpudWxsb3B0OwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnlMZW5n
dGggPSAwOwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkgPSBudWxscHRyOworICAg
IAorICAgIG1fcmVuZGVyaW5nVXBkYXRlSUQgPSB7IH07CisgICAgbV9kaWRSZW5kZXJpbmdVcGRh
dGVJRCA9IHsgfTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKQEAgLTI1Nyw2ICsyNjAsMTMg
QEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWYKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwgSVBDOjpTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKG1fcmVuZGVyaW5nVXBkYXRlSUQpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoKTsKKyAgICBtX3JlbmRlcmluZ1VwZGF0ZUlELmluY3JlbWVudCgpOworfQorCiB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpbWFnZUJ1
ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CkBAIC0yNzcsNiArMjg3LDEyIEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGbHVzaChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlm
aWVyIGZsdXNoSWRlCiAgICAgICAgIGltYWdlQnVmZmVyLT5kaWRGbHVzaChmbHVzaElkZW50aWZp
ZXIpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVuZGVyaW5nVXBkYXRlSUQpCit7
CisgICAgQVNTRVJUKGRpZFJlbmRlcmluZ1VwZGF0ZUlEIDw9IG1fcmVuZGVyaW5nVXBkYXRlSUQp
OworICAgIG1fZGlkUmVuZGVyaW5nVXBkYXRlSUQgPSBzdGQ6Om1pbihkaWRSZW5kZXJpbmdVcGRh
dGVJRCwgbV9yZW5kZXJpbmdVcGRhdGVJRCk7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5Ojp3aWxsQXBwZW5kSXRlbShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbmV3
RGVzdGluYXRpb25JZGVudGlmaWVyKQogewogICAgIGlmIChtX2N1cnJlbnREZXN0aW5hdGlvbklt
YWdlQnVmZmVySWRlbnRpZmllciA9PSBuZXdEZXN0aW5hdGlvbklkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCA2MzE0OTY3MGEzNTk0ZTI1YTJkYTVj
ZDE5NzYxMTQ2MWM2MTc5NzQwLi4yOTIyNmZhYTQ3OGIxYmUyM2UxMDQxYmRlZDExOWY4YjEyZDcz
NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4K
QEAgLTEwNiw2ICsxMDcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsK
ICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAg
IFJlbmRlcmluZ1VwZGF0ZUlEIHJlbmRlcmluZ1VwZGF0ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9y
ZW5kZXJpbmdVcGRhdGVJRDsgfQorICAgIHVuc2lnbmVkIGRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlSUQgLSBtX2RpZFJlbmRlcmlu
Z1VwZGF0ZUlEOyB9CisKICAgICBlbnVtIGNsYXNzIERpZFJlY2VpdmVCYWNrZW5kQ3JlYXRpb25S
ZXN1bHQgOiBib29sIHsKICAgICAgICAgUmVjZWl2ZWRBbnlSZXNwb25zZSwKICAgICAgICAgVGlt
ZW91dE9ySVBDRmFpbHVyZQpAQCAtMTI4LDYgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVz
c2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCBkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmx1c2goV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNo
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRl
cmluZ1VwZGF0ZUlEKTsKIAogICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhhbmRsZT4gbW9z
dFJlY2VudGx5VXNlZERpc3BsYXlMaXN0SGFuZGxlKCk7CiAgICAgUmVmUHRyPERpc3BsYXlMaXN0
V3JpdGVySGFuZGxlPiBmaW5kUmV1c2FibGVEaXNwbGF5TGlzdEhhbmRsZShzaXplX3QgY2FwYWNp
dHkpOwpAQCAtMTQ4LDYgKzE1NCw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKICAgICB1aW50NjRfdCBtX2dldFBpeGVs
QnVmZmVyU2hhcmVkTWVtb3J5TGVuZ3RoIHsgMCB9OwogICAgIFdlYkNvcmU6OlRpbWVyIG1fZGVz
dHJveUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5VGltZXIgeyAqdGhpcywgJlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6ZGVzdHJveUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5IH07CisK
KyAgICBSZW5kZXJpbmdVcGRhdGVJRCBtX3JlbmRlcmluZ1VwZGF0ZUlEOworICAgIFJlbmRlcmlu
Z1VwZGF0ZUlEIG1fZGlkUmVuZGVyaW5nVXBkYXRlSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggM2E1MzJkNWU0ZmY2MTZiZGIwN2VkZTdhOWE4M2U5MzEzN2U3M2JmMS4uNDY3
ODMwODlkMzYyNWQ5ZTM0Y2E2YWRhYzE4ZDYxZDgwYzBkNzg4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcg
QEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVk
IHsKICAgICBEaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViS2l0OjpJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIERpZEZsdXNoKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIERp
ZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVu
ZGVyaW5nVXBkYXRlSUQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggMDNmMzRiMzNhMjJkZDQ5MjhkNDI2
MGU0Nzg2MmQzOTEzNzExMDFhZi4uNWQ0YmEzMDAzY2VkYTI1YmFkZGYwODRiMjBhMzI4N2E1Zjg4
MDQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMTA0LDE2ICsx
MDQsMjEgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2Uo
TmF0aXZlSW1hZ2UmIGltYWdlKQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2Fj
aGVGb250KEZvbnQmIGZvbnQpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIoKSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgYXV0byByZXN1
bHQgPSBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXAuZW5zdXJlKGZv
bnQucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFsmXSB7CisgICAgICAgIHJldHVybiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdVcGRhdGVJRCgpOwogICAgIH0p
OworCisgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7CisgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVmKGZvbnQpKTsKKyAgICAgICAgKyttX251
bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgYXV0byYgbGFzdFZlcnNpb24gPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVl
OwotICAgIGlmIChsYXN0VmVyc2lvbiAhPSBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9u
KSB7Ci0gICAgICAgIGxhc3RWZXJzaW9uID0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lv
bjsKKyAgICBpZiAobGFzdFZlcnNpb24gIT0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVuZGVyaW5nVXBkYXRlSUQoKSkgeworICAgICAgICBsYXN0VmVyc2lvbiA9IG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCk7CiAgICAgICAgICsrbV9udW1i
ZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZTsKICAgICB9Ci0gICAgaWYgKHJl
c3VsdC5pc05ld0VudHJ5KQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
YWNoZUZvbnQobWFrZVJlZihmb250KSk7CiB9CiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEyNywxNSArMTMyLDE0IEBAIHZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlCiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVwYXJlRm9y
TmV4dFJlbmRlcmluZ1VwZGF0ZSgpCiB7Ci0gICAgKyttX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVW
ZXJzaW9uOwogICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUg
PSAwOwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKCkK
IHsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbk1hcCkKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXApCiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShpdGVtLmtleSk7Ci0gICAgbV9mb250SWRl
bnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKKyAgICBtX2Zv
bnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXAuY2xlYXIoKTsKICAgICBtX251
bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKIH0KIApAQCAtMTQz
LDI1ICsxNDcsMjYgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRm9yRm9udHMoKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlID0gNDsKIAotICAgIHVu
c2lnbmVkIHRvdGFsRm9udENvdW50ID0gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1Vw
ZGF0ZVZlcnNpb25NYXAuc2l6ZSgpOworICAgIHVuc2lnbmVkIHRvdGFsRm9udENvdW50ID0gbV9m
b250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwLnNpemUoKTsKICAgICBSRUxF
QVNFX0FTU0VSVChtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlIDw9
IHRvdGFsRm9udENvdW50KTsKICAgICBpZiAodG90YWxGb250Q291bnQgPT0gbV9udW1iZXJPZkZv
bnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
SGFzaFNldDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHRvUmVtb3ZlOwot
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uTWFwKSB7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250
QWxpdmUpIHsKKyAgICBhdXRvIHJlbmRlcmluZ1VwZGF0ZUlEID0gbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkucmVuZGVyaW5nVXBkYXRlSUQoKTsKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBt
X2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXApIHsKKyAgICAgICAgaWYg
KHJlbmRlcmluZ1VwZGF0ZUlEIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVyaW5nVXBkYXRl
Q291bnRUb0tlZXBGb250QWxpdmUpIHsKICAgICAgICAgICAgIHRvUmVtb3ZlLmFkZChpdGVtLmtl
eSk7CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVt
b3RlUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9mb250SWRl
bnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAucmVtb3ZlSWYoWyZdKGNvbnN0
IGF1dG8mIGJ1Y2tldCkgeworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVJRE1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYgYnVja2V0KSB7CiAgICAgICAgIHJldHVy
biB0b1JlbW92ZS5jb250YWlucyhidWNrZXQua2V5KTsKICAgICB9KTsKIH0KIAotdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3ZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAg
ICAgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwogICAgIHByZXBhcmVGb3JOZXh0
UmVuZGVyaW5nVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCA2
ZDczMWM0Y2M1ZWY2ZWYzMmMyODAyOWE1YjAzMjQxM2ExNWE1ODkwLi40NDVjMjRkZjc0N2I2NWRh
Yjc5NTgxNThkYmIyYzU2ODU0YmE2ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIlJlbmRlcmluZ1VwZGF0ZUlELmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FjaGVOYXRpdmVJbWFnZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpOwogCiAgICAgdm9pZCBjYWNo
ZUZvbnQoV2ViQ29yZTo6Rm9udCYpOwotICAgIHZvaWQgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJl
bW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnko
KTsKQEAgLTY5LDkgKzcwLDggQEAgcHJpdmF0ZToKICAgICBJbWFnZUJ1ZmZlckhhc2hNYXAgbV9p
bWFnZUJ1ZmZlcnM7CiAgICAgTmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwogCi0g
ICAgSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVpbnQ2NF90
PiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcDsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVuZGVyaW5nVXBk
YXRlSUQ+IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcDsKICAgICB1
bnNpZ25lZCBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlIHsgMCB9
OwotICAgIHVpbnQ2NF90IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24geyAxIH07CiAK
ICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYjQ5YjQzNDdmZGE2Yzc3NWFh
MjViNjJhNGMzN2NiOWE0NDQ2MjVhMy4uY2ZmNTJkYTMxZmM5NjFhMmY2NjJhMzZjNDBlNjRhMDYw
NzAzMTBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk3Nyw2ICs5NzcsMTEgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5U
cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRl
Q291bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5jYW5UcmlnZ2VyUmVuZGVyaW5nVXBk
YXRlKHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQpOworfQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgaWYgKG1fcGFnZS5kcmF3
aW5nQXJlYSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGM3NDdmOWMxYjljZTcxZTk1ZDhiMGJk
MDY0MDI4NWVjMGJlM2Y2YzQuLjczZTEyNDgxNzQzZDRiMGM1YWE2ODhlZGNkZjU2MzNiOTEwZWYw
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOworICAgIGJvb2wgY2FuVHJpZ2dl
clJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsK
IAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODdjMDNlY2E5NjhhMTc1MmY1
ZjNjZWFjOTA4NWZmN2Q5M2I1NTFjYy4uZGJiZjAxZTE4ZjExYzM0YzZhNGMzMDUzZGI5ZDA0Yjg4
ZmI3NTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQxNzIsMTIgKzQxNzIsMjYgQEAgdm9pZCBXZWJQYWdlOjpkaWRVcGRhdGVSZW5kZXJp
bmcoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlUmVuZGVyaW5n
QWZ0ZXJDb21taXR0aW5nTG9hZCgpKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpjYW5UcmlnZ2VyUmVu
ZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQpIGNv
bnN0Cit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbWF4UmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IEZ1bGxTcGVlZEZyYW1l
c1BlclNlY29uZDsKKyAgICBpZiAocmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA+PSBt
YXhSZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4RGVsYXllZFJlbmRlcmluZ1VwZGF0
ZUNvdW50ID0gMjsKKyAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgJiYgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCgp
ID4gbWF4RGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBXZWJQYWdlOjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4gZmxh
Z3MpCiB7CiAgICAgbV9wYWdlLT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShmbGFncyk7CiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSgpLmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5maW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAwMDQyMjc1ZjVhNmQ1OTYxNmEwZGRmMGU5YmUyOGU0OGMyYzBjMWFjLi4zNjgxNDM3YWQxZGU1
ZDFjMzdlMmM3MWQ5NWM5YTE0ODIwZDJlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zOTksNiArMzk5LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBsYXlvdXRJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKCk7CisgICAgYm9v
bCBjYW5UcmlnZ2VyUmVuZGVyaW5nVXBkYXRlKHVuc2lnbmVkIHJlc2NoZWR1bGVkUmVuZGVyaW5n
VXBkYXRlQ291bnQpIGNvbnN0OwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0
aW9uU2V0PFdlYkNvcmU6OkZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+KTsKIAogICAgIHZv
aWQgcmVsZWFzZU1lbW9yeShXVEY6OkNyaXRpY2FsKTsK
</data>
<flag name="review"
          id="456654"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434253</attachid>
            <date>2021-07-26 16:20:14 -0700</date>
            <delta_ts>2021-07-26 20:24:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210726162013.patch</filename>
            <type>text/plain</type>
            <size>41479</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJkZGIzZjNhMjJkMTgz
YTJjN2M3NDVhOGVlZGMyY2FkMDM4MzQwNC4uZTc4YTMwYjJhMWYzYTViMDQzMTlhMzVmNDIwYTAy
MTg0ZDMyYzI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTI2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIE1ha2UgQ2hyb21lQ2xpZW50IGRlY2lkZSB3aGV0aGVyIGEg
UmVuZGVyaW5nVXBkYXRlIGNhbiBiZSB0cmlnZ2VyZWQgb3IKKyAgICAgICAgc2hvdWxkIGJlIHJl
c2NoZWR1bGVkLiBLZWVwIHRyYWNrIG9mIGhvdyBtYW55IHRpbWVzIFJlbmRlcmluZ1VwZGF0ZSB3
YXMKKyAgICAgICAgcmVzY2hlZHVsZWQgdG8gZW5zdXJlIFJlbmRlcmluZ1VwZGF0ZSB3aWxsIGJl
IHRyaWdnZXJlZCBhbnl3YXkgYWZ0ZXIgYQorICAgICAgICBjZXJ0YWluIG51bWJlciBvZiByZXNj
aGVkdWxlcy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCk6CisgICAg
ICAgICogcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaDoKKwogMjAyMS0wNy0yNiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbGwgaG9tZSBz
Y3JlZW4gd2ViIGFwcHMgcmVzdW1lIHdoZW4gYW55IGhvbWUgc2NyZWVuIHdlYiBhcHAgaXMgZm9y
ZWdyb3VuZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzMDE4ODBlNDE2YTQxN2NiNTJjODcwNDljNDczNjNhNDJm
ZDYzNzguLjdlNWExMjI0NTgwYTI0YTcxYTVmOTNkZTIxNWJlNjZhNjA1MDAyNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTA5IEBACisyMDIxLTA3LTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRA
YXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmluZ1VwZGF0
ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzkxCisgICAgICAgIDxyZGFyOi8v
Nzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
IFRoaXMgaXMgdGhlIHdvcmtmbG93IHRvIHJlZ3VsYXRlIHRoZSBXZWJQYWdlIFJlbmRlcmluZ1Vw
ZGF0ZXM6CisKKyAgICAgICAgLS0gV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBj
YWxscyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OgorICAgICAgICAgICBmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSgpLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzZW5kcyBpdHMKKyAgICAgICAgICAgcmVuZGVy
aW5nVXBkYXRlSUQgdG8gR1BVUFByb2Nlc3MgYW5kIGFza3MgaXQgdG8gcHJvY2VzcyBhbGwgdGhl
CisgICAgICAgICAgIHBlbmRpbmcgRGlzcGxheUxpc3QgaXRlbXMuCisKKyAgICAgICAgLS0gUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpIHByb2Nlc3NlcyBh
bGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgaXRlbXMgYW5kIHNlbmRzIHRoZSByZWNlaXZlZCBy
ZW5kZXJpbmdVcGRhdGVJRCBiYWNrIHRvIHRoZQorICAgICAgICAgICBXZWJQcm9jZXNzLgorCisg
ICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoKSBzdG9yZXMgdGhlIAorICAgICAgICAgICByZWNlaXZlZCBkaWRSZW5kZXJpbmdV
cGRhdGVJRC4KKworICAgICAgICAtLSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRlbGF5
ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCgpIHJldHVybnMKKyAgICAgICAgICAgJ3JlbmRlcmluZ1Vw
ZGF0ZUlEIC0gZGlkUmVuZGVyaW5nVXBkYXRlSUQnIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YKKyAg
ICAgICAgICAgdW4tcHJvY2Vzc2VkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlIGJ5IEdQVVAuCisK
KyAgICAgICAgLS0gV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIHVzZXMgZGVs
YXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KCkKKyAgICAgICAgICAgdG8gZGVjaWRlcyB3aGV0aGVy
IHRoZSBjdXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBjYW4gYmUgdHJpZ2dlcmVkIG9yCisgICAgICAg
ICAgIHNob3VsZCBiZSByZXNjaGVkdWxlZC4KKworICAgICAgICAtLSBSZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKSBjYWxscyAKKyAgICAgICAgICAgV2ViUGFn
ZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIHRocm91Z2ggdGhlIHBhZ2UgY2hyb21lIGNs
aWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN1Ym1p
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKToK
KyAgICAgICAgKiBTaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmguCisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElk
ZW50aWZpZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yIT0gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppbmNyZW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpuZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6dG9VSW50NjQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVy
YXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVkL1JlbmRlcmluZ1VwZGF0ZUlE
Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9UcmFuc2FjdGlvbklELmg6CisgICAgICAgIChX
ZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09iamVjdElkZW50aWZp
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmVuY29kZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmRlY29kZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9y
PT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3Bl
cmF0b3I8PSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVj
dElkZW50aWZpZXI6Om9wZXJhdG9yIT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppbmNyZW1lbnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpuZXh0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6dG9VSW50NjQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyOjpvcGVyYXRvciBib29sIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6b3Bl
cmF0b3I8PCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OnJlbmRlcmluZ1VwZGF0ZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVkUmVuZGVyaW5nVXBkYXRlQ291
bnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNsZWFyRm9udE1hcCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVGb3JGb250cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2FuVHJpZ2dlclJl
bmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRh
dGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0w
Ny0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3Vy
ZSB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBnZXRzIGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQ4NjJiNmE3NzlkZmVkODcxM2FmNDA1
ZTkxZGNhZmVkNTJlZTk5ODEuLjM5MzE0OTg1MTgwMTJiYmM3MTlkMmUxNGVlY2Q2YWU0NGNiYTg3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzY0LDYgKzM2NCw3IEBAIHB1
YmxpYzoKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJv
bnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOwogCisgICAgdmlydHVhbCBi
b29sIHNob3VsZFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICAvLyBNYWtlcyBhIHJlbmRlcmluZyB1cGRhdGUgaGFwcGVuIHNvb24sIHR5
cGljYWxseSBpbiB0aGUgY3VycmVudCBydW5sb29wLgogICAgIHZpcnR1YWwgdm9pZCB0cmlnZ2Vy
UmVuZGVyaW5nVXBkYXRlKCkgPSAwOwogICAgIC8vIFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0
ZSB0aGF0IGNvb3JkaW5hdGVzIHdpdGggZGlzcGxheSByZWZyZXNoLiBSZXR1cm5zIHRydWUgaWYg
c2NoZWR1bGVkLiAoVGhpcyBpcyBvbmx5IHVzZWQgYnkgU1ZHSW1hZ2VDaHJvbWVDbGllbnQuKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCmlu
ZGV4IDUyNmU1ZWE2OTlkN2U2NWQ0NGJkM2VjNGJlYzUxNTUwOTY0Y2Y3YjMuLjc3ZTRmZWYwYzE5
MWJmYjE0YWMzOGM0MzNmYjg3ZjE0Nzk0NzRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKQEAgLTEyNiw3ICsxMjYsMTQgQEAgdm9p
ZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogICAgIHRy
YWNlUG9pbnQoVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSk7CiAKICAgICBjbGVhclNjaGVkdWxlZCgp
OwotICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAKKyAgICBpZiAobV9wYWdlLmNo
cm9tZSgpLmNsaWVudCgpLnNob3VsZFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUobV9yZXNjaGVkdWxl
ZFJlbmRlcmluZ1VwZGF0ZUNvdW50KSkgeworICAgICAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRl
KCk7CisgICAgICAgIG1fcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IDA7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgKytt
X3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQ7CisgICAgfQogfQogCiB2b2lkIFJlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlcjo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZUZvclRlc3RpbmcoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKaW5kZXgg
OWI1MWM3MDYwZDk4ZWJkZjY2MzE0YzhmY2ZlZDk1ZjBiN2VmZjhlNi4uYjJhYTBlNTU2MmUwNzQ4
MzM0M2U2NDgyZjk1YTdlNDY2NmI2N2ZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBQYWdlJiBtX3BhZ2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX3JlZnJlc2hUaW1l
cjsKKyAgICB1bnNpZ25lZCBtX3Jlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQgeyAwIH07
CiAgICAgYm9vbCBtX3VzZVRpbWVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2NoZWR1bGVkIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZWE4Mjg2ZGEwYzlkZTRk
ZmNhN2RlMzViZTMzN2RmMDMyYzAzN2U3ZS4uNDFjNzE3MTYxM2JlMmM4MzUwZGMyNmYyM2Q2ZjM5
ODQ4ZjlmNzdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNTE2LDYgKzUxNiwxMyBA
QCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcgogICAgIHVwZGF0ZVJlbmRlcmluZ1Jlc291cmNlUmVx
dWVzdCgpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIHJlbmRlcmluZ1VwZGF0ZUlEKQoreworICAgIGlm
IChtX3BlbmRpbmdXYWtldXBJbmZvICYmIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFn
ZUJ1ZmZlcihtX3BlbmRpbmdXYWtldXBJbmZvLT5hcmd1bWVudHMuZGVzdGluYXRpb25JbWFnZUJ1
ZmZlcklkZW50aWZpZXIpKQorICAgICAgICB3YWtlVXBBbmRBcHBseURpc3BsYXlMaXN0KHN0ZDo6
ZXhjaGFuZ2UobV9wZW5kaW5nV2FrZXVwSW5mbywgc3RkOjpudWxsb3B0KS0+YXJndW1lbnRzKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKHJlbmRlcmluZ1VwZGF0ZUlEKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7Cit9CisKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRl
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBoYW5kbGUsIFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBm
N2JmNmJjM2IwNzNhZGJlYWU2ZjZiODYyZmEzNjdmNmFiMDBlNWIwLi44ZmE1ZThmNDRlMGJkOTBi
MGM3MzU4MzI3Y2JjY2ZiNjY5ZGNhNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCIKICNpbmNs
dWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5oIgogI2luY2x1ZGUgIlNj
b3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9y
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CkBAIC0xNDUsNiArMTQ2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7
CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCk7CiAgICAgdm9pZCBkaWRDcmVh
dGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7CiAK
ICAgICBjbGFzcyBSZXBsYXllckRlbGVnYXRlIDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpSZXBsYXllcjo6RGVsZWdhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgppbmRleCA0YjNmZTlhMDI2MmU4YTU0OTE4NTJjNmQ2YTA0MDQ1ZDZhNjk2Mzk3Li45YmU5
ZDlkZGU4ZGI4Yzg0YjAwZDliNWRlYjliZmIyY2I2NDFhNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsNyBAQCBtZXNzYWdlcyAtPiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBEZWxldGVBbGxGb250cygpCiAgICAgRGlkQ3JlYXRl
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFu
ZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZm
ZXJJZGVudGlmaWVyKQogICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIEZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgcmVuZGVyaW5n
VXBkYXRlSUQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0NjA5OTllZmY5YWYzMDUwYjdjNzll
NjVmMjllNzQ2MGQzZWY2ZWNkLi4xOTBkYTZhZjIwYzZiYjFhOTlmZmJlZjJjYTg2ZWU3NmM0MDcz
ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTMzNCw2
ICszMzQsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgog
ICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6
OlJlbmRlcmluZ1VwZGF0ZUlEJywKICAgICAgICAgJ1dlYktpdDo6UmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL01vbm90b25pY09iamVjdElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL01vbm90b25pY09iamVjdElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2VkODg2YThl
MGVlYWUzYTRlNjc5ODBhNWJhZTkyOTdiYTIwZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMTQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9IYXNo
RnVuY3Rpb25zLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCisvLyBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIGlzIHNpbWls
YXIgdG8gT2JqZWN0SWRlbnRpZmllciBidXQgaXQgY2FuIGJlIG1vbm90b25pY2FsbHkKKy8vIGlu
Y3JlYXNlZCBpbiBwbGFjZS4KKy8vIEZJWE1FOiBtZXJnZSBPYmplY3RJZGVudGlmaWVyIGFuZCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyIGluIG9uZSBjbGFzcy4KK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeworcHVibGljOgorICAgIE1vbm90
b25pY09iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAgICAgOiBtX2lk
ZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgeyB9CisKKyAgICBib29sIGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IGhh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBlbmNvZGVyIDw8
IG1faWRlbnRpZmllcjsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVu
dGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgIGlmICghaWRl
bnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIEFTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcigqaWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllciB7ICppZGVudGlmaWVyIH07CisgICAgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA9PSBvdGhlci5tX2lkZW50aWZpZXI7
CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj4oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID4g
b3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2lkZW50aWZpZXIgPj0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA8IG90aGVyLm1faWRlbnRpZmll
cjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPD0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVy
IDw9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pZGVudGlmaWVyICE9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAg
ICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBpbmNyZW1lbnQoKQorICAgIHsKKyAgICAgICAg
KyttX2lkZW50aWZpZXI7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyIG5leHQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIobV9pZGVudGlmaWVyICsgMSk7CisgICAgfQorCisg
ICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gU3RyaW5nOjpudW1iZXIobV9pZGVudGlmaWVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VT4g
bWFrZU1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0X3QpOworICAgIGZyaWVuZCBzdHJ1
Y3QgSGFzaFRyYWl0czxNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPjsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXJIYXNoOwor
CisgICAgc3RhdGljIHVpbnQ2NF90IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorICAgIHN0YXRpYyBib29sIGlz
VmFsaWRJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIg
IT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIGV4cGxpY2l0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAgdWludDY0X3QgbV9pZGVudGlmaWVy
IHsgMCB9OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBpbnQ2NF90IG9wZXJh
dG9yLShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFQ+JiBhLCBjb25zdCBNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyPFQ+JiBiKQoreworICAgIENoZWNrZWRJbnQ2NCByZXN1bHQgPSBD
aGVja2VkSW50NjQoYS50b1VJbnQ2NCgpIC0gYi50b1VJbnQ2NCgpKTsKKyAgICByZXR1cm4gcmVz
dWx0Lmhhc092ZXJmbG93ZWQoKSA/IDAgOiByZXN1bHQudmFsdWUoKTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VD4mIGlkZW50aWZpZXIpCit7CisgICAgdHMgPDwg
aWRlbnRpZmllci50b1VJbnQ2NCgpOworICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW5kZXJpbmdVcGRh
dGVJRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVuZGVyaW5nVXBkYXRlSUQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mODA1MWRmNjUxNzQyNDYzMTdkMWM4YzYwNzZiMjkwN2U2MGEwZTFkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVuZGVyaW5nVXBkYXRlSUQuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbmRl
cmluZ1VwZGF0ZUlEVHlwZSB7IH07Cit1c2luZyBSZW5kZXJpbmdVcGRhdGVJRCA9IE1vbm90b25p
Y09iamVjdElkZW50aWZpZXI8UmVuZGVyaW5nVXBkYXRlSURUeXBlPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklE
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgKaW5kZXggOWMxZDA1NDYz
YjZlNzZmMDg5YTRkZGUwMzg0ZTY3MzBkMDUyNzJkNy4uNGJkZWVlMDNhYjcyNzc3MDBjYTQyNTYw
ODA4OGI5NzNmNDliNmY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVHJhbnNh
Y3Rpb25JRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwx
MTEgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIHsKLXB1Ymxp
YzoKLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKCkgPSBkZWZhdWx0OwotCi0gICAgTW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQotICAgIHsgfQot
Ci0gICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllciA9PSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQotCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsKLSAgICAg
ICAgZW5jb2RlciA8PCBtX2lkZW50aWZpZXI7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY09iamVjdElkZW50aWZpZXI+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gaWRlbnRpZmllcjsKLSAgICAgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOwotICAg
ICAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIoKmlkZW50aWZpZXIpKTsKLSAgICAgICAg
cmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmllciB9OwotICAgIH0K
LQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgPT0gb3RoZXIu
bV9pZGVudGlmaWVyOwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IE1vbm90b25p
Y09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
aWRlbnRpZmllciA+IG90aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJh
dG9yPj0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID49IG90aGVyLm1faWRlbnRpZmllcjsKLSAg
ICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPChjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
JiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgPCBvdGhl
ci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IE1vbm90
b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1faWRlbnRpZmllciA8PSBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciAhPSBvdGhlci5tX2lkZW50aWZpZXI7
Ci0gICAgfQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgaW5jcmVtZW50KCkKLSAg
ICB7Ci0gICAgICAgICsrbV9pZGVudGlmaWVyOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAg
fQotCi0gICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciBuZXh0KCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKG1faWRlbnRpZmllciArIDEp
OwotICAgIH0KLQotICAgIHVpbnQ2NF90IHRvVUludDY0KCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9Ci0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQotCi0gICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1faWRlbnRpZmllcik7Ci0gICAgfQotCi1w
cml2YXRlOgotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyPFU+IG1ha2VNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90KTsKLSAg
ICBmcmllbmQgc3RydWN0IEhhc2hUcmFpdHM8TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcj47Ci0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIHN0cnVjdCBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVySGFzaDsKLQotICAgIHN0YXRpYyB1aW50NjRfdCBoYXNoVGFibGVEZWxldGVkVmFsdWUo
KSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KLSAgICBz
dGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVy
biBpZGVudGlmaWVyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0KLSAgICBleHBsaWNp
dCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCi0gICAgICAg
IDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgewotICAgIH0KLQotICAgIHVpbnQ2NF90
IG1faWRlbnRpZmllciB7IDAgfTsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1UZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyPFQ+JiBpZGVudGlmaWVyKQotewotICAgIHRzIDw8IGlkZW50aWZpZXIudG9VSW50NjQo
KTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIGVudW0gVHJhbnNhY3Rpb25JRFR5cGUgeyB9OwogdXNp
bmcgVHJhbnNhY3Rpb25JRCA9IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VHJhbnNhY3Rpb25J
RFR5cGU+OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIyNDYwNmNjNWUxNWQxODA4ZjU1
OTMyMzYxNTk5MzRkOTcxYjJmOWIuLjczZWIwMjgyZmRhN2ZkOTIyOWVkNGZiNWUxM2VjMDI2MmEx
MTVmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDYwMyw2ICs0NjAzLDggQEAKIAkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8q
IFdLTW9kZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxW
aWV3Lmg7IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb2RlbFZpZXcubW07IHBhdGggPSBp
b3MvV0tNb2RlbFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxRkI4MTBB
MjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBv
bGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlU2ltdWxhdGVk
TW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyogTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcyMDM0NDlCMjZBNkM0NzYwMDBBNUY1NCAvKiBSZW5kZXJpbmdV
cGRhdGVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdVcGRhdGVJRC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERDI1
M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjgxMSw2ICs2ODEzLDcgQEAKIAkJCQkyRDEwODc1RTFEMkM1NzNFMDBCODVGODIg
LyogTG9hZFBhcmFtZXRlcnMuY3BwICovLAogCQkJCTJEMTA4NzVGMUQyQzU3M0UwMEI4NUY4MiAv
KiBMb2FkUGFyYW1ldGVycy5oICovLAogCQkJCTQ5OTE3REIwMjUyRTMwNzUwMDUwMzEzRiAvKiBN
ZWRpYVBsYXliYWNrU3RhdGUuaCAqLywKKwkJCQk3MjAzNDQ5QTI2QTZDNDRDMDAwQTVGNTQgLyog
TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oICovLAogCQkJCTJENTAzNjZBMUJDREUxNzkwMEUy
MEJCMyAvKiBOYXRpdmVXZWJHZXN0dXJlRXZlbnQuaCAqLywKIAkJCQlDMDJCRkYxNTEyNTE0RkQ4
MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oICovLAogCQkJCTMxRUEyNUQzMTM0
Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50LmggKi8sCkBAIC02ODMwLDYgKzY4
MzMsNyBAQAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCAqLywK
IAkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmggKi8sCiAJCQkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyLmggKi8sCisJCQkJNzIwMzQ0OUIyNkE2QzQ3NjAwMEE1RjU0IC8qIFJl
bmRlcmluZ1VwZGF0ZUlELmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJl
c291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk1QzAwOTkzQjI0MTdGQjdFMDBENTNDMjUgLyogUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1
MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAKaW5kZXggMDljZTRjNmVmNmQ2YWJlNzFlMDNlYWI3ZmE4Y2QyMTRmZjY4
YjBmZS4uMWY1MzA3MGRlM2JhOTFlZmY4YjczMjgwYmJiOTg2NGFiNWRjMWM2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMTAyLDYgKzEwMiw5IEBAIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENs
b3NlKEdQVVByb2Nlc3NDb25uZWN0CiAgICAgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZSA9IHN0
ZDo6bnVsbG9wdDsKICAgICBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5TGVuZ3RoID0gMDsK
ICAgICBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5ID0gbnVsbHB0cjsKKyAgICAKKyAgICBt
X3JlbmRlcmluZ1VwZGF0ZUlEID0geyB9OworICAgIG1fZGlkUmVuZGVyaW5nVXBkYXRlSUQgPSB7
IH07CiB9CiAKIElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CkBAIC0yNTcsNiArMjYwLDEzIEBAIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciks
IHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hN
ZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZShtX3JlbmRlcmluZ1VwZGF0ZUlEKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwgSVBD
OjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkp
OworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
KCk7CisgICAgbV9yZW5kZXJpbmdVcGRhdGVJRC5pbmNyZW1lbnQoKTsKK30KKwogdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwpAQCAtMjc3LDYgKzI4NywxMiBAQCB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVz
aElkZQogICAgICAgICBpbWFnZUJ1ZmZlci0+ZGlkRmx1c2goZmx1c2hJZGVudGlmaWVyKTsKIH0K
IAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRlcmluZ1VwZGF0ZUlEKQoreworICAgIEFT
U0VSVChkaWRSZW5kZXJpbmdVcGRhdGVJRCA8PSBtX3JlbmRlcmluZ1VwZGF0ZUlEKTsKKyAgICBt
X2RpZFJlbmRlcmluZ1VwZGF0ZUlEID0gc3RkOjptaW4oZGlkUmVuZGVyaW5nVXBkYXRlSUQsIG1f
cmVuZGVyaW5nVXBkYXRlSUQpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6d2lsbEFwcGVuZEl0ZW0oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG5ld0Rlc3RpbmF0
aW9uSWRlbnRpZmllcikKIHsKICAgICBpZiAobV9jdXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZl
cklkZW50aWZpZXIgPT0gbmV3RGVzdGluYXRpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggNjMxNDk2NzBhMzU5NGUyNWEyZGE1Y2QxOTc2MTE0
NjFjNjE3OTc0MC4uMjkyMjZmYWE0NzhiMWJlMjNlMTA0MWJkZWQxMTlmOGIxMmQ3MzZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlSUQuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CkBAIC0xMDYs
NiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9p
ZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKIAorICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICBSZW5kZXJp
bmdVcGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5n
VXBkYXRlSUQ7IH0KKyAgICB1bnNpZ25lZCBkZWxheWVkUmVuZGVyaW5nVXBkYXRlQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3JlbmRlcmluZ1VwZGF0ZUlEIC0gbV9kaWRSZW5kZXJpbmdVcGRhdGVJ
RDsgfQorCiAgICAgZW51bSBjbGFzcyBEaWRSZWNlaXZlQmFja2VuZENyZWF0aW9uUmVzdWx0IDog
Ym9vbCB7CiAgICAgICAgIFJlY2VpdmVkQW55UmVzcG9uc2UsCiAgICAgICAgIFRpbWVvdXRPcklQ
Q0ZhaWx1cmUKQEAgLTEyOCw2ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzIHRv
IGJlIHJlY2VpdmVkLgogICAgIHZvaWQgZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGRpZEZsdXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRG
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCBkaWRSZW5kZXJpbmdVcGRh
dGVJRCk7CiAKICAgICBSZWZQdHI8RGlzcGxheUxpc3RXcml0ZXJIYW5kbGU+IG1vc3RSZWNlbnRs
eVVzZWREaXNwbGF5TGlzdEhhbmRsZSgpOwogICAgIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRlckhh
bmRsZT4gZmluZFJldXNhYmxlRGlzcGxheUxpc3RIYW5kbGUoc2l6ZV90IGNhcGFjaXR5KTsKQEAg
LTE0OCw2ICsxNTQsOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0
UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CiAgICAgdWludDY0X3QgbV9nZXRQaXhlbEJ1ZmZlclNo
YXJlZE1lbW9yeUxlbmd0aCB7IDAgfTsKICAgICBXZWJDb3JlOjpUaW1lciBtX2Rlc3Ryb3lHZXRQ
aXhlbEJ1ZmZlclNoYXJlZE1lbW9yeVRpbWVyIHsgKnRoaXMsICZSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSB9OworCisgICAgUmVu
ZGVyaW5nVXBkYXRlSUQgbV9yZW5kZXJpbmdVcGRhdGVJRDsKKyAgICBSZW5kZXJpbmdVcGRhdGVJ
RCBtX2RpZFJlbmRlcmluZ1VwZGF0ZUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDNhNTMyZDVlNGZmNjE2YmRiMDdlZGU3YTlhODNlOTMxMzdlNzNiZjEuLjQ2NzgzMDg5ZDM2
MjVkOWUzNGNhNmFkYWMxOGQ2MWQ4MGMwZDc4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNz
YWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
RGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBEaWRGaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZShXZWJLaXQ6OlJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRlcmluZ1Vw
ZGF0ZUlEKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDAzZjM0YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJk
MzkxMzcxMTAxYWYuLjVkNGJhMzAwM2NlZGEyNWJhZGRmMDg0YjIwYTMyODdhNWY4ODA0MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEwNCwxNiArMTA0LDIxIEBA
IHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUlt
YWdlJiBpbWFnZSkKIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udChG
b250JiBmb250KQogewotICAgIGF1dG8gcmVzdWx0ID0gbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuZW5zdXJlKGZvbnQucmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCksIFsmXSB7Ci0gICAgICAgIHJldHVybiAwOworICAgIGF1dG8gcmVzdWx0ID0gbV9m
b250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwLmVuc3VyZShmb250LnJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBbJl0geworICAgICAgICByZXR1cm4gbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nVXBkYXRlSUQoKTsKICAgICB9KTsKKworICAg
IGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jYWNoZUZvbnQobWFrZVJlZihmb250KSk7CisgICAgICAgICsrbV9udW1iZXJPZkZv
bnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGF1dG8mIGxhc3RWZXJzaW9uID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICBp
ZiAobGFzdFZlcnNpb24gIT0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbikgewotICAg
ICAgICBsYXN0VmVyc2lvbiA9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAg
aWYgKGxhc3RWZXJzaW9uICE9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmlu
Z1VwZGF0ZUlEKCkpIHsKKyAgICAgICAgbGFzdFZlcnNpb24gPSBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5yZW5kZXJpbmdVcGRhdGVJRCgpOwogICAgICAgICArK21fbnVtYmVyT2ZGb250
c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGU7CiAgICAgfQotICAgIGlmIChyZXN1bHQuaXNO
ZXdFbnRyeSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2FjaGVGb250
KG1ha2VSZWYoZm9udCkpOwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVs
ZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCkBAIC0xMjcsMTUgKzEzMiwxNCBAQCB2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5k
ZXJpbmdVcGRhdGUoKQogewotICAgICsrbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsK
ICAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKIH0K
IAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNsZWFyRm9udE1hcCgpCiB7Ci0gICAg
Zm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZl
cnNpb25NYXApCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZUlETWFwKQogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXkpOwotICAgIG1fZm9udElkZW50aWZpZXJU
b0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7CisgICAgbV9mb250SWRlbnRp
ZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwLmNsZWFyKCk7CiAgICAgbV9udW1iZXJPZkZv
bnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiB9CiAKQEAgLTE0MywyNSArMTQ3
LDI2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZUZvckZvbnRzKCkKIHsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1S
ZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSA9IDQ7CiAKLSAgICB1bnNpZ25lZCB0
b3RhbEZvbnRDb3VudCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uTWFwLnNpemUoKTsKKyAgICB1bnNpZ25lZCB0b3RhbEZvbnRDb3VudCA9IG1fZm9udElkZW50
aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcC5zaXplKCk7CiAgICAgUkVMRUFTRV9BU1NF
UlQobV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA8PSB0b3RhbEZv
bnRDb3VudCk7CiAgICAgaWYgKHRvdGFsRm9udENvdW50ID09IG1fbnVtYmVyT2ZGb250c1VzZWRJ
bkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEhhc2hTZXQ8
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB0b1JlbW92ZTsKLSAgICBmb3Ig
KGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lv
bk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0
ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKSB7
CisgICAgYXV0byByZW5kZXJpbmdVcGRhdGVJRCA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCk7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250SWRl
bnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZUlETWFwKSB7CisgICAgICAgIGlmIChyZW5kZXJp
bmdVcGRhdGVJRCAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9L
ZWVwRm9udEFsaXZlKSB7CiAgICAgICAgICAgICB0b1JlbW92ZS5hZGQoaXRlbS5rZXkpOwogICAg
ICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291
cmNlKGl0ZW0ua2V5KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIG1fZm9udElkZW50aWZpZXJU
b0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnJlbW92ZUlmKFsmXShjb25zdCBhdXRvJiBi
dWNrZXQpIHsKKyAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXAu
cmVtb3ZlSWYoWyZdKGNvbnN0IGF1dG8mIGJ1Y2tldCkgewogICAgICAgICByZXR1cm4gdG9SZW1v
dmUuY29udGFpbnMoYnVja2V0LmtleSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCit2b2lkIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIGZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMoKTsKICAgICBwcmVwYXJlRm9yTmV4dFJlbmRlcmlu
Z1VwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5kZXggNmQ3MzFjNGNj
NWVmNmVmMzJjMjgwMjlhNWIwMzI0MTNhMTVhNTg5MC4uNDQ1YzI0ZGY3NDdiNjVkYWI3OTU4MTU4
ZGJiMmM1Njg1NGJhNjg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJSZW5k
ZXJpbmdVcGRhdGVJRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhY2hlTmF0
aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmKTsKIAogICAgIHZvaWQgY2FjaGVGb250KFdl
YkNvcmU6OkZvbnQmKTsKLSAgICB2b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7Cisg
ICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwogCiAgICAgdm9pZCByZW1vdGVSZXNv
dXJjZUNhY2hlV2FzRGVzdHJveWVkKCk7CiAgICAgdm9pZCByZWxlYXNlTWVtb3J5KCk7CkBAIC02
OSw5ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZm
ZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsKIAotICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdD4gbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXA7CisgICAgSGFzaE1hcDxX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlbmRlcmluZ1VwZGF0ZUlEPiBt
X2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURNYXA7CiAgICAgdW5zaWduZWQg
bV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSB7IDAgfTsKLSAgICB1
aW50NjRfdCBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHsgMSB9OwogCiAgICAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGI0OWI0MzQ3ZmRhNmM3NzVhYTI1YjYyYTRj
MzdjYjlhNDQ0NjI1YTMuLjM4ZjNmNGUwMGVjNzg4NGY4MjY3ZDRhZWNhMmFkM2JhNzk1YTU5NGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05NzcsNiArOTc3LDExIEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVHJpZ2dl
clJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50
KSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2Uuc2hvdWxkVHJpZ2dlclJlbmRlcmluZ1VwZGF0
ZShyZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KTsKK30KKwogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIGlmIChtX3BhZ2UuZHJhd2lu
Z0FyZWEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjNzQ3ZjljMWI5Y2U3MWU5NWQ4YjBiZDA2
NDAyODVlYzBiZTNmNmM0Li5jMzQ0NmJjMTBmYmRkNTUzMTAyNmVmZmQ0YjVjNWMyYzU1YWIxOWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFRyaWdn
ZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3Vu
dCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7
CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDg3YzAzZWNhOTY4YTE3NTJm
NWYzY2VhYzkwODVmZjdkOTNiNTUxY2MuLjQzZWJkMGQzZGMwOGJjNjViODZkMDUwMjA2Y2M1M2Vk
ZjgzZmQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC00MTcyLDEyICs0MTcyLDI2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkVXBkYXRlUmVuZGVy
aW5nKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFVwZGF0ZVJlbmRlcmlu
Z0FmdGVyQ29tbWl0dGluZ0xvYWQoKSk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6c2hvdWxkVHJpZ2dl
clJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50
KSBjb25zdAoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG1heFJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQgPSBGdWxsU3BlZWRG
cmFtZXNQZXJTZWNvbmQ7CisgICAgaWYgKHJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQg
Pj0gbWF4UmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heERlbGF5ZWRSZW5kZXJpbmdV
cGRhdGVDb3VudCA9IDI7CisgICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5ICYm
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5kZWxheWVkUmVuZGVyaW5nVXBkYXRlQ291
bnQoKSA+IG1heERlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViUGFnZTo6ZmluYWxp
emVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+
IGZsYWdzKQogewogICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmxhZ3MpOwog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMDA0MjI3NWY1YTZkNTk2MTZhMGRkZjBlOWJlMjhlNDhjMmMwYzFhYy4uMjI3ZjQ0YmM2
MGFhNDZmY2JiNjUyYjdlMWI2MTc2ZDRmNjQzY2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgbGF5b3V0SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZygpOworICAg
IGJvb2wgc2hvdWxkVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJl
bmRlcmluZ1VwZGF0ZUNvdW50KSBjb25zdDsKICAgICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKE9wdGlvblNldDxXZWJDb3JlOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZsYWdzPik7CiAK
ICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoV1RGOjpDcml0aWNhbCk7Cg==
</data>
<flag name="commit-queue"
          id="456705"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434265</attachid>
            <date>2021-07-26 20:24:12 -0700</date>
            <delta_ts>2021-07-27 03:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227791-20210726202412.patch</filename>
            <type>text/plain</type>
            <size>41611</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ5YjE1MTZlMDk0NDk4
ZmQ1Zjc4MTdkNTgyMTFlOTU0Mzc4OGQ0NS4uNmM2ODY2YmY2ODQ3NmYyMDczZDIxNjE3NjQ3NWM4
NTdlMTczYWEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTI2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NzkxCisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIE1ha2UgQ2hyb21lQ2xpZW50IGRlY2lkZSB3aGV0aGVyIGEg
UmVuZGVyaW5nVXBkYXRlIGNhbiBiZSB0cmlnZ2VyZWQgb3IKKyAgICAgICAgc2hvdWxkIGJlIHJl
c2NoZWR1bGVkLiBLZWVwIHRyYWNrIG9mIGhvdyBtYW55IHRpbWVzIFJlbmRlcmluZ1VwZGF0ZSB3
YXMKKyAgICAgICAgcmVzY2hlZHVsZWQgdG8gZW5zdXJlIFJlbmRlcmluZ1VwZGF0ZSB3aWxsIGJl
IHRyaWdnZXJlZCBhbnl3YXkgYWZ0ZXIgYQorICAgICAgICBjZXJ0YWluIG51bWJlciBvZiByZXNj
aGVkdWxlcy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnQ6OmNhblRyaWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCk6CisgICAg
ICAgICogcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaDoKKwogMjAyMS0wNy0yNiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNw
ZWN1bGF0aXZlIHJldmVydCBvZiByMjgwMTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0MDJkYzczYjcyMzA5MGQ5
ZDlmYzcxZjVmODY4NjJkMjE3N2ViYjguLjE0ZjEwMzk5MjczN2RlYzllNmVjNTMwOTA5NzViNjc1
N2QyNTY5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA5IEBACisyMDIxLTA3LTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3VsYXRlIHRoZSBXZWJQ
YWdlIFJlbmRlcmluZ1VwZGF0ZXMgZnJvbSB0aGUgV2ViUHJvY2VzcyB0byB0aGUgR1BVUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Nzkx
CisgICAgICAgIDxyZGFyOi8vNzg0MzA2Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIFRoaXMgaXMgdGhlIHdvcmtmbG93IHRvIHJlZ3VsYXRlIHRoZSBX
ZWJQYWdlIFJlbmRlcmluZ1VwZGF0ZXM6CisKKyAgICAgICAgLS0gV2ViUGFnZTo6ZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoKSBjYWxscyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OgorICAg
ICAgICAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpLgorCisgICAgICAgIC0tIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzZW5kcyBpdHMK
KyAgICAgICAgICAgcmVuZGVyaW5nVXBkYXRlSUQgdG8gR1BVUFByb2Nlc3MgYW5kIGFza3MgaXQg
dG8gcHJvY2VzcyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgRGlzcGxheUxpc3QgaXRlbXMu
CisKKyAgICAgICAgLS0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUpIHByb2Nlc3NlcyBhbGwgdGhlCisgICAgICAgICAgIHBlbmRpbmcgaXRlbXMgYW5kIHNl
bmRzIHRoZSByZWNlaXZlZCByZW5kZXJpbmdVcGRhdGVJRCBiYWNrIHRvIHRoZQorICAgICAgICAg
ICBXZWJQcm9jZXNzLgorCisgICAgICAgIC0tIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKSBzdG9yZXMgdGhlIAorICAgICAgICAgICByZWNl
aXZlZCBkaWRSZW5kZXJpbmdVcGRhdGVJRC4KKworICAgICAgICAtLSBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCgpIHJldHVybnMKKyAgICAg
ICAgICAgJ3JlbmRlcmluZ1VwZGF0ZUlEIC0gZGlkUmVuZGVyaW5nVXBkYXRlSUQnIHdoaWNoIGlz
IHRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgdW4tcHJvY2Vzc2VkIGZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlIGJ5IEdQVVAuCisKKyAgICAgICAgLS0gV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmlu
Z1VwZGF0ZSgpIHVzZXMgZGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KCkKKyAgICAgICAgICAg
dG8gZGVjaWRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IFJlbmRlcmluZ1VwZGF0ZSBjYW4gYmUgdHJp
Z2dlcmVkIG9yCisgICAgICAgICAgIHNob3VsZCBiZSByZXNjaGVkdWxlZC4KKworICAgICAgICAt
LSBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKSBjYWxscyAK
KyAgICAgICAgICAgV2ViUGFnZTo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpIHRocm91Z2gg
dGhlIHBhZ2UgY2hyb21lIGNsaWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OnN1Ym1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBTaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgu
CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0
b3I8PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6
Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjppbmNyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyOjpuZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcjo6dG9VSW50NjQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9u
b3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVk
L1JlbmRlcmluZ1VwZGF0ZUlELmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9UcmFuc2FjdGlv
bklELmg6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90
b25pY09iamVjdElkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmVuY29kZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZp
ZXI6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElk
ZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6
b3BlcmF0b3I8IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yIT0gY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppbmNyZW1lbnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpu
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcjo6dG9VSW50NjQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvciBib29sIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZp
ZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbmRlcmluZ1VwZGF0ZUlEIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkZWxheWVk
UmVuZGVyaW5nVXBkYXRlQ291bnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRS
ZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNsZWFyRm9udE1hcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Y2FuVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblRy
aWdnZXJSZW5kZXJpbmdVcGRhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpm
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKwogMjAyMS0wNy0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1MgTW9udGVyZXldIFByZXNzaW5nIEZuK0Ugc2hvdWxkIHBy
ZXNlbnQgdGhlIGVtb2ppIHBpY2tlciB3aGVuIGVkaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCmluZGV4IDQ4NjJiNmE3NzlkZmVkODcxM2FmNDA1ZTkxZGNhZmVkNTJlZTk5ODEuLjM5
MzE0OTg1MTgwMTJiYmM3MTlkMmUxNGVlY2Q2YWU0NGNiYTg3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaApAQCAtMzY0LDYgKzM2NCw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgY2hh
bmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdy
YXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgPSAwOwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFRyaWdnZXJSZW5k
ZXJpbmdVcGRhdGUodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBNYWtl
cyBhIHJlbmRlcmluZyB1cGRhdGUgaGFwcGVuIHNvb24sIHR5cGljYWxseSBpbiB0aGUgY3VycmVu
dCBydW5sb29wLgogICAgIHZpcnR1YWwgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkgPSAw
OwogICAgIC8vIFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNvb3JkaW5hdGVzIHdp
dGggZGlzcGxheSByZWZyZXNoLiBSZXR1cm5zIHRydWUgaWYgc2NoZWR1bGVkLiAoVGhpcyBpcyBv
bmx5IHVzZWQgYnkgU1ZHSW1hZ2VDaHJvbWVDbGllbnQuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCmluZGV4IDUyNmU1ZWE2OTlkN2U2NWQ0
NGJkM2VjNGJlYzUxNTUwOTY0Y2Y3YjMuLjc3ZTRmZWYwYzE5MWJmYjE0YWMzOGM0MzNmYjg3ZjE0
Nzk0NzRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRl
U2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5jcHAKQEAgLTEyNiw3ICsxMjYsMTQgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogICAgIHRyYWNlUG9pbnQoVHJpZ2dlclJlbmRl
cmluZ1VwZGF0ZSk7CiAKICAgICBjbGVhclNjaGVkdWxlZCgpOwotICAgIHRyaWdnZXJSZW5kZXJp
bmdVcGRhdGUoKTsKKyAgICAKKyAgICBpZiAobV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLnNob3Vs
ZFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUobV9yZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50
KSkgeworICAgICAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fcmVzY2hl
ZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgKyttX3Jlc2NoZWR1bGVkUmVuZGVyaW5n
VXBkYXRlQ291bnQ7CisgICAgfQogfQogCiB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6
dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZUZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKaW5kZXggOWI1MWM3MDYwZDk4ZWJkZjY2MzE0
YzhmY2ZlZDk1ZjBiN2VmZjhlNi4uYjJhYTBlNTU2MmUwNzQ4MzM0M2U2NDgyZjk1YTdlNDY2NmI2
N2ZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
ci5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX3JlZnJlc2hUaW1lcjsKKyAgICB1bnNpZ25lZCBtX3Jl
c2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlQ291bnQgeyAwIH07CiAgICAgYm9vbCBtX3VzZVRpbWVy
IHsgZmFsc2UgfTsKICAgICBib29sIG1fc2NoZWR1bGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggOGY0ZmRmZGE1NGU0ZGY0ZjFmYjVlNjlhMmFiNDllOWJiNTk4
ZTBlNy4uZGM3YTI4NzMyNDAyZDFmOTljOGMxNDY0MzA0YzM2NTFjNGIwMjU2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtNTE5LDYgKzUxOSwxMyBAQCB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcgogICAgIHVwZGF0ZVJlbmRlcmluZ1Jlc291cmNlUmVxdWVzdCgpOwogfQogCit2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1Vw
ZGF0ZUlEIHJlbmRlcmluZ1VwZGF0ZUlEKQoreworICAgIGlmIChtX3BlbmRpbmdXYWtldXBJbmZv
ICYmIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihtX3BlbmRpbmdXYWtl
dXBJbmZvLT5hcmd1bWVudHMuZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQorICAg
ICAgICB3YWtlVXBBbmRBcHBseURpc3BsYXlMaXN0KHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nV2Fr
ZXVwSW5mbywgc3RkOjpudWxsb3B0KS0+YXJndW1lbnRzKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKHJl
bmRlcmluZ1VwZGF0ZUlEKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisKIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGlkQ3JlYXRlU2hhcmVkRGlzcGxheUxpc3RIYW5k
bGUoRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBmM2Q4MjMwMTNjZTI3OWU1N2NjM2U0
YjA0MTM2MTZlNWM0OGI3NTNhLi43ZDgwYjcyNTg2Mzk0ZTU1ZWNjY2M5YmY3M2Y5NWVmYjBjYzk0
MDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNh
Y2hlLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKKyNpbmNsdWRl
ICJSZW5kZXJpbmdVcGRhdGVJRC5oIgogI2luY2x1ZGUgIlNjb3BlZFJlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CkBAIC0xNDUsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxG
b250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgdWludDY0X3QgdXNlQ291bnQpOworICAgIHZvaWQgZmluYWxp
emVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQpOwogICAgIHZvaWQgZGlkQ3JlYXRl
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogCiAg
ICAgY2xhc3MgUmVwbGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVwbGF5ZXI6OkRlbGVnYXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4KaW5kZXggZmY2MmFmNTExZjNlMmU1Y2ViZjQ3NDFiYjM1MDMzODQ5NGUzOGViNy4uMWVmNTZk
Y2M5NzYyNzRlMzU2YWIyMmI0ZWE0ZTcxYmNmYWMwYjBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCB7CiAgICAgRGVsZXRlQWxsRm9udHMoKQogICAgIERpZENyZWF0ZVNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRs
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVy
SWRlbnRpZmllcikKICAgICBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgdWludDY0X3Qg
dXNlQ291bnQpCisgICAgRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoV2ViS2l0OjpSZW5kZXJpbmdV
cGRhdGVJRCByZW5kZXJpbmdVcGRhdGVJRCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDQ2MDk5
OWVmZjlhZjMwNTBiN2M3OWU2NWYyOWU3NDYwZDNlZjZlY2QuLjE5MGRhNmFmMjBjNmJiMWE5OWZm
YmVmMmNhODZlZTc2YzQwNzM4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMzM0LDYgKzMzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3
YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyJywK
KyAgICAgICAgJ1dlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQnLAogICAgICAgICAnV2ViS2l0OjpS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRjZWQ4ODZhOGUwZWVhZTNhNGU2Nzk4MGE1YmFlOTI5N2JhMjBmMTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Nb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
LmgKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIE1vbm90b25pY09iamVjdElk
ZW50aWZpZXIgaXMgc2ltaWxhciB0byBPYmplY3RJZGVudGlmaWVyIGJ1dCBpdCBjYW4gYmUgbW9u
b3RvbmljYWxseQorLy8gaW5jcmVhc2VkIGluIHBsYWNlLgorLy8gRklYTUU6IG1lcmdlIE9iamVj
dElkZW50aWZpZXIgYW5kIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgaW4gb25lIGNsYXNzLgor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciB7Citw
dWJsaWM6CisgICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcigpID0gZGVmYXVsdDsKKworICAg
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBl
KQorICAgICAgICA6IG1faWRlbnRpZmllcihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICB7
IH0KKworICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIobV9pZGVudGlmaWVyKSk7Cisg
ICAgICAgIGVuY29kZXIgPDwgbV9pZGVudGlmaWVyOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsK
KyAgICAgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgQVNTRVJUKGlzVmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAg
ICAgIHJldHVybiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIHsgKmlkZW50aWZpZXIgfTsKKyAg
ICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
ciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID09IG90
aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2lkZW50aWZpZXIgPiBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAgYm9vbCBv
cGVyYXRvcj49KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA+PSBvdGhlci5tX2lkZW50aWZpZXI7
CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyIDwg
b3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2lkZW50aWZpZXIgPD0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgIT0gb3RoZXIubV9pZGVudGlm
aWVyOworICAgIH0KKworICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXImIGluY3JlbWVudCgp
CisgICAgeworICAgICAgICArK21faWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuICp0aGlzOwor
ICAgIH0KKworICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgbmV4dCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcihtX2lkZW50aWZpZXIg
KyAxKTsKKyAgICB9CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKworICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2lkZW50aWZpZXIpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgTW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjxVPiBtYWtlTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCk7
CisgICAgZnJpZW5kIHN0cnVjdCBIYXNoVHJhaXRzPE1vbm90b25pY09iamVjdElkZW50aWZpZXI+
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBzdHJ1Y3QgTW9ub3RvbmljT2JqZWN0
SWRlbnRpZmllckhhc2g7CisKKyAgICBzdGF0aWMgdWludDY0X3QgaGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCkgeyByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9Cisg
ICAgc3RhdGljIGJvb2wgaXNWYWxpZElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgeyBy
ZXR1cm4gaWRlbnRpZmllciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorCisgICAgZXhw
bGljaXQgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQorICAg
ICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICB1aW50
NjRfdCBtX2lkZW50aWZpZXIgeyAwIH07Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5s
aW5lIGludDY0X3Qgb3BlcmF0b3ItKGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VD4m
IGEsIGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VD4mIGIpCit7CisgICAgQ2hlY2tl
ZEludDY0IHJlc3VsdCA9IENoZWNrZWRJbnQ2NChhLnRvVUludDY0KCkgLSBiLnRvVUludDY0KCkp
OworICAgIHJldHVybiByZXN1bHQuaGFzT3ZlcmZsb3dlZCgpID8gMCA6IHJlc3VsdC52YWx1ZSgp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRpZmll
cikKK3sKKyAgICB0cyA8PCBpZGVudGlmaWVyLnRvVUludDY0KCk7CisgICAgcmV0dXJuIHRzOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbmRlcmluZ1VwZGF0ZUlELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW5kZXJpbmdV
cGRhdGVJRC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4MDUxZGY2NTE3NDI0NjMxN2QxYzhjNjA3NmIyOTA3ZTYw
YTBlMWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW5kZXJpbmdV
cGRhdGVJRC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIk1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gUmVuZGVyaW5nVXBkYXRlSURUeXBlIHsgfTsKK3VzaW5nIFJlbmRlcmluZ1Vw
ZGF0ZUlEID0gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxSZW5kZXJpbmdVcGRhdGVJRFR5cGU+
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1RyYW5zYWN0aW9uSUQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQu
aAppbmRleCA5YzFkMDU0NjNiNmU3NmYwODlhNGRkZTAzODRlNjczMGQwNTI3MmQ3Li40YmRlZWUw
M2FiNzI3NzcwMGNhNDI1NjA4MDg4Yjk3M2Y0OWI2ZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVHJh
bnNhY3Rpb25JRC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI1LDExMSArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
IDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorI2luY2x1ZGUgIk1vbm90b25pY09iamVjdElkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1vbm90b25pY09iamVjdElk
ZW50aWZpZXIgewotcHVibGljOgotICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIoKSA9IGRl
ZmF1bHQ7Ci0KLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCkpCi0gICAgeyB9Ci0KLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVmFsaWRJZGVudGlmaWVyKG1faWRl
bnRpZmllcikpOwotICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKLSAgICB9Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi0gICAgewotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyOwotICAgICAgICBkZWNvZGVyID4+
IGlkZW50aWZpZXI7Ci0gICAgICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllcigqaWRlbnRp
ZmllcikpOwotICAgICAgICByZXR1cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciB7ICppZGVu
dGlmaWVyIH07Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faWRl
bnRpZmllciA9PSBvdGhlci5tX2lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRv
cj4oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID4gb3RoZXIubV9pZGVudGlmaWVyOwotICAgIH0K
LQotICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgPj0gb3RoZXIu
bV9pZGVudGlmaWVyOwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1vbm90b25p
Y09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
aWRlbnRpZmllciA8IG90aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJh
dG9yPD0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyIDw9IG90aGVyLm1faWRlbnRpZmllcjsKLSAg
ICB9Ci0KLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
ciYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyICE9IG90
aGVyLm1faWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
JiBpbmNyZW1lbnQoKQotICAgIHsKLSAgICAgICAgKyttX2lkZW50aWZpZXI7Ci0gICAgICAgIHJl
dHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIG5leHQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIo
bV9pZGVudGlmaWVyICsgMSk7Ci0gICAgfQotCi0gICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0KLSAgICBTdHJpbmcgbG9nZ2luZ1N0cmlu
ZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9pZGVudGlm
aWVyKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5k
IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VT4gbWFrZU1vbm90b25pY09iamVjdElkZW50aWZp
ZXIodWludDY0X3QpOwotICAgIGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyPjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE1v
bm90b25pY09iamVjdElkZW50aWZpZXJIYXNoOwotCi0gICAgc3RhdGljIHVpbnQ2NF90IGhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+
OjptYXgoKTsgfQotICAgIHN0YXRpYyBib29sIGlzVmFsaWRJZGVudGlmaWVyKHVpbnQ2NF90IGlk
ZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIgIT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7
IH0KLQotICAgIGV4cGxpY2l0IE1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0X3QgaWRl
bnRpZmllcikKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICB7Ci0gICAg
fQotCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwotfTsKLQotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE1v
bm90b25pY09iamVjdElkZW50aWZpZXI8VD4mIGlkZW50aWZpZXIpCi17Ci0gICAgdHMgPDwgaWRl
bnRpZmllci50b1VJbnQ2NCgpOwotICAgIHJldHVybiB0czsKLX0KLQogZW51bSBUcmFuc2FjdGlv
bklEVHlwZSB7IH07CiB1c2luZyBUcmFuc2FjdGlvbklEID0gTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllcjxUcmFuc2FjdGlvbklEVHlwZT47CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjI0
NjA2Y2M1ZTE1ZDE4MDhmNTU5MzIzNjE1OTkzNGQ5NzFiMmY5Yi4uNzNlYjAyODJmZGE3ZmQ5MjI5
ZWQ0ZmI1ZTEzZWMwMjYyYTExNWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjAzLDYgKzQ2MDMsOCBAQAogCQk3MUJBQTczMTI1
RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tNb2RlbFZpZXcuaDsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MUJBQTczMjI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2Rl
bFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vZGVs
Vmlldy5tbTsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzFGQjgxMEEyMjYwNjI3QTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3Vz
ZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcyMDM0NDlBMjZBNkM0NEMwMDBBNUY1NCAvKiBNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vbm90b25pY09iamVjdElkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIwMzQ0OUIyNkE2QzQ3NjAwMEE1
RjU0IC8qIFJlbmRlcmluZ1VwZGF0ZUlELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0
ZUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdE
Mzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVz
b3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODExLDYgKzY4MTMsNyBAQAogCQkJCTJEMTA4NzVF
MUQyQzU3M0UwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVycy5jcHAgKi8sCiAJCQkJMkQxMDg3NUYx
RDJDNTczRTAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzLmggKi8sCiAJCQkJNDk5MTdEQjAyNTJF
MzA3NTAwNTAzMTNGIC8qIE1lZGlhUGxheWJhY2tTdGF0ZS5oICovLAorCQkJCTcyMDM0NDlBMjZB
NkM0NEMwMDBBNUY1NCAvKiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyLmggKi8sCiAJCQkJMkQ1
MDM2NkExQkNERTE3OTAwRTIwQkIzIC8qIE5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oICovLAogCQkJ
CUMwMkJGRjE1MTI1MTRGRDgwMDlDQ0JFQSAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggKi8s
CiAJCQkJMzFFQTI1RDMxMzRGNzhENjAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnQuaCAq
LywKQEAgLTY4MzAsNiArNjgzMyw3IEBACiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8q
IFByaW50SW5mby5oICovLAogCQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNz
VGVybWluYXRpb25SZWFzb24uaCAqLywKIAkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLywKKwkJCQk3MjAzNDQ5QjI2QTZD
NDc2MDAwQTVGNTQgLyogUmVuZGVyaW5nVXBkYXRlSUQuaCAqLywKIAkJCQk1Q0I3QUZFNjIzQzY4
MUIwMDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkSW5mby5oICovLAogCQkJCTVDMDA5OTNCMjQxN0ZC
N0UwMEQ1M0MyNSAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oICovLAogCQkJ
CTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBlOTVmMWFkMzkzNGYyNTRiZDVm
OTlkMjNhNWI0NjU1NTM1Y2UwOTMwLi41Nzk5NTI1YmFlMWM1MTZhNzdlYzM5MDdhZmVkODFhMTIx
OTQ2Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0x
MDIsNiArMTAyLDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdVByb2Nl
c3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3QKICAgICBtX2dldFBpeGVsQnVm
ZmVyU2VtYXBob3JlID0gc3RkOjpudWxsb3B0OwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRN
ZW1vcnlMZW5ndGggPSAwOwogICAgIG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkgPSBudWxs
cHRyOworICAgIAorICAgIG1fcmVuZGVyaW5nVXBkYXRlSUQgPSB7IH07CisgICAgbV9kaWRSZW5k
ZXJpbmdVcGRhdGVJRCA9IHsgfTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKQEAgLTI1Nyw2
ICsyNjAsMTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1v
dGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWYKICAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCB1c2VDb3VudCksIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCks
IElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShtX3JlbmRlcmluZ1VwZGF0ZUlEKSwgcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VF
dmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgbV9yZW5kZXJpbmdVcGRhdGVJRC5p
bmNyZW1lbnQoKTsKK30KKwogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNo
ZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtMjc3LDYgKzI4
NywxMiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxh
eUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgICAgICBpbWFnZUJ1ZmZlci0+ZGlk
Rmx1c2goZmx1c2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJl
bmRlcmluZ1VwZGF0ZUlEKQoreworICAgIEFTU0VSVChkaWRSZW5kZXJpbmdVcGRhdGVJRCA8PSBt
X3JlbmRlcmluZ1VwZGF0ZUlEKTsKKyAgICBtX2RpZFJlbmRlcmluZ1VwZGF0ZUlEID0gc3RkOjpt
aW4oZGlkUmVuZGVyaW5nVXBkYXRlSUQsIG1fcmVuZGVyaW5nVXBkYXRlSUQpOworfQorCiB2b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2lsbEFwcGVuZEl0ZW0oUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIG5ld0Rlc3RpbmF0aW9uSWRlbnRpZmllcikKIHsKICAgICBpZiAobV9j
dXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXIgPT0gbmV3RGVzdGluYXRpb25J
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggYjJj
ZTNkOGMyOGFiMTkxMjUzNTE5MDI3ZmM5MDc0ZDIwZWQxNzI4Mi4uNTk3YzA3ZjNkOTdmMDFlM2Zi
OWZjOTc1Mjc4ZjMwMzkzYzM5YjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZENyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAi
UmVuZGVyaW5nVXBkYXRlSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CkBAIC0xMDYsNiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlbGV0ZUFsbEZvbnRzKCk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VDb3VudCk7CiAKKyAg
ICB2b2lkIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgUmVuZGVyaW5nVXBkYXRlSUQg
cmVuZGVyaW5nVXBkYXRlSUQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmluZ1VwZGF0ZUlEOyB9
CisgICAgdW5zaWduZWQgZGVsYXllZFJlbmRlcmluZ1VwZGF0ZUNvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9yZW5kZXJpbmdVcGRhdGVJRCAtIG1fZGlkUmVuZGVyaW5nVXBkYXRlSUQ7IH0KKwogICAg
IGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJhY2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAg
ICAgICBSZWNlaXZlZEFueVJlc3BvbnNlLAogICAgICAgICBUaW1lb3V0T3JJUENGYWlsdXJlCkBA
IC0xMjgsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZl
ZC4KICAgICB2b2lkIGRpZENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkaWRGbHVzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluYWxpemVSZW5k
ZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVuZGVyaW5nVXBkYXRlSUQpOwogCiAg
ICAgUmVmUHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBtb3N0UmVjZW50bHlVc2VkRGlzcGxh
eUxpc3RIYW5kbGUoKTsKICAgICBSZWZQdHI8RGlzcGxheUxpc3RXcml0ZXJIYW5kbGU+IGZpbmRS
ZXVzYWJsZURpc3BsYXlMaXN0SGFuZGxlKHNpemVfdCBjYXBhY2l0eSk7CkBAIC0xNDgsNiArMTU0
LDkgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5OwogICAgIHVpbnQ2NF90IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnlM
ZW5ndGggeyAwIH07CiAgICAgV2ViQ29yZTo6VGltZXIgbV9kZXN0cm95R2V0UGl4ZWxCdWZmZXJT
aGFyZWRNZW1vcnlUaW1lciB7ICp0aGlzLCAmUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpk
ZXN0cm95R2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnkgfTsKKworICAgIFJlbmRlcmluZ1VwZGF0
ZUlEIG1fcmVuZGVyaW5nVXBkYXRlSUQ7CisgICAgUmVuZGVyaW5nVXBkYXRlSUQgbV9kaWRSZW5k
ZXJpbmdVcGRhdGVJRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzYTUzMmQ1
ZTRmZjYxNmJkYjA3ZWRlN2E5YTgzZTkzMTM3ZTczYmYxLi40Njc4MzA4OWQzNjI1ZDllMzRjYTZh
ZGFjMThkNjFkODBjMGQ3ODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERpZENyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCiAgICAgRGlkRmx1c2goV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgRGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoV2ViS2l0OjpSZW5kZXJpbmdVcGRhdGVJRCBkaWRSZW5kZXJpbmdVcGRhdGVJRCkKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcAppbmRleCA0MTRlMTk5NmU4YmMyOTk1YjdmNzA3NmFlNmE1MjE0ZDYzNjc2Njhi
Li45NDE3OWUwNGZlNDg3Y2UxNTA5NTlhMDllNjZiNjQ1NTQ1ZDIyZDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBAIC0xMDQsMTYgKzEwNCwyMSBAQCB2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShOYXRpdmVJbWFnZSYgaW1hZ2Up
CiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uTWFwLmVuc3VyZShmb250LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBb
Jl0gewotICAgICAgICByZXR1cm4gMDsKKyAgICBhdXRvIHJlc3VsdCA9IG1fZm9udElkZW50aWZp
ZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVJRE1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LnJlbmRlcmluZ1VwZGF0ZUlEKCk7CiAgICAgfSk7CisKKyAgICBpZiAocmVzdWx0
LmlzTmV3RW50cnkpIHsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY2Fj
aGVGb250KG1ha2VSZWYoZm9udCkpOworICAgICAgICArK21fbnVtYmVyT2ZGb250c1VzZWRJbkN1
cnJlbnRSZW5kZXJpbmdVcGRhdGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRv
JiBsYXN0VmVyc2lvbiA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Ci0gICAgaWYgKGxhc3RWZXJz
aW9uICE9IG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24pIHsKLSAgICAgICAgbGFzdFZl
cnNpb24gPSBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOworICAgIGlmIChsYXN0VmVy
c2lvbiAhPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdVcGRhdGVJRCgp
KSB7CisgICAgICAgIGxhc3RWZXJzaW9uID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVuZGVyaW5nVXBkYXRlSUQoKTsKICAgICAgICAgKyttX251bWJlck9mRm9udHNVc2VkSW5DdXJy
ZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0KLSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVmKGZv
bnQpKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQpAQCAtMTI2LDE1ICsxMzEsMTQgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKIAogdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRl
KCkKIHsKLSAgICArK21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CiAgICAgbV9udW1i
ZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiB9CiAKIHZvaWQgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjbGVhckZvbnRNYXAoKQogewotICAgIGZvciAoYXV0byYg
aXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwKQor
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVJRE1hcCkKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJl
bW90ZVJlc291cmNlKGl0ZW0ua2V5LCAwKTsgLy8gRklYTUU6IFBhc3MgdGhlIHJlYWwgdXNlIGNv
dW50IGhlcmUuCi0gICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b25NYXAuY2xlYXIoKTsKKyAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRl
SURNYXAuY2xlYXIoKTsKICAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5n
VXBkYXRlID0gMDsKIH0KIApAQCAtMTQyLDI1ICsxNDYsMjYgQEAgdm9pZCBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMoKQogewogICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVw
Rm9udEFsaXZlID0gNDsKIAotICAgIHVuc2lnbmVkIHRvdGFsRm9udENvdW50ID0gbV9mb250SWRl
bnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuc2l6ZSgpOworICAgIHVuc2ln
bmVkIHRvdGFsRm9udENvdW50ID0gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0
ZUlETWFwLnNpemUoKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX251bWJlck9mRm9udHNVc2VkSW5D
dXJyZW50UmVuZGVyaW5nVXBkYXRlIDw9IHRvdGFsRm9udENvdW50KTsKICAgICBpZiAodG90YWxG
b250Q291bnQgPT0gbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+IHRvUmVtb3ZlOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1fZm9udElkZW50
aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwKSB7Ci0gICAgICAgIGlmIChtX2N1
cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIC0gaXRlbS52YWx1ZSA+PSBtaW5pbXVtUmVuZGVy
aW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKKyAgICBhdXRvIHJlbmRlcmluZ1VwZGF0
ZUlEID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nVXBkYXRlSUQoKTsK
KyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBk
YXRlSURNYXApIHsKKyAgICAgICAgaWYgKHJlbmRlcmluZ1VwZGF0ZUlEIC0gaXRlbS52YWx1ZSA+
PSBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUpIHsKICAgICAgICAg
ICAgIHRvUmVtb3ZlLmFkZChpdGVtLmtleSk7CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UoaXRlbS5rZXksIDApOyAvLyBGSVhN
RTogUGFzcyB0aGUgcmVhbCB1c2UgY291bnQgaGVyZS4KICAgICAgICAgfQogICAgIH0KIAotICAg
IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnJlbW92ZUlm
KFsmXShjb25zdCBhdXRvJiBidWNrZXQpIHsKKyAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVu
ZGVyaW5nVXBkYXRlSURNYXAucmVtb3ZlSWYoWyZdKGNvbnN0IGF1dG8mIGJ1Y2tldCkgewogICAg
ICAgICByZXR1cm4gdG9SZW1vdmUuY29udGFpbnMoYnVja2V0LmtleSk7CiAgICAgfSk7CiB9CiAK
LXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZSgpCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoKQogewogICAgIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRm9yRm9udHMoKTsKICAgICBwcmVw
YXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmgKaW5kZXggNmQ3MzFjNGNjNWVmNmVmMzJjMjgwMjlhNWIwMzI0MTNhMTVhNTg5MC4uNDQ1YzI0
ZGY3NDdiNjVkYWI3OTU4MTU4ZGJiMmM1Njg1NGJhNjg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKKyNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVJRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0
aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmKTsKIAogICAg
IHZvaWQgY2FjaGVGb250KFdlYkNvcmU6OkZvbnQmKTsKLSAgICB2b2lkIGRpZEZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlKCk7CisgICAgdm9pZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwogCiAg
ICAgdm9pZCByZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKCk7CiAgICAgdm9pZCByZWxl
YXNlTWVtb3J5KCk7CkBAIC02OSw5ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VCdWZmZXJI
YXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUlt
YWdlczsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCB1aW50NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25N
YXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJl
bmRlcmluZ1VwZGF0ZUlEPiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlSURN
YXA7CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1Vw
ZGF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9u
IHsgMSB9OwogCiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGI0OWI0MzQ3
ZmRhNmM3NzVhYTI1YjYyYTRjMzdjYjlhNDQ0NjI1YTMuLjM4ZjNmNGUwMGVjNzg4NGY4MjY3ZDRh
ZWNhMmFkM2JhNzk1YTU5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05NzcsNiArOTc3
LDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkNocm9tZUNs
aWVudDo6c2hvdWxkVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJl
bmRlcmluZ1VwZGF0ZUNvdW50KSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2Uuc2hvdWxkVHJp
Z2dlclJlbmRlcmluZ1VwZGF0ZShyZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KTsKK30K
Kwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKQogewogICAg
IGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjNzQ3Zjlj
MWI5Y2U3MWU5NWQ4YjBiZDA2NDAyODVlYzBiZTNmNmM0Li5jMzQ0NmJjMTBmYmRkNTUzMTAyNmVm
ZmQ0YjVjNWMyYzU1YWIxOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMjksNiArMjI5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgYXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAg
ICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKKyAg
ICBib29sIHNob3VsZFRyaWdnZXJSZW5kZXJpbmdVcGRhdGUodW5zaWduZWQgcmVzY2hlZHVsZWRS
ZW5kZXJpbmdVcGRhdGVDb3VudCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB0cmlnZ2VyUmVuZGVy
aW5nVXBkYXRlKCkgZmluYWw7CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlv
bihjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJikgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDg3YzAzZWNhOTY4YTE3NTJmNWYzY2VhYzkwODVmZjdkOTNiNTUxY2MuLjQzZWJkMGQzZGMwOGJj
NjViODZkMDUwMjA2Y2M1M2VkZjgzZmQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MTcyLDEyICs0MTcyLDI2IEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkVXBkYXRlUmVuZGVyaW5nKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFVwZGF0ZVJlbmRlcmluZ0FmdGVyQ29tbWl0dGluZ0xvYWQoKSk7CiB9CiAKK2Jvb2wgV2Vi
UGFnZTo6c2hvdWxkVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNpZ25lZCByZXNjaGVkdWxlZFJl
bmRlcmluZ1VwZGF0ZUNvdW50KSBjb25zdAoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFJlc2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRl
Q291bnQgPSBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQ7CisgICAgaWYgKHJlc2NoZWR1bGVkUmVu
ZGVyaW5nVXBkYXRlQ291bnQgPj0gbWF4UmVzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGVDb3VudCkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1h
eERlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCA9IDI7CisgICAgaWYgKG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5ICYmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5kZWxheWVk
UmVuZGVyaW5nVXBkYXRlQ291bnQoKSA+IG1heERlbGF5ZWRSZW5kZXJpbmdVcGRhdGVDb3VudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRmxhZ3M+IGZsYWdzKQogewogICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoZmxhZ3MpOwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1Vw
ZGF0ZSgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+ZmluYWxpemVS
ZW5kZXJpbmdVcGRhdGUoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDA0MjI3NWY1YTZkNTk2MTZhMGRkZjBlOWJlMjhlNDhj
MmMwYzFhYy4uMjI3ZjQ0YmM2MGFhNDZmY2JiNjUyYjdlMWI2MTc2ZDRmNjQzY2MwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzk5LDYgKzM5OSw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbGF5b3V0SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0
ZVJlbmRlcmluZygpOworICAgIGJvb2wgc2hvdWxkVHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSh1bnNp
Z25lZCByZXNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZUNvdW50KSBjb25zdDsKICAgICB2b2lkIGZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKE9wdGlvblNldDxXZWJDb3JlOjpGaW5hbGl6ZVJlbmRlcmlu
Z1VwZGF0ZUZsYWdzPik7CiAKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoV1RGOjpDcml0aWNhbCk7
Cg==
</data>
<flag name="commit-queue"
          id="456723"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>