<?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>124579</bug_id>
          
          <creation_ts>2013-11-19 06:03:41 -0800</creation_ts>
          <short_desc>Use unsigned consistently, and check for invalid casts when calling into SharedBuffer from other code.</short_desc>
          <delta_ts>2014-01-06 03:14:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="László Langó">llango.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>ossy</cc>
    
    <cc>philn</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>952049</commentid>
    <comment_count>0</comment_count>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-19 06:03:41 -0800</bug_when>
    <thetext>Use unsigned consistently, and check for invalid casts when calling into SharedBuffer from other code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952050</commentid>
    <comment_count>1</comment_count>
      <attachid>217294</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-19 06:06:09 -0800</bug_when>
    <thetext>Created attachment 217294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952053</commentid>
    <comment_count>2</comment_count>
      <attachid>217294</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-19 06:19:34 -0800</bug_when>
    <thetext>Comment on attachment 217294
Patch

Attachment 217294 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/27118092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952055</commentid>
    <comment_count>3</comment_count>
      <attachid>217294</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-19 06:35:00 -0800</bug_when>
    <thetext>Comment on attachment 217294
Patch

Attachment 217294 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/27578006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952060</commentid>
    <comment_count>4</comment_count>
      <attachid>217297</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-19 07:01:54 -0800</bug_when>
    <thetext>Created attachment 217297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952064</commentid>
    <comment_count>5</comment_count>
      <attachid>217297</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-19 07:15:53 -0800</bug_when>
    <thetext>Comment on attachment 217297
Patch

Attachment 217297 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/26898113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952066</commentid>
    <comment_count>6</comment_count>
      <attachid>217297</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-19 07:36:34 -0800</bug_when>
    <thetext>Comment on attachment 217297
Patch

Attachment 217297 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/27538008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952097</commentid>
    <comment_count>7</comment_count>
      <attachid>217297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-19 09:27:10 -0800</bug_when>
    <thetext>Comment on attachment 217297
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Use unsigned consistently, and check for invalid casts when calling into SharedBuffer from other code.

On 64-bit platforms, this changes from 32-bit to 64-bit, not just from signed to unsigned. Rationale?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952101</commentid>
    <comment_count>8</comment_count>
      <attachid>217297</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-19 09:32:39 -0800</bug_when>
    <thetext>Comment on attachment 217297
Patch

You changed the type signature of some symbols that are exported by the WebCore.order file.  Update the entry for __ZN7WebCore12SharedBufferC1EPKci to match the new __ZN7WebCore12SharedBufferC1EPKhi signature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952125</commentid>
    <comment_count>9</comment_count>
      <attachid>217297</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-19 10:16:29 -0800</bug_when>
    <thetext>Comment on attachment 217297
Patch

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

To fix the build, please update WebCore.exp. There is no need to change WebCore.order, even if it gets out of date - it&apos;s generated from profile data when needed.

But I think that this patch doesn&apos;t fix all the code paths where an implicit cast occurs.

&gt; Source/WebCore/loader/ResourceLoader.cpp:193
&gt; -void ResourceLoader::addDataOrBuffer(const char* data, int length, SharedBuffer* buffer, DataPayloadType dataPayloadType)
&gt; +void ResourceLoader::addDataOrBuffer(const char* data, size_t length, SharedBuffer* buffer, DataPayloadType dataPayloadType)

The patch changes this function, but doesn&apos;t change call sites. Specifically, ResourceLoader::didReceiveDataOrBuffer still calls this function with an int length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952127</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-19 10:18:14 -0800</bug_when>
    <thetext>Thank you for looking into this. It&apos;s crazy that we still have a signed type here, and it&apos;s a very desirable improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952130</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-19 10:23:14 -0800</bug_when>
    <thetext>&gt; To fix the build, please update WebCore.exp. 

More precisely, WebCore.exp.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952131</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-19 10:26:38 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; To fix the build, please update WebCore.exp. 
&gt; 
&gt; More precisely, WebCore.exp.in.

Sorry for my misinformation!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952568</commentid>
    <comment_count>13</comment_count>
      <attachid>217429</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-20 07:29:44 -0800</bug_when>
    <thetext>Created attachment 217429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952570</commentid>
    <comment_count>14</comment_count>
      <attachid>217429</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-20 07:38:36 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/30128097</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952575</commentid>
    <comment_count>15</comment_count>
      <attachid>217429</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-20 07:43:15 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/29688102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952590</commentid>
    <comment_count>16</comment_count>
      <attachid>217429</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-20 08:02:28 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/29888098</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952594</commentid>
    <comment_count>17</comment_count>
      <attachid>217429</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-20 08:10:44 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/29878111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952596</commentid>
    <comment_count>18</comment_count>
      <attachid>217429</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-11-20 08:14:20 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/29798007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952598</commentid>
    <comment_count>19</comment_count>
      <attachid>217429</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-20 08:26:40 -0800</bug_when>
    <thetext>Comment on attachment 217429
Patch

Attachment 217429 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/30378007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952963</commentid>
    <comment_count>20</comment_count>
      <attachid>217523</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-21 00:04:54 -0800</bug_when>
    <thetext>Created attachment 217523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952966</commentid>
    <comment_count>21</comment_count>
      <attachid>217523</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-21 00:15:24 -0800</bug_when>
    <thetext>Comment on attachment 217523
Patch

Attachment 217523 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/32348051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952971</commentid>
    <comment_count>22</comment_count>
      <attachid>217523</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-21 00:32:00 -0800</bug_when>
    <thetext>Comment on attachment 217523
Patch

Attachment 217523 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/31728015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952972</commentid>
    <comment_count>23</comment_count>
      <attachid>217523</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 00:34:15 -0800</bug_when>
    <thetext>Comment on attachment 217523
Patch

Attachment 217523 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/31768009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952974</commentid>
    <comment_count>24</comment_count>
      <attachid>217523</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 00:37:05 -0800</bug_when>
    <thetext>Comment on attachment 217523
Patch

Attachment 217523 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/31998060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952981</commentid>
    <comment_count>25</comment_count>
      <attachid>217523</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 01:03:15 -0800</bug_when>
    <thetext>Comment on attachment 217523
Patch

Attachment 217523 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/31998059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952982</commentid>
    <comment_count>26</comment_count>
      <attachid>217529</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-21 01:05:50 -0800</bug_when>
    <thetext>Created attachment 217529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952986</commentid>
    <comment_count>27</comment_count>
      <attachid>217529</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-21 01:13:10 -0800</bug_when>
    <thetext>Comment on attachment 217529
Patch

Attachment 217529 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/31978066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952987</commentid>
    <comment_count>28</comment_count>
      <attachid>217529</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 01:16:42 -0800</bug_when>
    <thetext>Comment on attachment 217529
Patch

Attachment 217529 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/32018074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952988</commentid>
    <comment_count>29</comment_count>
      <attachid>217529</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-21 01:17:16 -0800</bug_when>
    <thetext>Comment on attachment 217529
Patch

Attachment 217529 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/31588073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953010</commentid>
    <comment_count>30</comment_count>
      <attachid>217539</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-21 02:42:43 -0800</bug_when>
    <thetext>Created attachment 217539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953013</commentid>
    <comment_count>31</comment_count>
      <attachid>217539</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 03:13:39 -0800</bug_when>
    <thetext>Comment on attachment 217539
Patch

Attachment 217539 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/32348077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953019</commentid>
    <comment_count>32</comment_count>
      <attachid>217539</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-21 03:34:11 -0800</bug_when>
    <thetext>Comment on attachment 217539
Patch

Attachment 217539 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/31588099</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953021</commentid>
    <comment_count>33</comment_count>
      <attachid>217544</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-21 03:40:35 -0800</bug_when>
    <thetext>Created attachment 217544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953129</commentid>
    <comment_count>34</comment_count>
      <attachid>217544</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-21 09:27:43 -0800</bug_when>
    <thetext>Comment on attachment 217544
Patch

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

There are even more threads that need to be pulled :(

See for example this line in WebCoreResourceHandleAsDelegate.mm:

    m_handle-&gt;client()-&gt;willStopBufferingData(m_handle, (const char*)[data bytes], static_cast&lt;int&gt;([data length]));

willStopBufferingData is the first and only name I grepped for, so probabilistically speaking, there are likely more implicit casts remaining. Please grep WebCore for every function name you changed.

&gt; Source/WebCore/loader/ResourceLoader.cpp:1
&gt; -/*
&gt; + /*

Accidental change here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953493</commentid>
    <comment_count>35</comment_count>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-22 03:03:55 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (From update of attachment 217544 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217544&amp;action=review
&gt; 
&gt; There are even more threads that need to be pulled :(
&gt; 
&gt; See for example this line in WebCoreResourceHandleAsDelegate.mm:
&gt; 
&gt;     m_handle-&gt;client()-&gt;willStopBufferingData(m_handle, (const char*)[data bytes], static_cast&lt;int&gt;([data length]));
&gt; 
&gt; willStopBufferingData is the first and only name I grepped for, so probabilistically speaking, there are likely more implicit casts remaining. Please grep WebCore for every function name you changed.

Sorry, I missed the *.mm files. I only grepped in *.cpp and *.h files. :s I will check it twice before the next upload. I didn&apos;t expected that this change will affect so many files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953930</commentid>
    <comment_count>36</comment_count>
      <attachid>217779</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2013-11-25 02:14:15 -0800</bug_when>
    <thetext>Created attachment 217779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962327</commentid>
    <comment_count>37</comment_count>
      <attachid>217779</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-22 08:06:38 -0800</bug_when>
    <thetext>Comment on attachment 217779
Patch

Rejecting attachment 217779 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 217779, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:

patching file Source/WebKit/win/WebKitDLL.cpp
patching file Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp
Hunk #1 succeeded at 191 (offset -1 lines).
Hunk #2 succeeded at 393 (offset -1 lines).
patching file Source/WebKit2/NetworkProcess/NetworkResourceLoader.h
patching file Source/WebKit2/Shared/Downloads/soup/DownloadSoup.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Anders Carlsson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/51728022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964584</commentid>
    <comment_count>38</comment_count>
      <attachid>220423</attachid>
    <who name="László Langó">llango.u-szeged</who>
    <bug_when>2014-01-06 01:46:00 -0800</bug_when>
    <thetext>Created attachment 220423
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964595</commentid>
    <comment_count>39</comment_count>
      <attachid>220423</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-06 03:13:54 -0800</bug_when>
    <thetext>Comment on attachment 220423
patch for landing

Clearing flags on attachment: 220423

Committed r161338: &lt;http://trac.webkit.org/changeset/161338&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964596</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-06 03:14:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217294</attachid>
            <date>2013-11-19 06:06:09 -0800</date>
            <delta_ts>2013-11-19 07:01:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131119060608.patch</filename>
            <type>text/plain</type>
            <size>9153</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc0NzY4OGU1ZWE4ZTAw
NDNkNGU2Nzg1ODllYWRlYmU3YjMzYjY3ZC4uYzk3MjRiYzM0YzE3ZmIwYTBlNjFiMWJjZTFkMzZi
ZDA5ZGIwMTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTExLTE5ICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKwogMjAxMy0xMS0xOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRl
IEdPYmplY3QgRE9NIHN5bWJvbHMgZmlsZSBhZnRlciByMTU4NjYyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGFlMWMyZGU1NWFjYzZkODE3MDFlM2ZhYzZi
YTA3MjY4OTZmNDVlMy4uMGJiNzU1ZmEzMDFhNWVkOWJhMzMzMGY0MDY3NGNiZGE0ZGJjYjFjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCkBAIC0zNSw3ICszNSw3
IEBAIFJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcigpCiB7CiB9CiAKLVJlc291cmNlQnVm
ZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1Jlc291cmNl
QnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAg
ICA6IG1fc2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIHNpemUpKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaAppbmRleCA1ZGMyZDk1NzFiMzUz
YmY0OTA1YzdjMmYxNDk0MTM2MWEyNzNlNmUwLi4zMGZkY2VjNGFiNDFjOTkzNzNmMjk0NGVmMGYz
Y2Y5YjFkMjRjMWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaApAQCAt
NDUsNyArNDUsNyBAQCBjbGFzcyBSZXNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJl
c291cmNlQnVmZmVyPiB7CiBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJj
ZUJ1ZmZlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKTsg
fQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hh
ciogZGF0YSwgaW50IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihk
YXRhLCBzaXplKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3Jl
YXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
UmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVz
b3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBz
aGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihzaGFy
ZWQpKSA6IDA7IH0KIAogICAgIHZpcnR1YWwgflJlc291cmNlQnVmZmVyKCk7CkBAIC04OSw3ICs4
OSw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZUJ1ZmZlcigpOwogCiBwcml2YXRlOgotICAg
IFJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOworICAgIFJlc291cmNlQnVmZmVyKGNv
bnN0IGNoYXIqLCBzaXplX3QpOwogICAgIFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPik7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3NjQ3YWIy
M2RjMzUwYjYwYjg4MmUwMzE4OTJkNjFkNmMuLmZlOWNlNzVjYWI3YzRmN2M0Zjk3YjYwZmM4MDIz
OTU2YTc2ZjEzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtMSw0ICsxLDQgQEAKLS8qCisgLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMp
IDIwMDcgR3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpAQCAtMTkw
LDcgKzE5MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZvaWQgUmVz
b3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
LCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkK
K3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgbGVuZ3RoLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQ
YXlsb2FkVHlwZSkKIHsKICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0g
RG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoLCBQYXNzUmUKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5k
aWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZl
ciA/IGJ1ZmZlci0+c2l6ZSgpIDogbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRh
TGVuZ3RoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6d2ls
bFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB7CiAg
ICAgaWYgKG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID09IERvTm90QnVmZmVyRGF0YSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCBhNTIzYTdjNTBmYWU2NmY1YTZlYWRiZTBiNTU1ZTdlYzY3ZmFkYWEzLi4yMDE0MDUzMGNhODM1
MmFjODZmY2QxZWY3MmViYTg3YzA1N2RlZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1
ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0
aCwgRGF0YVBheWxvYWRUeXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25z
dCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFy
Kiwgc2l6ZV90KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmlu
aXNoVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYp
OwogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKQEAgLTExMCw3ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRs
ZSopIE9WRVJSSURFOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0
b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCkgT1ZFUlJJREUgeyB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoZGF0YSwgbGVuZ3RoKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKSBPVkVSUklERSB7IHdpbGxTdG9wQnVmZmVy
aW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERSB7IHJldHVybiBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9WRVJSSURFIHsgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0gCkBAIC0xNzMsNyArMTczLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpID0gMDsK
IAotICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFNoYXJlZEJ1ZmZl
ciosIERhdGFQYXlsb2FkVHlwZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3QgY2hh
ciosIHNpemVfdCwgU2hhcmVkQnVmZmVyKiwgRGF0YVBheWxvYWRUeXBlKTsKIAogICAgIFJlc291
cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fb3JpZ2luYWxSZXF1
ZXN0OyAvLyBCZWZvcmUgcmVkaXJlY3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1
ZmZlci5jcHAKaW5kZXggYTVkOTU1YmRjMjc5YWMwYWJlMDRlYjFkNjIyNWU3OGEwZTMwYWNhYi4u
ZjFlOTZkNmFjZWVhNGE1NTBiM2RiYTQyYzk1YjIzNmUyYmI1NmQ3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFNoYXJlZEJ1ZmZl
cjo6U2hhcmVkQnVmZmVyKHNpemVfdCBzaXplKQogewogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJl
ZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIDogbV9zaXplKDApCiAj
aWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCiAgICAgLCBtX2lzTWVtb3J5TWFwcGVkKGZhbHNl
KQpAQCAtOTMsMTQgKzkzLDEwIEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBzaXplKQogICAgICwgbV9ub3RpZnlNZW1vcnlNYXBwZWRDYWxsYmFja0Rh
dGEobnVsbHB0cikKICNlbmRpZgogewotICAgIC8vIEZJWE1FOiBVc2UgdW5zaWduZWQgY29uc2lz
dGVudGx5LCBhbmQgY2hlY2sgZm9yIGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hh
cmVkQnVmZmVyIGZyb20gb3RoZXIgY29kZS4KLSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIENS
QVNIKCk7Ci0KICAgICBhcHBlbmQoZGF0YSwgc2l6ZSk7CiB9CiAKLVNoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGludCBzaXplKQorU2hhcmVkQnVm
ZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgc2l6ZV90IHNpemUp
CiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1f
aXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC0xMDksMTAgKzEwNSw2IEBAIFNoYXJlZEJ1ZmZlcjo6
U2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGludCBzaXplKQogICAgICwg
bV9ub3RpZnlNZW1vcnlNYXBwZWRDYWxsYmFja0RhdGEobnVsbHB0cikKICNlbmRpZgogewotICAg
IC8vIEZJWE1FOiBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hlY2sgZm9yIGludmFs
aWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20gb3RoZXIgY29kZS4K
LSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIENSQVNIKCk7Ci0KICAgICBhcHBlbmQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCAzYzNkZGE2ZDQxYzU5MjAxODI2ZGQ5MjZj
Mjc4MGQzNTAxOWIwMTNiLi4zNmY1MDUzNGNmMDgxM2RhZDBlZmFlM2I4OTNhZjA2OGQ5MzM3OTQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNDksOCArNDksOCBA
QCBjbGFzcyBTaGFyZWRCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRCdWZmZXI+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoc2l6ZV90IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgaW50IGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
aGFyZWRCdWZmZXIoYywgaSkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBjcmVhdGUoY29uc3QgdW5zaWduZWQgY2hhciogYywgaW50IGkpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgc2l6ZV90IGkpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBjcmVhdGUoY29uc3QgdW5zaWduZWQgY2hhciogYywgc2l6ZV90IGkpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9CiAKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcm
IGZpbGVQYXRoKTsKIApAQCAtMTYxLDggKzE2MSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U2hhcmVkQnVmZmVyKCk7CiAgICAgZXhwbGljaXQgU2hhcmVkQnVmZmVyKHNpemVfdCk7Ci0gICAg
U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOwotICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1
bnNpZ25lZCBjaGFyKiwgaW50KTsKKyAgICBTaGFyZWRCdWZmZXIoY29uc3QgY2hhciosIHNpemVf
dCk7CisgICAgU2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBzaXplX3QpOwogICAg
IAogICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsIGZvcmNlIGludGVybmFsIHNlZ21l
bnRlZCBidWZmZXJzCiAgICAgLy8gdG8gYmUgbWVyZ2VkIGludG8gYSBmbGF0IGJ1ZmZlci4gVXNl
IGdldFNvbWVEYXRhKCkgd2hlbmV2ZXIgcG9zc2libGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217297</attachid>
            <date>2013-11-19 07:01:54 -0800</date>
            <delta_ts>2013-11-20 07:29:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131119070153.patch</filename>
            <type>text/plain</type>
            <size>12235</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgyMDQzYzM0MmVjOWQ1
Y2JhOTJiMmNhMWU4YWY4YTJlZDU1ZTU4NS4uOTRkZjQzNjAzYzQzNWI0ZDIxNDg2ZTZjOWZhYTI5
YmI4ZmQ2MjE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTExLTE5ICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNs
aWVudDo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKToKKwogMjAxMy0xMS0xOSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbW9yZSBhc3NlcnRpb25zIHdpdGgg
c2VjdXJpdHkgaW1wbGljYXRpb25zIGluIERvY3VtZW50T3JkZXJlZE1hcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGZlMzZiMWNjOWUxOTk3NWU1YzY1NGU0NzBjZTM2NjE1NTFmMGIzYWMuLjdiNDE3OTc0YjFmNjdk
OWJhODAzMDFjYTAxMWZjOGVlZmMwMDdlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMy0xMS0xOSAgTMOhc3psw7MgTGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisg
ICAgICAgIFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBj
YXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisKIDIwMTMtMTEtMTggIFJ5dWFuIENo
b2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEluaXRpYWxpemUg
ZWZyZWV0IGJlZm9yZSBnZXR0aW5nIGRpcmVjdG9yaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlQnVmZmVyLmNwcAppbmRleCBkYWUxYzJkZTU1YWNjNmQ4MTcwMWUzZmFjNmJhMDcyNjg5
NmY0NWUzLi4wYmI3NTVmYTMwMWE1ZWQ5YmEzMzMwZjQwNjc0Y2JkYTRkYmNiMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgUmVz
b3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKCkKIHsKIH0KIAotUmVzb3VyY2VCdWZmZXI6OlJl
c291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIDogbV9z
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCmluZGV4IDVkYzJkOTU3MWIzNTNiZjQ5MDVj
N2MyZjE0OTQxMzYxYTI3M2U2ZTAuLjMwZmRjZWM0YWI0MWM5OTM3M2YyOTQ0ZWYwZjNjZjliMWQy
NGMxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCkBAIC00NSw3ICs0
NSw3IEBAIGNsYXNzIFJlc291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VC
dWZmZXI+IHsKIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIpOyB9Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNp
emUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJj
ZUJ1ZmZlcihkYXRhLCBzaXplKSk7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1
ZmZlcj4gYWRvcHRTaGFyZWRCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZCkg
eyByZXR1cm4gc2hhcmVkID8gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKHNoYXJlZCkpIDog
MDsgfQogCiAgICAgdmlydHVhbCB+UmVzb3VyY2VCdWZmZXIoKTsKQEAgLTg5LDcgKzg5LDcgQEAg
cHJvdGVjdGVkOgogICAgIFJlc291cmNlQnVmZmVyKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVzb3Vy
Y2VCdWZmZXIoY29uc3QgY2hhciosIGludCk7CisgICAgUmVzb3VyY2VCdWZmZXIoY29uc3QgY2hh
ciosIHNpemVfdCk7CiAgICAgUmVzb3VyY2VCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
KTsKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hhcmVkQnVmZmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZjYyOGQ0OTc2NDdhYjIzZGMzNTBi
NjBiODgyZTAzMTg5MmQ2MWQ2Yy4uZmU5Y2U3NWNhYjdjNGY3YzRmOTdiNjBmYzgwMjM5NTZhNzZm
MTNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xLDQg
KzEsNCBAQAotLyoKKyAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNyBH
cmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdtYWlsLmNvbSkKICAqCkBAIC0xOTAsNyArMTkw
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVm
ZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wKIH0KICAgICAKIAotdm9pZCBSZXNvdXJjZUxv
YWRlcjo6YWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIFNoYXJl
ZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQordm9pZCBS
ZXNvdXJjZUxvYWRlcjo6YWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBs
ZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRU
eXBlKQogewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1
ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTMxMiw3ICszMTIsNyBAQCB2b2lkIFJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgsIFBhc3NSZQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJlY2Vp
dmVEYXRhKHRoaXMsIGJ1ZmZlciA/IGJ1ZmZlci0+ZGF0YSgpIDogZGF0YSwgYnVmZmVyID8gYnVm
ZmVyLT5zaXplKCkgOiBsZW5ndGgsIHN0YXRpY19jYXN0PGludD4oZW5jb2RlZERhdGFMZW5ndGgp
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1
ZmZlcmluZ0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBpZiAo
bV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE1MjNh
N2M1MGZhZTY2ZjVhNmVhZGJlMGI1NTVlN2VjNjdmYWRhYTMuLjIwMTQwNTMwY2E4MzUyYWM4NmZj
ZDFlZjcyZWJhODdjMDU3ZGVkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZFR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRh
UGF5bG9hZFR5cGUpOwotICAgIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIq
LCBpbnQpOworICAgIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqLCBzaXpl
X3QpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1l
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYg
VVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpAQCAtMTEwLDcgKzExMCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikgT1ZF
UlJJREU7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZl
cmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSBP
VkVSUklERSB7IHdpbGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CisgICAgdmly
dHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdEYXRh
KGRhdGEsIGxlbmd0aCk7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFIHsgcmV0dXJuIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSkgT1ZFUlJJREUgeyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY2hhbGxlbmdlKTsgfSAKQEAgLTE3Myw3ICsxNzMsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogCi0gICAg
dm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIGludCwgU2hhcmVkQnVmZmVyKiwgRGF0
YVBheWxvYWRUeXBlKTsKKyAgICB2b2lkIGFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgc2l6
ZV90LCBTaGFyZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9vcmlnaW5hbFJlcXVlc3Q7IC8v
IEJlZm9yZSByZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNw
cAppbmRleCBhNWQ5NTViZGMyNzlhYzBhYmUwNGViMWQ2MjI1ZTc4YTBlMzBhY2FiLi5mMWU5NmQ2
YWNlZWE0YTU1MGIzZGJhNDJjOTViMjM2ZTJiYjU2ZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFy
ZWRCdWZmZXIoc2l6ZV90IHNpemUpCiB7CiB9CiAKLVNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVy
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFC
TEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC05
MywxNCArOTMsMTAgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0
YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1lbW9yeU1hcHBlZENhbGxiYWNrRGF0YShudWxs
cHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHks
IGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZm
ZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChzaXplIDwgMCkKLSAgICAgICAgQ1JBU0goKTsK
LQogICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZm
ZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCitTaGFyZWRCdWZmZXI6OlNo
YXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAgICA6
IG1fc2l6ZSgwKQogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01lbW9y
eU1hcHBlZChmYWxzZSkKQEAgLTEwOSwxMCArMTA1LDYgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRC
dWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlm
eU1lbW9yeU1hcHBlZENhbGxiYWNrRGF0YShudWxscHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklY
TUU6IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0
cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlm
IChzaXplIDwgMCkKLSAgICAgICAgQ1JBU0goKTsKLQogICAgIGFwcGVuZChyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgc2l6ZSk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4IDNjM2RkYTZkNDFjNTkyMDE4MjZkZDkyNmMyNzgwZDM1
MDE5YjAxM2IuLjM2ZjUwNTM0Y2YwODEzZGFkMGVmYWUzYjg5M2FmMDY4ZDkzMzc5NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCkBAIC00OSw4ICs0OSw4IEBAIGNsYXNz
IFNoYXJlZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEJ1ZmZlcj4gewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcik7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IGNyZWF0ZShzaXplX3Qgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJl
ZEJ1ZmZlcihzaXplKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNy
ZWF0ZShjb25zdCBjaGFyKiBjLCBpbnQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1
ZmZlcihjLCBpKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0
ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCBpbnQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IGNyZWF0ZShjb25zdCBjaGFyKiBjLCBzaXplX3QgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCBzaXplX3QgaSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gY3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBh
dGgpOwogCkBAIC0xNjEsOCArMTYxLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTaGFyZWRC
dWZmZXIoKTsKICAgICBleHBsaWNpdCBTaGFyZWRCdWZmZXIoc2l6ZV90KTsKLSAgICBTaGFyZWRC
dWZmZXIoY29uc3QgY2hhciosIGludCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVk
IGNoYXIqLCBpbnQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiwgc2l6ZV90KTsKKyAg
ICBTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciosIHNpemVfdCk7CiAgICAgCiAgICAg
Ly8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZm9yY2UgaW50ZXJuYWwgc2VnbWVudGVkIGJ1
ZmZlcnMKICAgICAvLyB0byBiZSBtZXJnZWQgaW50byBhIGZsYXQgYnVmZmVyLiBVc2UgZ2V0U29t
ZURhdGEoKSB3aGVuZXZlciBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IGEyZDg3MWQyM2I3NzNh
MDliOWQ5Zjc5ZjMyMDQ3MDZmYmZjYWI3ZDMuLmI0ZTU3NGYxYTc3NDE1OGYxZGU4MGU2Y2MwMTc2
NTEyYWIzYTcyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNlbGlmIFBMQVRGT1JNKE1BQykKICAgICAgICAgdmlydHVhbCBOU0NhY2hl
ZFVSTFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVk
VVJMUmVzcG9uc2UgKnJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIGludCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgc2l6ZV90KSB7IH0KICNlbmRpZgogCiAgICAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDE2MzBhMmI0N2ExM2ZjYWZmODE3OWE3YzQwYjRiMDk1YzYz
MjYzOGEuLmU5NGI5YWZmNWE4M2FlZDljNThkMGI0NTE4YWMyMTViMzAzNWZkYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YUFycmF5KFJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZikKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9w
QnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpCit2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIHNpemVfdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCAzMjdhZTM0Y2M3YjRkMmE1NGJhMWUxYTU3M2I0YmE1NGIwYmJmMThjLi4xYjI5
MGUwMjJjNmI4NmY5MTg1MWI2MGE5NzU1YTczMGUwNDhmYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTA2
LDcgKzEwNiw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RhdGljIHNpemVf
dCBmaWxlQmFja2VkUmVzb3VyY2VNaW5pbXVtU2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
Q2FjaGVSZXNwb25zZUFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxS
ZXNwb25zZSAqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdE
YXRhKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBzaXplX3QpIE9WRVJSSURFOwogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217429</attachid>
            <date>2013-11-20 07:29:44 -0800</date>
            <delta_ts>2013-11-21 00:04:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131120072944.patch</filename>
            <type>text/plain</type>
            <size>18176</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNjODMyNTQ2NDYwMjkx
Nzc0OTNjOWQyZTM2NzdjMmRiMjU4ODY3Zi4uZDM3NWE0OWY0ODU4ODEzYTliNWNmNjBlMDAzMGZj
YmY5MGEwYzNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTExLTIwICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1
ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YU9yQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3
aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisK
IDIwMTMtMTEtMjAgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CiAKICAgICAgICAg
W0NTU1JlZ2lvbnNdIE1vdmUgcmVnaW9uIHN0eWxpbmcgY29kZSBpbnRvIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmY2MzQ5OTc0YTI0MzI4MGI3NTI0NmI1ODRi
MDViZWM2ZTgwOGQ2Mi4uYzcyNTgxYThiODk2YmM4N2QyMTM3Mzk5NjAzYTc3NzNlZDJiNjFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTExLTIwICBMw6FzemzDsyBM
YW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2lnbmVkIGNv
bnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRv
IFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdERMTC5jcHA6CisgICAgICAgIChsb2FkUmVz
b3VyY2VJbnRvQnVmZmVyKToKKwogMjAxMy0xMS0xOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1OTQ1
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA0NDI4MmQ3NzA3YmE0NTkwMWY0NGMyNWU2MDMzZDNhMGIzOTc2ZTA1
Li5hNmM0ZjdkZjM4Y2U2NDEwYTlmOTEyZThjZjgwY2Y1MmRlODU2NGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTMtMTEtMjAgIEzDoXN6bMOzIExhbmfDsyAgPGxhbmdvQGluZi51
LXN6ZWdlZC5odT4KKworICAgICAgICBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hl
Y2sgZm9yIGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20g
b3RoZXIgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNDU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorCiAyMDEz
LTExLTIwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBEbyBub3QgdXNlIGRlcHJlY2F0ZWQgY2FsbGJhY2tzIGluIFdlYktpdFBvbGlj
eUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1Y2FhNDI2NjFiNzQyNjhmN2ViM2VmMjg3
OWViNTFiMTNmYmFmMTYwLi5lNTY1N2MwOTJkZDQ4NDk4OTkwNDMzZTIxYjlhMzE4NjIwZDhlOWVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjI4LDggKzIyOCw4IEBAIF9fWk43V2ViQ29yZTEy
U2hhcmVkQnVmZmVyMTJjcmVhdGVDRkRhdGFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIx
MmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlcjI0Y3JlYXRlV2l0aENv
bnRlbnRzT2ZGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXI2
YXBwZW5kRVBLY2oKLV9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFUEtjaQotX19aTjdXZWJD
b3JlMTJTaGFyZWRCdWZmZXJDMUVQS2hpCitfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBL
Y2oKK19fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoagogX19aTjdXZWJDb3JlMTJTaGFy
ZWRCdWZmZXJDMUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckQxRXYKIF9fWk43V2ViQ29y
ZTEyVGV4dEVuY29kaW5nQzFFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlQnVmZmVyLmNwcAppbmRleCBkYWUxYzJkZTU1YWNjNmQ4MTcwMWUzZmFjNmJhMDcyNjg5
NmY0NWUzLi4xNzlkZDIyZmEzMjg1YzA0ZmZkZmZmN2MyZjMxMDY2YjRiMjQyZDJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgUmVz
b3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKCkKIHsKIH0KIAotUmVzb3VyY2VCdWZmZXI6OlJl
c291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorUmVzb3VyY2VCdWZmZXI6
OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiAgICAgOiBt
X3NoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKSkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgKaW5kZXggNWRjMmQ5NTcxYjM1M2JmNDkw
NWM3YzJmMTQ5NDEzNjFhMjczZTZlMC4uZjE1Y2Q4YzljZTFkZmJhNjFhYWU2NDYwZGJmM2Q0NTEy
NmZlM2U1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZXNvdXJj
ZUJ1ZmZlcj4gewogcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZm
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcik7IH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwg
c2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZShj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVz
b3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3Vy
Y2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBzaGFy
ZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihzaGFyZWQp
KSA6IDA7IH0KIAogICAgIHZpcnR1YWwgflJlc291cmNlQnVmZmVyKCk7CkBAIC04OSw3ICs4OSw3
IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZUJ1ZmZlcigpOwogCiBwcml2YXRlOgotICAgIFJl
c291cmNlQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOworICAgIFJlc291cmNlQnVmZmVyKGNvbnN0
IGNoYXIqLCBzaXplX3QpOwogICAgIFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPik7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3NjQ3YWIyM2Rj
MzUwYjYwYjg4MmUwMzE4OTJkNjFkNmMuLjQ4YjEyYzIyOTQyM2Q2ZjVjNWNhZjU3NzZlOWIwYzJl
MWNjM2I1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAt
MSw0ICsxLDQgQEAKLS8qCisgLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIw
MDcgR3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpAQCAtMTkwLDcg
KzE5MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0
YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBT
aGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3Zv
aWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBh
eWxvYWRUeXBlKQogewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBE
b05vdEJ1ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlUmVzcG9u
c2UodGhpcywgbV9yZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRU
eXBlKQogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9ucyBhcmUgbm90IHF1aXRlIHZh
bGlkIGhlcmUsIHNpbmNlIGEgc3ViY2xhc3MKICAgICAvLyBtaWdodCBvdmVycmlkZSBkaWRSZWNl
aXZlRGF0YSBpbiBhIHdheSB0aGF0IGludmFsaWRhdGVzIHRoZW0uIFRoaXMKQEAgLTI5Myw3ICsy
OTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBidWZmZXIsIGxvbmcgbG9uZwogICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZm
ZXIoMCwgMCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0K
IAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5
cGUpCit2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycEJ1
ZmZlciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBh
eWxvYWRUeXBlKQogewogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGdldCBkYXRhK2xl
bmd0aCAqT1IqIGEgU2hhcmVkQnVmZmVyLgogICAgIEFTU0VSVCghcHJwQnVmZmVyIHx8ICghZGF0
YSAmJiAhbGVuZ3RoKSk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNz
UmUKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0aGlz
LCBidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgp
IDogbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAobV9vcHRpb25z
LmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47
CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBkaWRSZWNl
aXZlUmVzcG9uc2UocmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGlu
dCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQg
ZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURh
dGEobV9mcmFtZS5nZXQoKSwgaWRlbnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAg
ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRCeXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE1MjNh
N2M1MGZhZTY2ZjVhNmVhZGJlMGI1NTVlN2VjNjdmYWRhYTMuLjg5N2ZjZjExYzBhYTIzNzc3MzJk
MmI3ODgwNjIwYTEyZWM5MjFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCkBAIC04MSw5ICs4MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxv
bmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9u
ZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9uZyBlbmNv
ZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0
YShjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25z
dCBjaGFyKiwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRv
dWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJik7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpAQCAtMTAz
LDE0ICsxMDMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERh
dGEoUmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlz
aFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3YXNC
bG9ja2VkKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNhbm5v
dFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdE
YXRhKGRhdGEsIGxlbmd0aCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBP
VkVSUklERSB7IHdpbGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CiAjZW5kaWYK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5k
bGUqKSBPVkVSUklERSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9WRVJS
SURFIHsgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0gCkBA
IC0xNjAsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCB3YXNDYW5jZWxsZWQoKSBj
b25zdCB7IHJldHVybiBtX2NhbmNlbGxhdGlvblN0YXR1cyA+PSBDYW5jZWxsZWQ7IH0KIAotICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRU
eXBlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIHVuc2ln
bmVkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0
aCwgRGF0YVBheWxvYWRUeXBlKTsKIAogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYg
b3B0aW9ucygpIHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCkBAIC0xNzMsNyArMTczLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpID0g
MDsKIAotICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFNoYXJlZEJ1
ZmZlciosIERhdGFQYXlsb2FkVHlwZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBTaGFyZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9vcmlnaW5h
bFJlcXVlc3Q7IC8vIEJlZm9yZSByZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcAppbmRleCBhNWQ5NTViZGMyNzlhYzBhYmUwNGViMWQ2MjI1ZTc4YTBlMzBh
Y2FiLi5kMmFiNjJkNTA4YmVkN2EyMDk2NDViYmYwYzBmYWFhYWYxNGM4OGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgU2hhcmVk
QnVmZmVyOjpTaGFyZWRCdWZmZXIoKQogewogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZl
cihzaXplX3Qgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKHVuc2lnbmVkIHNpemUp
CiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fYnVmZmVyKHNpemUpCiAjaWYgRU5BQkxFKERJ
U0tfSU1BR0VfQ0FDSEUpCkBAIC04NCw3ICs4NCw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKHNpemVfdCBzaXplKQogewogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25z
dCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFCTEUo
RElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC05Mywx
NCArOTMsMTAgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0YSwg
aW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1lbW9yeU1hcHBlZENhbGxiYWNrRGF0YShudWxscHRy
KQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFu
ZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIg
ZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChzaXplIDwgMCkKLSAgICAgICAgQ1JBU0goKTsKLQog
ICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCitTaGFyZWRCdWZmZXI6OlNoYXJl
ZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDog
bV9zaXplKDApCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCiAgICAgLCBtX2lzTWVtb3J5
TWFwcGVkKGZhbHNlKQpAQCAtMTA5LDEwICsxMDUsNiBAQCBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1
ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKICAgICAsIG1fbm90aWZ5
TWVtb3J5TWFwcGVkQ2FsbGJhY2tEYXRhKG51bGxwdHIpCiAjZW5kaWYKIHsKLSAgICAvLyBGSVhN
RTogVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3Rz
IHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCi0gICAgaWYg
KHNpemUgPCAwKQotICAgICAgICBDUkFTSCgpOwotCiAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggM2MzZGRhNmQ0MWM1OTIwMTgyNmRkOTI2YzI3ODBkMzUw
MTliMDEzYi4uMDE2M2NiNTE5M2I2MWM0YWQ4NjBlZWE2MzFjNTk3MzgyOTc2MzliMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgY2xhc3Mg
UHVyZ2VhYmxlQnVmZmVyOwogY2xhc3MgU2hhcmVkQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKTsgfQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHNpemVfdCBzaXplKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKHNpemUpKTsgfQotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGMsIGludCBpKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGMsIGludCBpKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgdW5zaWduZWQgaSkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCB1bnNpZ25lZCBp
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQogCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoY29u
c3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAKQEAgLTE2MCw5ICsxNjAsOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgU2hhcmVkQnVmZmVyKCk7Ci0gICAgZXhwbGljaXQgU2hhcmVkQnVmZmVyKHNp
emVfdCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOwotICAgIFNoYXJlZEJ1
ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50KTsKKyAgICBleHBsaWNpdCBTaGFyZWRCdWZm
ZXIodW5zaWduZWQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQpOwor
ICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpOwogICAgIAog
ICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsIGZvcmNlIGludGVybmFsIHNlZ21lbnRl
ZCBidWZmZXJzCiAgICAgLy8gdG8gYmUgbWVyZ2VkIGludG8gYSBmbGF0IGJ1ZmZlci4gVXNlIGdl
dFNvbWVEYXRhKCkgd2hlbmV2ZXIgcG9zc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAppbmRleCBhMmQ4NzFkMjNi
NzczYTA5YjlkOWY3OWYzMjA0NzA2ZmJmY2FiN2QzLi4wYzg1MjdlYTI2NmM3ZGQ4Y2FmMmNlMTA4
YTliNTkyNjM5ZGQwYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC0xMjAsNyArMTIwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjZWxpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHZpcnR1YWwgTlND
YWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0Nh
Y2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqLCBpbnQpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKSB7IH0KICNlbmRpZgog
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCmluZGV4IGVmODU2MDhjMDRjNzExZjkyNjll
ZTg0ZWQ0ZDg0OGUyZWU4ZmMwYTYuLjVkNDQwZWVjMTg5YWNlOGFhNGNhNjVhMGZlMDY1ZDQ2NGJk
NjUzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBsb2FkUmVzb3VyY2VJbnRvQnVmZmVyKGNvbnN0
IGNoYXIqIG5hbWUpCiAgICAgdm9pZCogcmVzb3VyY2UgPSBMb2NrUmVzb3VyY2UocmVzKTsKICAg
ICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm4gMDsKLSAgICBpbnQgc2l6ZSA9IFNpemVv
ZlJlc291cmNlKGdJbnN0YW5jZSwgcmVzSW5mbyk7CisgICAgdW5zaWduZWQgc2l6ZSA9IFNpemVv
ZlJlc291cmNlKGdJbnN0YW5jZSwgcmVzSW5mbyk7CiAKICAgICByZXR1cm4gV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4ocmVzb3VyY2Up
LCBzaXplKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE2MzBhMmI0N2ExM2ZjYWZmODE3OWE3YzQw
YjRiMDk1YzYzMjYzOGEuLjIzOWNmMTE4MzA5YzU3YjFjM2ZhNjhjNTYxYTNjODQyZGRjZWIzNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5KFJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZikK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OndpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQp
Cit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDMyN2FlMzRjYzdiNGQyYTU0YmExZTFhNTczYjRiYTU0YjBi
YmYxOGMuLjA1ZTExOTk3NmY3MzMyMjVjY2U1NGIzMTg0MmZlYmMwMGE5ZGY3MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBz
dGF0aWMgc2l6ZV90IGZpbGVCYWNrZWRSZXNvdXJjZU1pbmltdW1TaXplKCk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBO
U0NhY2hlZFVSTFJlc3BvbnNlICopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Rv
cEJ1ZmZlcmluZ0RhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKSBPVkVSUklERTsKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217523</attachid>
            <date>2013-11-21 00:04:54 -0800</date>
            <delta_ts>2013-11-21 01:05:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131121000454.patch</filename>
            <type>text/plain</type>
            <size>18783</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNjODMyNTQ2NDYwMjkx
Nzc0OTNjOWQyZTM2NzdjMmRiMjU4ODY3Zi4uMjFhZDRmMDUzNzIwM2M1ODMxMTc0NDc3YzkzYTQ5
YjAzNTk2MjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTExLTIxICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1
ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YU9yQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3
aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgor
CiAyMDEzLTExLTIwICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAgICAg
IFtDU1NSZWdpb25zXSBNb3ZlIHJlZ2lvbiBzdHlsaW5nIGNvZGUgaW50byBSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZmNjM0OTk3NGEyNDMyODBiNzUyNDZiNTg0
YjA1YmVjNmU4MDhkNjIuLmVlMTE0ZjYyYjdhNWIzOTIxNDFjOGViMDg5OGZkOWMxY2Q3ZmM2ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMS0yMSAgTMOhc3psw7Mg
TGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFVzZSB1bnNpZ25lZCBj
b25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50
byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRETEwuY3BwOgorICAgICAgICAobG9hZFJl
c291cmNlSW50b0J1ZmZlcik6CisKIDIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0
NTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNDQyODJkNzcwN2JhNDU5MDFmNDRjMjVlNjAzM2QzYTBiMzk3NmUw
NS4uMGM5MGJmZmMyZGJmNDk2MDZhNjkxM2E5NzhkYWIxMThlYmE3MzM1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEzLTExLTIxICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYu
dS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNo
ZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9t
IG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKwogMjAx
My0xMS0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gRG8gbm90IHVzZSBkZXByZWNhdGVkIGNhbGxiYWNrcyBpbiBXZWJLaXRQb2xp
Y3lDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWNhYTQyNjYxYjc0MjY4ZjdlYjNlZjI4
NzllYjUxYjEzZmJhZjE2MC4uZTU2NTdjMDkyZGQ0ODQ5ODk5MDQzM2UyMWI5YTMxODYyMGQ4ZTll
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIyOCw4ICsyMjgsOCBAQCBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjEyY3JlYXRlQ0ZEYXRhRXYKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVy
MTJjcmVhdGVOU0RhdGFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIyNGNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVy
NmFwcGVuZEVQS2NqCi1fX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLY2kKLV9fWk43V2Vi
Q29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoaQorX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQ
S2NqCitfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLaGoKIF9fWk43V2ViQ29yZTEyU2hh
cmVkQnVmZmVyQzFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJEMUV2CiBfX1pON1dlYkNv
cmUxMlRleHRFbmNvZGluZ0MxRVJLTjNXVEY2U3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGFlMWMyZGU1NWFjYzZkODE3MDFlM2ZhYzZiYTA3MjY4
OTZmNDVlMy4uMTc5ZGQyMmZhMzI4NWMwNGZmZGZmZjdjMmYzMTA2NmI0YjI0MmQyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFJl
c291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcigpCiB7CiB9CiAKLVJlc291cmNlQnVmZmVyOjpS
ZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1Jlc291cmNlQnVmZmVy
OjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDog
bV9zaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCmluZGV4IDVkYzJkOTU3MWIzNTNiZjQ5
MDVjN2MyZjE0OTQxMzYxYTI3M2U2ZTAuLjVlMWFmNGM5YTVmOWVmYjc0ZWIxY2Y4NTk0ZDg1NDM4
MTRiYzg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCkBAIC00NSw3
ICs0NSw3IEBAIGNsYXNzIFJlc291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3Vy
Y2VCdWZmZXI+IHsKIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVm
ZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIpOyB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBk
YXRhLCBpbnQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEs
IHNpemUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUo
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJl
c291cmNlQnVmZmVyKGRhdGEsIHNpemUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291
cmNlQnVmZmVyPiBhZG9wdFNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hh
cmVkKSB7IHJldHVybiBzaGFyZWQgPyBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIoc2hhcmVk
KSkgOiAwOyB9CiAKICAgICB2aXJ0dWFsIH5SZXNvdXJjZUJ1ZmZlcigpOwpAQCAtODksNyArODks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VCdWZmZXIoKTsKIAogcHJpdmF0ZToKLSAgICBS
ZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihjb25z
dCBjaGFyKiwgdW5zaWduZWQpOwogICAgIFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPik7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3NjQ3YWIy
M2RjMzUwYjYwYjg4MmUwMzE4OTJkNjFkNmMuLjQ4YjEyYzIyOTQyM2Q2ZjVjNWNhZjU3NzZlOWIw
YzJlMWNjM2I1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtMSw0ICsxLDQgQEAKLS8qCisgLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMp
IDIwMDcgR3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpAQCAtMTkw
LDcgKzE5MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZvaWQgUmVz
b3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
LCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkK
K3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0
YVBheWxvYWRUeXBlKQogewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9
PSBEb05vdEJ1ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlUmVz
cG9uc2UodGhpcywgbV9yZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxv
YWRUeXBlKQogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9ucyBhcmUgbm90IHF1aXRl
IHZhbGlkIGhlcmUsIHNpbmNlIGEgc3ViY2xhc3MKICAgICAvLyBtaWdodCBvdmVycmlkZSBkaWRS
ZWNlaXZlRGF0YSBpbiBhIHdheSB0aGF0IGludmFsaWRhdGVzIHRoZW0uIFRoaXMKQEAgLTI5Myw3
ICsyOTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXIsIGxvbmcgbG9uZwogICAgIGRpZFJlY2VpdmVEYXRhT3JC
dWZmZXIoMCwgMCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsK
IH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVy
LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9h
ZFR5cGUpCit2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBy
cEJ1ZmZlciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0
YVBheWxvYWRUeXBlKQogewogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGdldCBkYXRh
K2xlbmd0aCAqT1IqIGEgU2hhcmVkQnVmZmVyLgogICAgIEFTU0VSVCghcHJwQnVmZmVyIHx8ICgh
ZGF0YSAmJiAhbGVuZ3RoKSk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQ
YXNzUmUKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0
aGlzLCBidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6
ZSgpIDogbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAK
LXZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAobV9vcHRp
b25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1
cm47CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBkaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgs
IGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJj
ZURhdGEobV9mcmFtZS5nZXQoKSwgaWRlbnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAg
ICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBh
eWxvYWRCeXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE1
MjNhN2M1MGZhZTY2ZjVhNmVhZGJlMGI1NTVlN2VjNjdmYWRhYTMuLjg5N2ZjZjExYzBhYTIzNzc3
MzJkMmI3ODgwNjIwYTEyZWM5MjFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5oCkBAIC04MSw5ICs4MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
bmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25n
IGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9uZyBl
bmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5n
RGF0YShjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShj
b25zdCBjaGFyKiwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpAQCAt
MTAzLDE0ICsxMDMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2Vu
ZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNp
Z25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZp
bmlzaFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3
YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNh
bm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJp
bmdEYXRhKGRhdGEsIGxlbmd0aCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJp
bmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KSBPVkVSUklERSB7IHdpbGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CiAjZW5k
aWYKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VI
YW5kbGUqKSBPVkVSUklERSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9W
RVJSSURFIHsgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0g
CkBAIC0xNjAsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCB3YXNDYW5jZWxsZWQo
KSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGxhdGlvblN0YXR1cyA+PSBDYW5jZWxsZWQ7IH0KIAot
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIHVu
c2lnbmVkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxl
bmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKIAogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucygpIHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCkBAIC0xNzMsNyArMTczLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9y
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYp
ID0gMDsKIAotICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFNoYXJl
ZEJ1ZmZlciosIERhdGFQYXlsb2FkVHlwZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29u
c3QgY2hhciosIHVuc2lnbmVkLCBTaGFyZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9vcmln
aW5hbFJlcXVlc3Q7IC8vIEJlZm9yZSByZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2hhcmVkQnVmZmVyLmNwcAppbmRleCBhNWQ5NTViZGMyNzlhYzBhYmUwNGViMWQ2MjI1ZTc4YTBl
MzBhY2FiLi5kMmFiNjJkNTA4YmVkN2EyMDk2NDViYmYwYzBmYWFhYWYxNGM4OGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgU2hh
cmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoKQogewogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1
ZmZlcihzaXplX3Qgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKHVuc2lnbmVkIHNp
emUpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fYnVmZmVyKHNpemUpCiAjaWYgRU5BQkxF
KERJU0tfSU1BR0VfQ0FDSEUpCkBAIC04NCw3ICs4NCw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKHNpemVfdCBzaXplKQogewogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihj
b25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFC
TEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC05
MywxNCArOTMsMTAgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0
YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1lbW9yeU1hcHBlZENhbGxiYWNrRGF0YShudWxs
cHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHks
IGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZm
ZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChzaXplIDwgMCkKLSAgICAgICAgQ1JBU0goKTsK
LQogICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZm
ZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCitTaGFyZWRCdWZmZXI6OlNo
YXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAg
IDogbV9zaXplKDApCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCiAgICAgLCBtX2lzTWVt
b3J5TWFwcGVkKGZhbHNlKQpAQCAtMTA5LDEwICsxMDUsNiBAQCBTaGFyZWRCdWZmZXI6OlNoYXJl
ZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKICAgICAsIG1fbm90
aWZ5TWVtb3J5TWFwcGVkQ2FsbGJhY2tEYXRhKG51bGxwdHIpCiAjZW5kaWYKIHsKLSAgICAvLyBG
SVhNRTogVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNh
c3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCi0gICAg
aWYgKHNpemUgPCAwKQotICAgICAgICBDUkFTSCgpOwotCiAgICAgYXBwZW5kKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggM2MzZGRhNmQ0MWM1OTIwMTgyNmRkOTI2YzI3ODBk
MzUwMTliMDEzYi4uMDE2M2NiNTE5M2I2MWM0YWQ4NjBlZWE2MzFjNTk3MzgyOTc2MzliMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgY2xh
c3MgUHVyZ2VhYmxlQnVmZmVyOwogY2xhc3MgU2hhcmVkQnVmZmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKTsgfQot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHNpemVfdCBzaXplKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKHNpemUpKTsgfQotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGMsIGludCBpKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGMsIGludCBp
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIHNpemUpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgdW5zaWduZWQgaSkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCB1bnNpZ25l
ZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUo
Y29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAKQEAgLTE2MCw5ICsxNjAsOSBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgU2hhcmVkQnVmZmVyKCk7Ci0gICAgZXhwbGljaXQgU2hhcmVkQnVmZmVy
KHNpemVfdCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOwotICAgIFNoYXJl
ZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50KTsKKyAgICBleHBsaWNpdCBTaGFyZWRC
dWZmZXIodW5zaWduZWQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQp
OworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpOwogICAg
IAogICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsIGZvcmNlIGludGVybmFsIHNlZ21l
bnRlZCBidWZmZXJzCiAgICAgLy8gdG8gYmUgbWVyZ2VkIGludG8gYSBmbGF0IGJ1ZmZlci4gVXNl
IGdldFNvbWVEYXRhKCkgd2hlbmV2ZXIgcG9zc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAppbmRleCBhMmQ4NzFk
MjNiNzczYTA5YjlkOWY3OWYzMjA0NzA2ZmJmY2FiN2QzLi5jODI3YjRkODU4ODE4YmI3MzQyODlm
MzZjMGM4OTI3NzcyZDJhODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC02Nyw3ICs2Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICAK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgeyB9CisgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1
bnNpZ25lZCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgeyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hU
aW1lKi8pIHsgfQpAQCAtMTIwLDcgKzEyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2Vs
aWYgUExBVEZPUk0oTUFDKQogICAgICAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKndp
bGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVz
cG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Rv
cEJ1ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSB7IH0KKyAg
ICAgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgeyB9CiAjZW5kaWYKIAogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
S2l0RExMLmNwcAppbmRleCBlZjg1NjA4YzA0YzcxMWY5MjY5ZWU4NGVkNGQ4NDhlMmVlOGZjMGE2
Li41ZDQ0MGVlYzE4OWFjZThhYTRjYTY1YTBmZTA2NWQ0NjRiZDY1M2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YktpdERMTC5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25zdCBjaGFyKiBuYW1lKQogICAgIHZv
aWQqIHJlc291cmNlID0gTG9ja1Jlc291cmNlKHJlcyk7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgaW50IHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5zdGFuY2Us
IHJlc0luZm8pOworICAgIHVuc2lnbmVkIHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5zdGFuY2Us
IHJlc0luZm8pOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNlKSwgc2l6ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCAxNjMwYTJiNDdhMTNmY2FmZjgxNzlhN2M0MGI0YjA5NWM2MzI2MzhhLi4yMzlj
ZjExODMwOWM1N2IxYzNmYTY4YzU2MWEzYzg0MmRkY2ViMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTM5NCw3ICszOTQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURh
dGFBcnJheShSZXNvdXJjZUhhbmRsZSosIENGQXJyYXlSZWYpCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKE1BQykKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0Rh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KQordm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCAzMjdhZTM0Y2M3YjRkMmE1NGJhMWUxYTU3M2I0YmE1NGIwYmJmMThjLi4wNWUxMTk5NzZmNzMz
MjI1Y2NlNTRiMzE4NDJmZWJjMDBhOWRmNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTA2LDcgKzEwNiw3
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RhdGljIHNpemVfdCBmaWxlQmFj
a2VkUmVzb3VyY2VNaW5pbXVtU2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNw
b25zZUFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSAq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgT1ZFUlJJREU7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217529</attachid>
            <date>2013-11-21 01:05:50 -0800</date>
            <delta_ts>2013-11-21 01:24:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131121010549.patch</filename>
            <type>text/plain</type>
            <size>24809</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNjODMyNTQ2NDYwMjkx
Nzc0OTNjOWQyZTM2NzdjMmRiMjU4ODY3Zi4uNzI4NGI2MzUwNjc1ODYxMzJmZDQzN2FlMzcyY2Ri
NzZhMzcyY2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTExLTIxICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNh
dGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmg6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudDo6
ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6
OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0Jsb2JTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlN0cmVhbTo6ZGlk
UmVjZWl2ZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9i
U3RyZWFtLmg6CisKIDIwMTMtMTEtMjAgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+
CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdIE1vdmUgcmVnaW9uIHN0eWxpbmcgY29kZSBpbnRvIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmY2MzQ5OTc0YTI0MzI4
MGI3NTI0NmI1ODRiMDViZWM2ZTgwOGQ2Mi4uZWUxMTRmNjJiN2E1YjM5MjE0MWM4ZWIwODk4ZmQ5
YzFjZDdmYzZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTExLTIx
ICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNl
IHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4g
Y2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdERMTC5jcHA6CisgICAg
ICAgIChsb2FkUmVzb3VyY2VJbnRvQnVmZmVyKToKKwogMjAxMy0xMS0xOCAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE1OTQ1NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NDI4MmQ3NzA3YmE0NTkwMWY0NGMyNWU2MDMz
ZDNhMGIzOTc2ZTA1Li5jNWVmZTAzNDdjY2Q4MzhlNzM0ZjhlMDFjMDczNzhkNGE3NjVlNTI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMTEtMjEgIEzDoXN6bMOzIExhbmfDsyAg
PGxhbmdvQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBVc2UgdW5zaWduZWQgY29uc2lzdGVu
dGx5LCBhbmQgY2hlY2sgZm9yIGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVk
QnVmZmVyIGZyb20gb3RoZXIgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNDU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZm
ZXJpbmdEYXRhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaDoKKwogMjAxMy0xMS0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gRG8gbm90IHVzZSBkZXByZWNhdGVkIGNhbGxiYWNrcyBp
biBXZWJLaXRQb2xpY3lDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWNhYTQyNjYxYjc0
MjY4ZjdlYjNlZjI4NzllYjUxYjEzZmJhZjE2MC4uZTU2NTdjMDkyZGQ0ODQ5ODk5MDQzM2UyMWI5
YTMxODYyMGQ4ZTllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIyOCw4ICsyMjgsOCBAQCBf
X1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlcjEyY3JlYXRlQ0ZEYXRhRXYKIF9fWk43V2ViQ29yZTEy
U2hhcmVkQnVmZmVyMTJjcmVhdGVOU0RhdGFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIy
NGNyZWF0ZVdpdGhDb250ZW50c09mRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEy
U2hhcmVkQnVmZmVyNmFwcGVuZEVQS2NqCi1fX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBL
Y2kKLV9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoaQorX19aTjdXZWJDb3JlMTJTaGFy
ZWRCdWZmZXJDMUVQS2NqCitfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLaGoKIF9fWk43
V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJEMUV2
CiBfX1pON1dlYkNvcmUxMlRleHRFbmNvZGluZ0MxRVJLTjNXVEY2U3RyaW5nRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmgKaW5kZXggYjhhYzE0MTE3ODE5NThmNmZjYjNlYmJiMTVlZGIwZjQy
YmU2YzQ2Zi4uMzU4ZDYzNTM4OTg5OWMxMmI4NGY5NTNlOWEzODhhN2RlOTU3NWE0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAg
UGluZ0xvYWRlcihGcmFtZSosIFJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBPVkVSUklERSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KSBPVkVSUklERSB7
IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpIE9WRVJSSURFIHsgZGVsZXRlIHRo
aXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSos
IGRvdWJsZSkgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFIHsgZGVs
ZXRlIHRoaXM7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
UmVzb3VyY2VIYW5kbGUqKSAgT1ZFUlJJREUgeyByZXR1cm4gbV9zaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKaW5kZXgg
ZGFlMWMyZGU1NWFjYzZkODE3MDFlM2ZhYzZiYTA3MjY4OTZmNDVlMy4uMTc5ZGQyMmZhMzI4NWMw
NGZmZGZmZjdjMmYzMTA2NmI0YjI0MmQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1
ZmZlcigpCiB7CiB9CiAKLVJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFy
KiBkYXRhLCBpbnQgc2l6ZSkKK1Jlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDogbV9zaGFyZWRCdWZmZXIoU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUJ1ZmZlci5oCmluZGV4IDVkYzJkOTU3MWIzNTNiZjQ5MDVjN2MyZjE0OTQxMzYxYTI3M2U2ZTAu
LjVlMWFmNGM5YTVmOWVmYjc0ZWIxY2Y4NTk0ZDg1NDM4MTRiYzg3N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFJlc291cmNl
QnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VCdWZmZXI+IHsKIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVz
b3VyY2VCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNpemUpKTsgfQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNpemUp
KTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBhZG9wdFNoYXJlZEJ1
ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkKSB7IHJldHVybiBzaGFyZWQgPyBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIoc2hhcmVkKSkgOiAwOyB9CiAKICAgICB2aXJ0dWFs
IH5SZXNvdXJjZUJ1ZmZlcigpOwpAQCAtODksNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVz
b3VyY2VCdWZmZXIoKTsKIAogcHJpdmF0ZToKLSAgICBSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFy
KiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQpOwogICAg
IFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAKICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3NjQ3YWIyM2RjMzUwYjYwYjg4MmUwMzE4OTJkNjFk
NmMuLjQ4YjEyYzIyOTQyM2Q2ZjVjNWNhZjU3NzZlOWIwYzJlMWNjM2I1NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMSw0ICsxLDQgQEAKLS8qCisgLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDcgR3JhaGFtIERlbm5pcyAoZ3Jh
aGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRh
QnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1
ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwg
RGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmFk
ZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIFNoYXJlZEJ1
ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIGlm
IChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKICAgICAgICAgZnJhbWVM
b2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlUmVzcG9uc2UodGhpcywgbV9yZXNwb25zZSk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRU
eXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRh
TGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIC8vIFRoZSBm
b2xsb3dpbmcgYXNzZXJ0aW9ucyBhcmUgbm90IHF1aXRlIHZhbGlkIGhlcmUsIHNpbmNlIGEgc3Vi
Y2xhc3MKICAgICAvLyBtaWdodCBvdmVycmlkZSBkaWRSZWNlaXZlRGF0YSBpbiBhIHdheSB0aGF0
IGludmFsaWRhdGVzIHRoZW0uIFRoaXMKQEAgLTI5Myw3ICsyOTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIs
IGxvbmcgbG9uZwogICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoMCwgMCwgYnVmZmVyLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBsb25nIGxvbmcgZW5jb2RlZERhdGFM
ZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit2b2lkIFJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycEJ1ZmZlciwgbG9uZyBsb25nIGVuY29k
ZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIC8v
IFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGdldCBkYXRhK2xlbmd0aCAqT1IqIGEgU2hhcmVkQnVm
ZmVyLgogICAgIEFTU0VSVCghcHJwQnVmZmVyIHx8ICghZGF0YSAmJiAhbGVuZ3RoKSk7CkBAIC0z
MTIsNyArMzEyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZl
cihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmUKICAgICAgICAgZnJhbWVMb2Fk
ZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIgPyBidWZmZXItPmRh
dGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogbGVuZ3RoLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6Ondp
bGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQordm9pZCBS
ZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kg
PT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CkBAIC00NjgsNyArNDY4LDcgQEAg
dm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2Up
OwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkK
K3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEobV9mcmFtZS5nZXQoKSwgaWRl
bnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwg
bGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRCeXRlcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE1MjNhN2M1MGZhZTY2ZjVhNmVhZGJlMGI1
NTVlN2VjNjdmYWRhYTMuLjg5N2ZjZjExYzBhYTIzNzc3MzJkMmI3ODgwNjIwYTEyZWM5MjFkMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC04MSw5ICs4MSw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVu
Z3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBh
eWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRU
eXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiwgaW50KTsK
KyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYgVVNFKE5F
VFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpAQCAtMTAzLDE0ICsxMDMsMTQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1
bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRl
c1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
LCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBpbnQg
ZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxl
KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5k
bGUqKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lkIHdpbGxT
dG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGRhdGEsIGxlbmd0aCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBPVkVSUklERSB7IHdpbGxTdG9wQnVm
ZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERSB7IHJldHVy
biBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9WRVJSSURFIHsgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0gCkBAIC0xNjAsNyArMTYwLDcgQEAgcHJv
dGVjdGVkOgogCiAgICAgYm9vbCB3YXNDYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhbmNl
bGxhdGlvblN0YXR1cyA+PSBDYW5jZWxsZWQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFP
ckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIHVuc2lnbmVkLCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsK
IAogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIHsgcmV0dXJuIG1f
b3B0aW9uczsgfQogCkBAIC0xNzMsNyArMTczLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpID0gMDsKIAotICAgIHZvaWQgYWRkRGF0
YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFNoYXJlZEJ1ZmZlciosIERhdGFQYXlsb2FkVHlw
ZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIHVuc2lnbmVkLCBTaGFy
ZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVx
dWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9vcmlnaW5hbFJlcXVlc3Q7IC8vIEJlZm9yZSBy
ZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDczNTdiNDVmYTZhYTdkMGNkMTEzNzBjNDVm
YTYzN2RiM2VmODA1NTYuLjViYTlmNjIxMjYzNTRhNWQ4YjhhNGJjMzYyMWU3OTg0NWJhN2Y1ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCkBAIC01OTUsNyArNTk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25z
dCBSZXMKICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6
Y3JlYXRlKHVybCwgcmVzcG9uc2UsIHR5cGUpOwogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewog
ICAgIFVOVVNFRF9QQVJBTShlbmNvZGVkRGF0YUxlbmd0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAppbmRleCBh
NTAxNjczYTFlZWFhMjczM2I1MzEzYWQwZDU0YTMxMDg3ZmMzNjdjLi40NTE2ZDJkM2U2NzFjNDYy
NTFlMGJmMmRkYzQ5YTA4MmQ0MTFiOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCkBAIC0xMTAsNyArMTEwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
UmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5n
dGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0
aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGE1ZDk1NWJkYzI3
OWFjMGFiZTA0ZWIxZDYyMjVlNzhhMGUzMGFjYWIuLmQyYWI2MmQ1MDhiZWQ3YTIwOTY0NWJiZjBj
MGZhYWFhZjE0Yzg4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNw
cApAQCAtNzIsNyArNzIsNyBAQCBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcigpCiB7CiB9CiAK
LVNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKHNpemVfdCBzaXplKQorU2hhcmVkQnVmZmVyOjpT
aGFyZWRCdWZmZXIodW5zaWduZWQgc2l6ZSkKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9i
dWZmZXIoc2l6ZSkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKQEAgLTg0LDcgKzg0LDcg
QEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoc2l6ZV90IHNpemUpCiB7CiB9CiAKLVNoYXJl
ZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorU2hhcmVk
QnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKICAg
ICA6IG1fc2l6ZSgwKQogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01l
bW9yeU1hcHBlZChmYWxzZSkKQEAgLTkzLDE0ICs5MywxMCBAQCBTaGFyZWRCdWZmZXI6OlNoYXJl
ZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKICAgICAsIG1fbm90aWZ5TWVtb3J5
TWFwcGVkQ2FsbGJhY2tEYXRhKG51bGxwdHIpCiAjZW5kaWYKIHsKLSAgICAvLyBGSVhNRTogVXNl
IHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4g
Y2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCi0gICAgaWYgKHNpemUg
PCAwKQotICAgICAgICBDUkFTSCgpOwotCiAgICAgYXBwZW5kKGRhdGEsIHNpemUpOwogfQogCi1T
aGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQg
c2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRh
dGEsIHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFCTEUoRElTS19JTUFH
RV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC0xMDksMTAgKzEwNSw2
IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IGludCBzaXplKQogICAgICwgbV9ub3RpZnlNZW1vcnlNYXBwZWRDYWxsYmFja0RhdGEobnVsbHB0
cikKICNlbmRpZgogewotICAgIC8vIEZJWE1FOiBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBh
bmQgY2hlY2sgZm9yIGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVy
IGZyb20gb3RoZXIgY29kZS4KLSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIENSQVNIKCk7Ci0K
ICAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwog
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCAzYzNkZGE2
ZDQxYzU5MjAxODI2ZGQ5MjZjMjc4MGQzNTAxOWIwMTNiLi4wMTYzY2I1MTkzYjYxYzRhZDg2MGVl
YTYzMWM1OTczODI5NzYzOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIu
aApAQCAtNDgsOSArNDgsOSBAQCBjbGFzcyBQdXJnZWFibGVCdWZmZXI7CiBjbGFzcyBTaGFyZWRC
dWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFyZWRCdWZmZXIpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBjcmVhdGUoc2l6ZV90IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIo
c2l6ZSkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29u
c3QgY2hhciogYywgaW50IGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoYywg
aSkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3Qg
dW5zaWduZWQgY2hhciogYywgaW50IGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZm
ZXIoYywgaSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUo
dW5zaWduZWQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihzaXplKSk7
IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFy
KiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkp
KTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGMsIHVuc2lnbmVkIGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRC
dWZmZXIoYywgaSkpOyB9CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNy
ZWF0ZVdpdGhDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKIApAQCAtMTYw
LDkgKzE2MCw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTaGFyZWRCdWZmZXIoKTsKLSAg
ICBleHBsaWNpdCBTaGFyZWRCdWZmZXIoc2l6ZV90KTsKLSAgICBTaGFyZWRCdWZmZXIoY29uc3Qg
Y2hhciosIGludCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBpbnQp
OworICAgIGV4cGxpY2l0IFNoYXJlZEJ1ZmZlcih1bnNpZ25lZCk7CisgICAgU2hhcmVkQnVmZmVy
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCk7CisgICAgU2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVk
IGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgCiAgICAgLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdp
bGwgZm9yY2UgaW50ZXJuYWwgc2VnbWVudGVkIGJ1ZmZlcnMKICAgICAvLyB0byBiZSBtZXJnZWQg
aW50byBhIGZsYXQgYnVmZmVyLiBVc2UgZ2V0U29tZURhdGEoKSB3aGVuZXZlciBwb3NzaWJsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oCmluZGV4IGEyZDg3MWQyM2I3NzNhMDliOWQ5Zjc5ZjMyMDQ3MDZmYmZjYWI3ZDMu
LmM4MjdiNGQ4NTg4MThiYjczNDI4OWYzNmMwYzg5Mjc3NzJkMmE4OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgK
QEAgLTY3LDcgKzY3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikgeyB9CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgLyplbmNvZGVkRGF0YUxl
bmd0aCovKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCov
KSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5k
bGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAg
ICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgeyB9CkBAIC0xMjAsNyArMTIwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAjZWxpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHZpcnR1YWwg
TlNDYWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBO
U0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqLCBpbnQpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJp
bmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKSB7IH0KICNlbmRp
ZgogCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcAppbmRleCA3NzJlYTgwNzBiZjg0YWI5MDE0YzQz
MjE2ZjA0ZDI3NjZiYzk4ZTg1Li4wNjEwZGViN2JjYTFjNmQzNGUwNmE2NjRjNTdiZGMxMzdjYzEz
Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvQmxvYlN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L0Jsb2JTdHJlYW0uY3BwCkBAIC0zNyw3ICszNyw3IEBAIEJsb2JTdHJlYW06On5C
bG9iU3RyZWFtKCkKIHsKIH0KIAotdm9pZCBCbG9iU3RyZWFtOjpkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4sIGludCkKK3ZvaWQgQmxvYlN0
cmVhbTo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW4sIGludCkKIHsKICAgICBub3RpZnlEYXRhUmVjZWl2ZWQoQmxhY2tCZXJyeTo6
UGxhdGZvcm06OmNyZWF0ZU5ldHdvcmtCdWZmZXJCeVdyYXBwaW5nRGF0YShkYXRhLCBsZW4pKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9CbG9iU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvQmxvYlN0cmVhbS5oCmluZGV4IDJmOGRlZDViYjhmMjk3OTU0YjJiYTdmNWQwNWExNDYwZTc2
NGMxZDUuLjllODY0Yjg2YjhmZjFiNmQwYTA3NGMxYzFhOTg4NzJlN2FhMGE3ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JT
dHJlYW0uaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nIG1pbWVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAKICAg
ICAvLyBGcm9tIGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAKaW5kZXggZWY4NTYwOGMwNGM3MTFm
OTI2OWVlODRlZDRkODQ4ZTJlZThmYzBhNi4uNWQ0NDBlZWMxODlhY2U4YWE0Y2E2NWEwZmUwNjVk
NDY0YmQ2NTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZUludG9CdWZmZXIo
Y29uc3QgY2hhciogbmFtZSkKICAgICB2b2lkKiByZXNvdXJjZSA9IExvY2tSZXNvdXJjZShyZXMp
OwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAwOwotICAgIGludCBzaXplID0g
U2l6ZW9mUmVzb3VyY2UoZ0luc3RhbmNlLCByZXNJbmZvKTsKKyAgICB1bnNpZ25lZCBzaXplID0g
U2l6ZW9mUmVzb3VyY2UoZ0luc3RhbmNlLCByZXNJbmZvKTsKIAogICAgIHJldHVybiBXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihyZXNv
dXJjZSksIHNpemUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTYzMGEyYjQ3YTEzZmNhZmY4MTc5
YTdjNDBiNGIwOTVjNjMyNjM4YS4uOTY4NTVlOWRhNmFlZTUzMjgyZGJmMTQ5OWU3MGM0YWRhNmQy
Y2ZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUsIGNvbnMKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGlu
dCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIC8vIFRoZSBOZXR3b3JrUHJvY2VzcyBz
aG91bGQgbmV2ZXIgZ2V0IGEgZGlkUmVjZWl2ZURhdGEgY2FsbGJhY2suCiAgICAgLy8gV2Ugc2hv
dWxkIGFsd2F5cyBiZSB1c2luZyBkaWRSZWNlaXZlQnVmZmVyLgpAQCAtMzk0LDcgKzM5NCw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5KFJlc291cmNl
SGFuZGxlKiwgQ0ZBcnJheVJlZikKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCBpbnQpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0
b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDMyN2FlMzRjYzdiNGQy
YTU0YmExZTFhNTczYjRiYTU0YjBiYmYxOGMuLjIzNzBhZDFiOTBhZGQ4NzgxYjBjZTdjOTg3ODVk
MTFlMDQyNGI2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2VuZERhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcg
Ynl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIGludCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUq
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0
aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBzdGF0aWMgc2l6ZV90IGZpbGVCYWNrZWRSZXNvdXJjZU1pbmlt
dW1TaXplKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0
b3BCdWZmZXJpbmdEYXRhKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVu
c2lnbmVkKSBPVkVSUklERTsKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgo=
</data>
<flag name="commit-queue"
          id="240669"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217539</attachid>
            <date>2013-11-21 02:42:43 -0800</date>
            <delta_ts>2013-11-21 03:40:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131121024242.patch</filename>
            <type>text/plain</type>
            <size>41478</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI0YzM1ODEwOGQ0NTQ2
YzA0NTI3MjIyMWQyZGE2ZjIwNmQwZWE0NC4uYTQxZTg5MDJhMWE0YmMwNGJiYWYwNzI5MWE4MjQw
OGI1MzAyYWI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTIxICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Q
aW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcik6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmg6CisgICAgICAgICogcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJsb2JTdHJlYW06OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEpOgorCiAyMDEzLTExLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBDYW5ub3Qgc2Nyb2xsIGluIG9wdGlvbiBtZW51IHdoZW4g
aXQgbGFyZ2VyIHRoYW4gdGhlIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDIzNzcxMWQ1MGUw
YjAwMTEwNTRlYjg3YjU3ZDA5NTEwOWE0MGZjNzcuLjkwZjIxYzc1N2Y0ZTYyYzUxNjYzMGNhNmRm
ZjUyY2NkZThiYTUzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0x
MS0yMSAgTMOhc3psw7MgTGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAg
IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3
aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwOgorICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKwog
MjAxMy0xMS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIFZlcnNpb25zLm00IGZvciAyLjMu
MiByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZmNjM0OTk3NGEyNDMyODBiNzUyNDZiNTg0
YjA1YmVjNmU4MDhkNjIuLmVlMTE0ZjYyYjdhNWIzOTIxNDFjOGViMDg5OGZkOWMxY2Q3ZmM2ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMS0yMSAgTMOhc3psw7Mg
TGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFVzZSB1bnNpZ25lZCBj
b25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50
byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRETEwuY3BwOgorICAgICAgICAobG9hZFJl
c291cmNlSW50b0J1ZmZlcik6CisKIDIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0
NTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOTZjMDE0ZjJmNWY1NGE2MTU3ODk3N2RhZjBmMjMyNTRmMThmNWFk
Mi4uNjU4NDA3ODAzYjI3ZWVlYWQ2OWFhNTk1ZGYyYzViODFjNjc5M2I3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEzLTExLTIxICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYu
dS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNo
ZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9t
IG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAg
ICAgICogU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTMtMTEtMjAgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIGluZnJh
c3RydWN0dXJlIGZvciBTZXJ2ZXJDb25uZWN0aW9uIGNvbW11bmljYXRpb24gYmV0d2VlbiBXZWIg
YW5kIERhdGFiYXNlIHByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwZWFhMGU2ZjM5
OTVlY2Q2YjNhYjRiN2ZjYzFlMWQ5NGQ2YWQwYzM3Li5iMzhjNjc5NzlhMGM1NmI3NTVhMzcwN2Jm
MTFkZWUxNGM1MDVkNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjI4LDggKzIyOCw4IEBA
IF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyMTJjcmVhdGVDRkRhdGFFdgogX19aTjdXZWJDb3Jl
MTJTaGFyZWRCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZl
cjI0Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTJTaGFyZWRCdWZmZXI2YXBwZW5kRVBLY2oKLV9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFF
UEtjaQotX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQS2hpCitfX1pON1dlYkNvcmUxMlNo
YXJlZEJ1ZmZlckMxRVBLY2oKK19fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoagogX19a
TjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckQx
RXYKIF9fWk43V2ViQ29yZTEyVGV4dEVuY29kaW5nQzFFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApp
bmRleCA3YTdjZjM2ZThlMzEzZjhiNzQyYmM4NGYyZWZkNWFhYzUxYWY1OGI2Li5iOGM0NTU2ZmE5
NjQwM2QyOGE4NTBkODUxYTViNzczYmUyZDhlNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKICAgICAgICAgY2FuY2VsKGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOwogfQogCi12b2lkIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlw
ZSBkYXRhUGF5bG9hZFR5cGUpCit2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGxvbmcgbG9uZyBl
bmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKICAg
ICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgMCwgZW5jb2RlZERhdGFMZW5n
dGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCmluZGV4IGMxM2U4ODgxMGE0YzcxNzI5NzA3MzVm
ZWFiZWI0MTc4ZjkxNmQ3ZGIuLjYwODkyNWFlZWJkN2RlZGJkM2RiOGM5MzhiYjhhMTA0OGRiYjAw
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4s
IGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggYjhhYzE0MTE3ODE5NThm
NmZjYjNlYmJiMTVlZGIwZjQyYmU2YzQ2Zi4uMzU4ZDYzNTM4OTg5OWMxMmI4NGY5NTNlOWEzODhh
N2RlOTU3NWE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC02NSw3ICs2NSw3
IEBAIHByaXZhdGU6CiAgICAgUGluZ0xvYWRlcihGcmFtZSosIFJlc291cmNlUmVxdWVzdCYpOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCwgaW50KSBPVkVSUklERSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpIE9W
RVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSAgT1ZFUlJJREUgeyByZXR1cm4gbV9z
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUJ1ZmZlci5jcHAKaW5kZXggZGFlMWMyZGU1NWFjYzZkODE3MDFlM2ZhYzZiYTA3MjY4OTZmNDVl
My4uMTc5ZGQyMmZhMzI4NWMwNGZmZGZmZjdjMmYzMTA2NmI0YjI0MmQyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFJlc291cmNl
QnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcigpCiB7CiB9CiAKLVJlc291cmNlQnVmZmVyOjpSZXNvdXJj
ZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1Jlc291cmNlQnVmZmVyOjpSZXNv
dXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDogbV9zaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCmluZGV4IDVkYzJkOTU3MWIzNTNiZjQ5MDVjN2My
ZjE0OTQxMzYxYTI3M2U2ZTAuLjVlMWFmNGM5YTVmOWVmYjc0ZWIxY2Y4NTk0ZDg1NDM4MTRiYzg3
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIFJlc291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VCdWZm
ZXI+IHsKIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIpOyB9Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBp
bnQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNpemUp
KTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNl
QnVmZmVyKGRhdGEsIHNpemUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVm
ZmVyPiBhZG9wdFNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkKSB7
IHJldHVybiBzaGFyZWQgPyBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIoc2hhcmVkKSkgOiAw
OyB9CiAKICAgICB2aXJ0dWFsIH5SZXNvdXJjZUJ1ZmZlcigpOwpAQCAtODksNyArODksNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VCdWZmZXIoKTsKIAogcHJpdmF0ZToKLSAgICBSZXNvdXJj
ZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFy
KiwgdW5zaWduZWQpOwogICAgIFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
Pik7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3NjQ3YWIyM2RjMzUw
YjYwYjg4MmUwMzE4OTJkNjFkNmMuLjQ4YjEyYzIyOTQyM2Q2ZjVjNWNhZjU3NzZlOWIwYzJlMWNj
M2I1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMSw0
ICsxLDQgQEAKLS8qCisgLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDcg
R3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpAQCAtMTkwLDcgKzE5
MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1
ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZvaWQgUmVzb3VyY2VM
b2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBTaGFy
ZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQg
UmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxv
YWRUeXBlKQogewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05v
dEJ1ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlUmVzcG9uc2Uo
dGhpcywgbV9yZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxl
bmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgbG9u
ZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBl
KQogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9ucyBhcmUgbm90IHF1aXRlIHZhbGlk
IGhlcmUsIHNpbmNlIGEgc3ViY2xhc3MKICAgICAvLyBtaWdodCBvdmVycmlkZSBkaWRSZWNlaXZl
RGF0YSBpbiBhIHdheSB0aGF0IGludmFsaWRhdGVzIHRoZW0uIFRoaXMKQEAgLTI5Myw3ICsyOTMs
NyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXIsIGxvbmcgbG9uZwogICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIo
MCwgMCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KIAot
dm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBsb25n
IGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUp
Cit2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycEJ1ZmZl
ciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxv
YWRUeXBlKQogewogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGdldCBkYXRhK2xlbmd0
aCAqT1IqIGEgU2hhcmVkQnVmZmVyLgogICAgIEFTU0VSVCghcHJwQnVmZmVyIHx8ICghZGF0YSAm
JiAhbGVuZ3RoKSk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmUK
ICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0aGlzLCBi
dWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDog
bGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKLXZvaWQg
UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAobV9vcHRpb25zLmRh
dGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CkBA
IC00NjgsNyArNDY4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBkaWRSZWNlaXZl
UmVzcG9uc2UocmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBl
bmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5j
b2RlZERhdGFMZW5ndGgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEo
bV9mcmFtZS5nZXQoKSwgaWRlbnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgZGlk
UmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRC
eXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE1MjNhN2M1
MGZhZTY2ZjVhNmVhZGJlMGI1NTVlN2VjNjdmYWRhYTMuLjg5N2ZjZjExYzBhYTIzNzc3MzJkMmI3
ODgwNjIwYTEyZWM5MjFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CkBAIC04MSw5ICs4MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcg
Ynl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBs
b25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxl
bmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShj
b25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBj
aGFyKiwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJs
ZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJik7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpAQCAtMTAzLDE0
ICsxMDMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVz
b3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEo
UmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBs
b25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRp
bWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9j
a2VkKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNo
b3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICNpZiBQTEFURk9STShNQUMpCi0gICAg
dmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdEYXRh
KGRhdGEsIGxlbmd0aCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBPVkVS
UklERSB7IHdpbGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CiAjZW5kaWYKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUq
KSBPVkVSUklERSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9WRVJSSURF
IHsgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0gCkBAIC0x
NjAsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCB3YXNDYW5jZWxsZWQoKSBjb25z
dCB7IHJldHVybiBtX2NhbmNlbGxhdGlvblN0YXR1cyA+PSBDYW5jZWxsZWQ7IH0KIAotICAgIHZv
aWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBl
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIHVuc2lnbmVk
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwg
RGF0YVBheWxvYWRUeXBlKTsKIAogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0
aW9ucygpIHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCkBAIC0xNzMsNyArMTczLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpID0gMDsK
IAotICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFNoYXJlZEJ1ZmZl
ciosIERhdGFQYXlsb2FkVHlwZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3QgY2hh
ciosIHVuc2lnbmVkLCBTaGFyZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAgICAgUmVz
b3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9vcmlnaW5hbFJl
cXVlc3Q7IC8vIEJlZm9yZSByZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcAppbmRleCAxODViODllOTBlNTk4ZjExMzdjMzgyNmVjNmM3NTg5OWY2
NmI2M2RlLi45ZWE3Y2Q0ZDhiOTYxZWRjZjBkOWZkZjQ5ODVjNzg0YTI1ZDM5M2YxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTIyMCw3ICsyMjAs
NyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgY2hlY2tGb3JIVFRQU3RhdHVzQ29kZUVycm9y
KCk7CiB9CiAKLXZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBh
eWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgbG9uZyBsb25nIGVu
Y29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAg
IGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoZGF0YSwgbGVuZ3RoLCAwLCBlbmNvZGVkRGF0YUxlbmd0
aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmgKaW5kZXggMDBhYjk4MDFjZDZlMDMxZGJiOGY4NDZlMGM1NDhjNmE1MGVjNWI0NC4u
NGM1ZWYxNjdkN2MxNWY4ZDdhMTM4YWY5Y2I3OGQ4NWRlODVjYjJlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBs
b25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9u
ZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmNwcAppbmRleCA3MzU3YjQ1ZmE2YWE3ZDBjZDExMzcwYzQ1ZmE2MzdkYjNl
ZjgwNTU2Li41YmE5ZjYyMTI2MzU0YTVkOGI4YTRiYzM2MjFlNzk4NDViYTdmNWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcApAQCAtNTk1LDcgKzU5NSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3Vw
OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAg
ICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1
cmwsIHJlc3BvbnNlLCB0eXBlKTsKIH0KIAotdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBVTlVT
RURfUEFSQU0oZW5jb2RlZERhdGFMZW5ndGgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKaW5kZXggYTUwMTY3M2Ex
ZWVhYTI3MzNiNTMxM2FkMGQ1NGEzMTA4N2ZjMzY3Yy4uNDUxNmQyZDNlNjcxYzQ2MjUxZTBiZjJk
ZGM0OWEwODJkNDExYjkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNl
SGFuZGxlKikgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwg
ZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBhNWQ5NTViZGMyNzlhYzBhYmUw
NGViMWQ2MjI1ZTc4YTBlMzBhY2FiLi5kMmFiNjJkNTA4YmVkN2EyMDk2NDViYmYwYzBmYWFhYWYx
NGM4OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTcy
LDcgKzcyLDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoKQogewogfQogCi1TaGFyZWRC
dWZmZXI6OlNoYXJlZEJ1ZmZlcihzaXplX3Qgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fYnVmZmVyKHNp
emUpCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCkBAIC04NCw3ICs4NCw3IEBAIFNoYXJl
ZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKHNpemVfdCBzaXplKQogewogfQogCi1TaGFyZWRCdWZmZXI6
OlNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6
U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3Np
emUoMCkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBw
ZWQoZmFsc2UpCkBAIC05MywxNCArOTMsMTAgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIo
Y29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1lbW9yeU1hcHBlZENh
bGxiYWNrRGF0YShudWxscHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6IFVzZSB1bnNpZ25l
ZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcg
aW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChzaXplIDwgMCkKLSAg
ICAgICAgQ1JBU0goKTsKLQogICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAotU2hhcmVkQnVm
ZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCitT
aGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBzaXplKQogICAgIDogbV9zaXplKDApCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUp
CiAgICAgLCBtX2lzTWVtb3J5TWFwcGVkKGZhbHNlKQpAQCAtMTA5LDEwICsxMDUsNiBAQCBTaGFy
ZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6
ZSkKICAgICAsIG1fbm90aWZ5TWVtb3J5TWFwcGVkQ2FsbGJhY2tEYXRhKG51bGxwdHIpCiAjZW5k
aWYKIHsKLSAgICAvLyBGSVhNRTogVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNr
IGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90
aGVyIGNvZGUuCi0gICAgaWYgKHNpemUgPCAwKQotICAgICAgICBDUkFTSCgpOwotCiAgICAgYXBw
ZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKIH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggM2MzZGRhNmQ0MWM1OTIw
MTgyNmRkOTI2YzI3ODBkMzUwMTliMDEzYi4uMDE2M2NiNTE5M2I2MWM0YWQ4NjBlZWE2MzFjNTk3
MzgyOTc2MzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKQEAgLTQ4
LDkgKzQ4LDkgQEAgY2xhc3MgUHVyZ2VhYmxlQnVmZmVyOwogY2xhc3MgU2hhcmVkQnVmZmVyIDog
cHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hh
cmVkQnVmZmVyKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRl
KHNpemVfdCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKHNpemUpKTsg
fQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIq
IGMsIGludCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHVuc2lnbmVk
IGNoYXIqIGMsIGludCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkp
KTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVk
IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgdW5z
aWduZWQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBj
aGFyKiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMs
IGkpKTsgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGVXaXRo
Q29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAKQEAgLTE2MCw5ICsxNjAs
OSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2hhcmVkQnVmZmVyKCk7Ci0gICAgZXhwbGlj
aXQgU2hhcmVkQnVmZmVyKHNpemVfdCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqLCBp
bnQpOwotICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50KTsKKyAgICBl
eHBsaWNpdCBTaGFyZWRCdWZmZXIodW5zaWduZWQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCBj
aGFyKiwgdW5zaWduZWQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwg
dW5zaWduZWQpOwogICAgIAogICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsIGZvcmNl
IGludGVybmFsIHNlZ21lbnRlZCBidWZmZXJzCiAgICAgLy8gdG8gYmUgbWVyZ2VkIGludG8gYSBm
bGF0IGJ1ZmZlci4gVXNlIGdldFNvbWVEYXRhKCkgd2hlbmV2ZXIgcG9zc2libGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggM2Y5YTA3NWM2NWYyNjM3
M2M4NDk4NmU2ZGExNDhmMjU0MzBlYzMzOC4uYTZiYjJhNzQyYjBkNGM2OGEwYWQwMDQxMDA4Nzhm
OTVkNDk1YmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQg
OiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW0KICAgICAgICAgdmly
dHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNp
emVfdCYgYWN0dWFsU2l6ZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgaW50KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKQEAgLTEx
ODEsNyArMTE4MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlCiAgICAgaGFuZGxlUmVzcG9u
c2VSZWNlaXZlZChyZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdD
bGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCwgaW50KQordm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgsIGludCkKIHsKICAgICBoYW5kbGVEYXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNl
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNl
SGFuZGxlLmNwcAppbmRleCAzNzY5NjQxMmQxYTI1ZjBlZTNlMjc4OTllMDRjMzEyZjY4NzdmZjNl
Li43NzZmOWZkZmQ5YzQ1NGNlNzU3MTEzMGVjOGYyMWVjZjMwZWI1YjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3Bw
CkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xv
YWRlcihSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYpOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgLyplbmNvZGVk
RGF0YUxlbmd0aCovKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVuY29kZWREYXRh
TGVuZ3RoKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBP
VkVSUklERTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25v
dXNMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjCiAg
ICAgc3RhdGljX2Nhc3Q8QmxvYlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9k
YXRhLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7CiB9CiAKLXZvaWQg
QmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KQordm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91
c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5z
aWduZWQsIGludCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IGEyZDg3MWQyM2I3NzNhMDliOWQ5
Zjc5ZjMyMDQ3MDZmYmZjYWI3ZDMuLmM4MjdiNGQ4NTg4MThiYjczNDI4OWYzNmMwYzg5Mjc3NzJk
MmE4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTY3LDcgKzY3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAgICAgICAgIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQg
LyplbmNvZGVkRGF0YUxlbmd0aCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBl
bmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgeyB9CkBA
IC0xMjAsNyArMTIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZWxpZiBQTEFURk9STShN
QUMpCiAgICAgICAgIHZpcnR1YWwgTlNDYWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgeyByZXR1
cm4gcmVzcG9uc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcios
IHVuc2lnbmVkKSB7IH0KICNlbmRpZgogCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAKaW5k
ZXggYTYwZGZiOTFlNTdjYmVkMGJhZjc3MGE4ZmQ4ZDdkM2NmMTI4OTE3ZS4uOTk0NjgyZmIxZTFh
MjU4N2JkNmZhYzg0YzJiYWJkNGM2ZjhmMjFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAKQEAg
LTY3LDcgKzY3LDcgQEAgdm9pZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2UKICAgICBtX3Jlc3BvbnNlID0g
cmVzcG9uc2U7CiB9CiAKLXZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IC8q
ZW5jb2RlZERhdGFMZW5ndGgqLykKK3ZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKQogewogICAgIG1fZGF0YS5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaAppbmRleCA3ZDRiZjZlYmM1MDY0N2ExZDM5
ZGExZDJiNTAzZWM5NjMzYThkZjY4Li5hYmNkNmY1Nzc1MjY0YmVmODVhZjE4ZDI1YjJhMDhmNWNl
ODBiNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxl
KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQg
LyplbmNvZGVkRGF0YUxlbmd0aCovKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVu
Y29kZWREYXRhTGVuZ3RoKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKSBPVkVSUklERTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L0Jsb2JTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L0Jsb2JTdHJlYW0uY3BwCmluZGV4IDc3MmVhODA3MGJmODRhYjkwMTRjNDMyMTZmMDRkMjc2
NmJjOThlODUuLjA2MTBkZWI3YmNhMWM2ZDM0ZTA2YTY2NGM1N2JkYzEzN2NjMTNjZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3Ry
ZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
QmxvYlN0cmVhbS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgQmxvYlN0cmVhbTo6fkJsb2JTdHJlYW0o
KQogewogfQogCi12b2lkIEJsb2JTdHJlYW06OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbiwgaW50KQordm9pZCBCbG9iU3RyZWFtOjpkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
biwgaW50KQogewogICAgIG5vdGlmeURhdGFSZWNlaXZlZChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
Y3JlYXRlTmV0d29ya0J1ZmZlckJ5V3JhcHBpbmdEYXRhKGRhdGEsIGxlbikpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJl
YW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3Ry
ZWFtLmgKaW5kZXggMmY4ZGVkNWJiOGYyOTc5NTRiMmJhN2Y1ZDA1YTE0NjBlNzY0YzFkNS4uOWU4
NjRiODZiOGZmMWI2ZDBhMDc0YzFjMWE5ODg3MmU3YWEwYTdkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5oCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpTdHJpbmcgbWltZVR5cGUoKSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIEZyb20g
Y2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQuCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiwgdW5zaWduZWQsIGludCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCmluZGV4IGMx
NjQwMmVjZDI1MzBkZTVlOGQzNGE2MTc4Zjg3MGRmNTE0NTljM2MuLjEwNmQ1MzNmNzhjNWYxMjJi
OGU5ZGYzZTk5MzEyMzY4YjI4MGI4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRs
ZUJsYWNrQmVycnkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiwgdW5zaWduZWQsIGludCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCkBAIC03MCw3ICs3MCw3IEBA
IHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjCiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQog
Ci12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQpCit2b2lkIFdlYkNvcmVT
eW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCkKIHsKICAgICBtX2RhdGEuYXBwZW5kKGRh
dGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDQwMTNjZjM4MDlhZTVl
MzAyM2U4ZWI2NmQ5NmM2ZTkwMjg1OTE3MjQuLmJiOTI3ZjMyZmEzYThkMjM5YjUyYjAwZTBlZDk3
NmNlZmZhMmU3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQs
IGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCkBA
IC03MSw3ICs3MSw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjCiAgICAgbV9yZXNwb25zZSA9
IHJlc3BvbnNlOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQp
Cit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCkKIHsKICAgICBt
X2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4
IDRjODgyMTY5OWFiNDFjZmExOTgzNjY0OTYxODMzODFhZTg3ZDYyNzMuLmY3ZjJhODk4YWRkYWU3
MTMyNzljYmNhNzFmYjFmMzgwZDgwMGU4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0x
NDQsNyArMTQ0LDcgQEAgcHVibGljOgogICAgICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCwgaW50KQogICAgIHsKICAgICAgICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCAwZjY2YjcwN2EwZGY5NDc1Yzc1MzQxMjMyMjE5
ZmVhNGZhZjFmZTFhLi43N2YwNDYyYTc3NzcwZjc4Y2Q1NzUyMjQ3NTc0ZTczM2VmODE4MGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVz
b3VyY2VIYW5kbGVXaW4uY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICBISU5URVJO
RVQgaW50ZXJuZXRIYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmV0SGFuZGxlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSov
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3Vz
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJj
CiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoLCBpbnQpCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgsIGludCkKIHsKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCBjNzQ4YzY1ODFjZjM3
ZjEyNmQxMDdlYmNlNjI0OGUzMTAyYTZhMzFkLi5iNjMzNjdiOWZjMzgxNTZjMjY1OGQ4OTI0NmVj
ZjBiM2Q2YjFkMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9h
ZC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgY2xhc3MgRG93bmxvYWRDbGllbnQgOiBwdWJsaWMgUmVz
b3VyY2VIYW5kbGVDbGllbnQgewogICAgICAgICBEb3dubG9hZENsaWVudChXZWJLaXREb3dubG9h
ZCopOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCk7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqLCB1bnNpZ25lZCwgaW50KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKQEAgLTkzOCw3ICs5MzgsNyBA
QCB2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KIH0KIAotdm9pZCBEb3dubG9hZENsaWVu
dDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIHdlYmtpdF9kb3dubG9hZF9yZWNl
aXZlZF9kYXRhKG1fZG93bmxvYWQsIGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0RExM
LmNwcAppbmRleCBlZjg1NjA4YzA0YzcxMWY5MjY5ZWU4NGVkNGQ4NDhlMmVlOGZjMGE2Li41ZDQ0
MGVlYzE4OWFjZThhYTRjYTY1YTBmZTA2NWQ0NjRiZDY1M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERM
TC5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25zdCBjaGFyKiBuYW1lKQogICAgIHZvaWQqIHJl
c291cmNlID0gTG9ja1Jlc291cmNlKHJlcyk7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgaW50IHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5zdGFuY2UsIHJlc0lu
Zm8pOworICAgIHVuc2lnbmVkIHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5zdGFuY2UsIHJlc0lu
Zm8pOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNlKSwgc2l6ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCAxNjMwYTJiNDdhMTNmY2FmZjgxNzlhN2M0MGI0YjA5NWM2MzI2MzhhLi45Njg1NWU5ZGE2
YWVlNTMyODJkYmYxNDk5ZTcwYzRhZGE2ZDJjZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE5Miw3
ICsxOTIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
QXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29ucwogICAgIH0KIH0KIAotdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAg
ICAgLy8gVGhlIE5ldHdvcmtQcm9jZXNzIHNob3VsZCBuZXZlciBnZXQgYSBkaWRSZWNlaXZlRGF0
YSBjYWxsYmFjay4KICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGJlIHVzaW5nIGRpZFJlY2VpdmVC
dWZmZXIuCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5UmVmKQogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShNQUMpCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BC
dWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkKK3ZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiwgdW5zaWduZWQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKaW5kZXggMzI3YWUzNGNjN2I0ZDJhNTRiYTFlMWE1NzNiNGJhNTRiMGJiZjE4Yy4uMjM3
MGFkMWI5MGFkZDg3ODFiMGNlN2M5ODc4NWQxMWUwNDI0YjY3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTgy
LDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3lu
YyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0
b3RhbEJ5dGVzVG9CZVNlbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgZW5jb2Rl
ZERhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50IGVuY29k
ZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZl
cihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKQEAgLTEw
Niw3ICsxMDYsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBzaXpl
X3QgZmlsZUJhY2tlZFJlc291cmNlTWluaW11bVNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bENhY2hlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5n
RGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpIE9WRVJSSURFOwogI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IGQw
ZWViYjVkZTUyYjMyOTAzOGUwMWY1ZjdlODY4YjZlNTg0ZmUxNTIuLmQ1NjM2YzVhNTk5M2IyNDUy
OWJiYWRlN2UxNDE2NTA1Nzc0Mzc5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAg
cHVibGljOgogICAgICAgICBtX2Rvd25sb2FkLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihkZXN0aW5h
dGlvblVSSSk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVuZ3Ro
Ki8pCisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKICAgICB7
CiAgICAgICAgIGlmIChtX2hhbmRsZVJlc3BvbnNlTGF0ZXJJRCkgewogICAgICAgICAgICAgZ19z
b3VyY2VfcmVtb3ZlKG1faGFuZGxlUmVzcG9uc2VMYXRlcklEKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217544</attachid>
            <date>2013-11-21 03:40:35 -0800</date>
            <delta_ts>2013-11-25 02:14:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131121034034.patch</filename>
            <type>text/plain</type>
            <size>41889</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI0YzM1ODEwOGQ0NTQ2
YzA0NTI3MjIyMWQyZGE2ZjIwNmQwZWE0NC4uYTQxZTg5MDJhMWE0YmMwNGJiYWYwNzI5MWE4MjQw
OGI1MzAyYWI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTIxICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Q
aW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcik6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmg6CisgICAgICAgICogcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJsb2JTdHJlYW06OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEpOgorCiAyMDEzLTExLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBDYW5ub3Qgc2Nyb2xsIGluIG9wdGlvbiBtZW51IHdoZW4g
aXQgbGFyZ2VyIHRoYW4gdGhlIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDIzNzcxMWQ1MGUw
YjAwMTEwNTRlYjg3YjU3ZDA5NTEwOWE0MGZjNzcuLjkwZjIxYzc1N2Y0ZTYyYzUxNjYzMGNhNmRm
ZjUyY2NkZThiYTUzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0x
MS0yMSAgTMOhc3psw7MgTGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAg
IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3
aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwOgorICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKwog
MjAxMy0xMS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIFZlcnNpb25zLm00IGZvciAyLjMu
MiByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZmNjM0OTk3NGEyNDMyODBiNzUyNDZiNTg0
YjA1YmVjNmU4MDhkNjIuLmVlMTE0ZjYyYjdhNWIzOTIxNDFjOGViMDg5OGZkOWMxY2Q3ZmM2ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMS0yMSAgTMOhc3psw7Mg
TGFuZ8OzICA8bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFVzZSB1bnNpZ25lZCBj
b25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50
byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRETEwuY3BwOgorICAgICAgICAobG9hZFJl
c291cmNlSW50b0J1ZmZlcik6CisKIDIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTk0
NTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOTZjMDE0ZjJmNWY1NGE2MTU3ODk3N2RhZjBmMjMyNTRmMThmNWFk
Mi4uNjU4NDA3ODAzYjI3ZWVlYWQ2OWFhNTk1ZGYyYzViODFjNjc5M2I3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEzLTExLTIxICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYu
dS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNo
ZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9t
IG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAg
ICAgICogU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTMtMTEtMjAgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIGluZnJh
c3RydWN0dXJlIGZvciBTZXJ2ZXJDb25uZWN0aW9uIGNvbW11bmljYXRpb24gYmV0d2VlbiBXZWIg
YW5kIERhdGFiYXNlIHByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwZWFhMGU2ZjM5
OTVlY2Q2YjNhYjRiN2ZjYzFlMWQ5NGQ2YWQwYzM3Li5kMjBhMjY1Y2Q2OTM0YTQ5YzAyNGVlYjJm
NGU4ZGY0MTJmMWNkMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjI4LDggKzIyOCw4IEBA
IF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyMTJjcmVhdGVDRkRhdGFFdgogX19aTjdXZWJDb3Jl
MTJTaGFyZWRCdWZmZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZl
cjI0Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTJTaGFyZWRCdWZmZXI2YXBwZW5kRVBLY2oKLV9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFF
UEtjaQotX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQS2hpCitfX1pON1dlYkNvcmUxMlNo
YXJlZEJ1ZmZlckMxRVBLY2oKK19fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoagogX19a
TjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckQx
RXYKIF9fWk43V2ViQ29yZTEyVGV4dEVuY29kaW5nQzFFUktOM1dURjZTdHJpbmdFCkBAIC0zNDQs
NyArMzQ0LDcgQEAgX19aTjdXZWJDb3JlMTRMb2FkZXJTdHJhdGVneTI1bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseUVQTlNfMTdOZXR3b3JraW5nQ29udGV4dEUKIF9fWk43V2ViQ29yZTE0UGx1Z2lu
RG9jdW1lbnQxMnBsdWdpbldpZGdldEV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyMTJj
cmVhdGVOU0RhdGFFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlcjZhcHBlbmRFUEtjagot
X19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlckMxRVBLY2kKK19fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VCdWZmZXJDMUVQS2NqCiBfX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyQzFFdgogX19aTjdX
ZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlckMyRXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXJE
MUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcAppbmRleCA3YTdjZjM2ZThlMzEzZjhiNzQyYmM4NGYyZWZkNWFhYzUxYWY1OGI2
Li5iOGM0NTU2ZmE5NjQwM2QyOGE4NTBkODUxYTViNzczYmUyZDhlNzU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKQEAg
LTk0LDcgKzk0LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKICAgICAgICAgY2FuY2VsKGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOwog
fQogCi12b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERh
dGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgs
IGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2Fk
VHlwZSkKIHsKICAgICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgMCwgZW5j
b2RlZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCmluZGV4IGMxM2U4ODgxMGE0
YzcxNzI5NzA3MzVmZWFiZWI0MTc4ZjkxNmQ3ZGIuLjYwODkyNWFlZWJkN2RlZGJkM2RiOGM5Mzhi
YjhhMTA0OGRiYjAwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3Qg
Y2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBl
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmlu
aXNoVGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggYjhh
YzE0MTE3ODE5NThmNmZjYjNlYmJiMTVlZGIwZjQyYmU2YzQ2Zi4uMzU4ZDYzNTM4OTg5OWMxMmI4
NGY5NTNlOWEzODhhN2RlOTU3NWE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBA
IC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgUGluZ0xvYWRlcihGcmFtZSosIFJlc291cmNl
UmVxdWVzdCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERSB7IGRlbGV0ZSB0aGlz
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50KSBPVkVSUklERSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2ln
bmVkLCBpbnQpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgT1ZFUlJJREUgeyBkZWxldGUg
dGhpczsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSAgT1ZFUlJJREUg
eyByZXR1cm4gbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGFlMWMyZGU1NWFjYzZkODE3MDFlM2ZhYzZi
YTA3MjY4OTZmNDVlMy4uMTc5ZGQyMmZhMzI4NWMwNGZmZGZmZjdjMmYzMTA2NmI0YjI0MmQyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCkBAIC0zNSw3ICszNSw3
IEBAIFJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcigpCiB7CiB9CiAKLVJlc291cmNlQnVm
ZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1Jlc291cmNl
QnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQog
ICAgIDogbV9zaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSkpCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCmluZGV4IDVkYzJkOTU3MWIz
NTNiZjQ5MDVjN2MyZjE0OTQxMzYxYTI3M2U2ZTAuLjVlMWFmNGM5YTVmOWVmYjc0ZWIxY2Y4NTk0
ZDg1NDM4MTRiYzg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCkBA
IC00NSw3ICs0NSw3IEBAIGNsYXNzIFJlc291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
UmVzb3VyY2VCdWZmZXI+IHsKIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291
cmNlQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIp
OyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVy
KGRhdGEsIHNpemUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBj
cmVhdGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlc291cmNlQnVmZmVyKGRhdGEsIHNpemUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlc291cmNlQnVmZmVyPiBhZG9wdFNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gc2hhcmVkKSB7IHJldHVybiBzaGFyZWQgPyBhZG9wdFJlZihuZXcgUmVzb3VyY2VCdWZmZXIo
c2hhcmVkKSkgOiAwOyB9CiAKICAgICB2aXJ0dWFsIH5SZXNvdXJjZUJ1ZmZlcigpOwpAQCAtODks
NyArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VCdWZmZXIoKTsKIAogcHJpdmF0ZToK
LSAgICBSZXNvdXJjZUJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKKyAgICBSZXNvdXJjZUJ1ZmZl
cihjb25zdCBjaGFyKiwgdW5zaWduZWQpOwogICAgIFJlc291cmNlQnVmZmVyKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPik7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3NoYXJlZEJ1ZmZl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY2MjhkNDk3
NjQ3YWIyM2RjMzUwYjYwYjg4MmUwMzE4OTJkNjFkNmMuLjQ4YjEyYzIyOTQyM2Q2ZjVjNWNhZjU3
NzZlOWIwYzJlMWNjM2I1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcApAQCAtMSw0ICsxLDQgQEAKLS8qCisgLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAg
ICAgKEMpIDIwMDcgR3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKgpA
QCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQ
b2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiB9CiAgICAgCiAKLXZv
aWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2Fk
VHlwZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5
cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1Bv
bGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcs
NyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNl
aXZlUmVzcG9uc2UodGhpcywgbV9yZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBl
bmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQg
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0
YVBheWxvYWRUeXBlKQogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9ucyBhcmUgbm90
IHF1aXRlIHZhbGlkIGhlcmUsIHNpbmNlIGEgc3ViY2xhc3MKICAgICAvLyBtaWdodCBvdmVycmlk
ZSBkaWRSZWNlaXZlRGF0YSBpbiBhIHdheSB0aGF0IGludmFsaWRhdGVzIHRoZW0uIFRoaXMKQEAg
LTI5Myw3ICsyOTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIsIGxvbmcgbG9uZwogICAgIGRpZFJlY2VpdmVE
YXRhT3JCdWZmZXIoMCwgMCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRU
eXBlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJw
QnVmZmVyLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRh
UGF5bG9hZFR5cGUpCit2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVy
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IHBycEJ1ZmZlciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5
cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGdl
dCBkYXRhK2xlbmd0aCAqT1IqIGEgU2hhcmVkQnVmZmVyLgogICAgIEFTU0VSVCghcHJwQnVmZmVy
IHx8ICghZGF0YSAmJiAhbGVuZ3RoKSk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoLCBQYXNzUmUKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZl
RGF0YSh0aGlzLCBidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZl
ci0+c2l6ZSgpIDogbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZm
ZXJpbmdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAo
bV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAg
ICByZXR1cm47CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAg
ICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVS
ZXNvdXJjZURhdGEobV9mcmFtZS5nZXQoKSwgaWRlbnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0
aCk7CiAgICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwg
RGF0YVBheWxvYWRCeXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmlu
ZGV4IGE1MjNhN2M1MGZhZTY2ZjVhNmVhZGJlMGI1NTVlN2VjNjdmYWRhYTMuLjg5N2ZjZjExYzBh
YTIzNzc3MzJkMmI3ODgwNjIwYTEyZWM5MjFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5oCkBAIC04MSw5ICs4MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25l
ZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVT
ZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhcios
IGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBl
bmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKLSAgICB2b2lkIHdpbGxTdG9wQnVm
ZmVyaW5nRGF0YShjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIHdpbGxTdG9wQnVmZmVyaW5n
RGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNL
KQpAQCAtMTAzLDE0ICsxMDMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50
LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0
aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BC
dWZmZXJpbmdEYXRhKGRhdGEsIGxlbmd0aCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BC
dWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQg
bGVuZ3RoKSBPVkVSUklERSB7IHdpbGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9
CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVz
b3VyY2VIYW5kbGUqKSBPVkVSUklERSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVu
Z2UpIE9WRVJSSURFIHsgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5n
ZSk7IH0gCkBAIC0xNjAsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCB3YXNDYW5j
ZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGxhdGlvblN0YXR1cyA+PSBDYW5jZWxsZWQ7
IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0
YVBheWxvYWRUeXBlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hh
ciosIHVuc2lnbmVkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKIAogICAgIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgb3B0aW9ucygpIHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCkBAIC0xNzMsNyArMTcz
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJj
ZUVycm9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VF
cnJvciYpID0gMDsKIAotICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQs
IFNoYXJlZEJ1ZmZlciosIERhdGFQYXlsb2FkVHlwZSk7CisgICAgdm9pZCBhZGREYXRhT3JCdWZm
ZXIoY29uc3QgY2hhciosIHVuc2lnbmVkLCBTaGFyZWRCdWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUp
OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlcXVlc3Qg
bV9vcmlnaW5hbFJlcXVlc3Q7IC8vIEJlZm9yZSByZWRpcmVjdHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxODViODllOTBlNTk4ZjExMzdjMzgy
NmVjNmM3NTg5OWY2NmI2M2RlLi45ZWE3Y2Q0ZDhiOTYxZWRjZjBkOWZkZjQ5ODVjNzg0YTI1ZDM5
M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTIyMCw3ICsyMjAsNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgY2hlY2tGb3JIVFRQU3Rh
dHVzQ29kZUVycm9yKCk7CiB9CiAKLXZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxl
bmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgU3VicmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRU
eXBlKQogewogICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoZGF0YSwgbGVuZ3RoLCAwLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggMDBhYjk4MDFjZDZlMDMxZGJiOGY4NDZlMGM1NDhj
NmE1MGVjNWI0NC4uNGM1ZWYxNjdkN2MxNWY4ZDdhMTM4YWY5Y2I3OGQ4NWRlODVjYjJlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKQEAgLTYwLDcgKzYwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNT
ZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhcios
IGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWdu
ZWQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGlt
ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA3MzU3YjQ1ZmE2YWE3ZDBjZDExMzcw
YzQ1ZmE2MzdkYjNlZjgwNTU2Li41YmE5ZjYyMTI2MzU0YTVkOGI4YTRiYzM2MjFlNzk4NDViYTdm
NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNTk1LDcgKzU5NSw3IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
Y29uc3QgUmVzCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKIH0KIAotdm9pZCBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkK
IHsKICAgICBVTlVTRURfUEFSQU0oZW5jb2RlZERhdGFMZW5ndGgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKaW5k
ZXggYTUwMTY3M2ExZWVhYTI3MzNiNTMxM2FkMGQ1NGEzMTA4N2ZjMzY3Yy4uNDUxNmQyZDNlNjcx
YzQ2MjUxZTBiZjJkZGM0OWEwODJkNDExYjkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAtMTEwLDcgKzEx
MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRh
TGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFM
ZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBhNWQ5NTVi
ZGMyNzlhYzBhYmUwNGViMWQ2MjI1ZTc4YTBlMzBhY2FiLi5kMmFiNjJkNTA4YmVkN2EyMDk2NDVi
YmYwYzBmYWFhYWYxNGM4OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoKQogewog
fQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihzaXplX3Qgc2l6ZSkKK1NoYXJlZEJ1ZmZl
cjo6U2hhcmVkQnVmZmVyKHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAs
IG1fYnVmZmVyKHNpemUpCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCkBAIC04NCw3ICs4
NCw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKHNpemVfdCBzaXplKQogewogfQogCi1T
aGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1No
YXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUp
CiAgICAgOiBtX3NpemUoMCkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1f
aXNNZW1vcnlNYXBwZWQoZmFsc2UpCkBAIC05MywxNCArOTMsMTAgQEAgU2hhcmVkQnVmZmVyOjpT
aGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1l
bW9yeU1hcHBlZENhbGxiYWNrRGF0YShudWxscHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6
IFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3
aGVuIGNhbGxpbmcgaW50byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChz
aXplIDwgMCkKLSAgICAgICAgQ1JBU0goKTsKLQogICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0K
IAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
aW50IHNpemUpCitTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDogbV9zaXplKDApCiAjaWYgRU5BQkxFKERJU0tf
SU1BR0VfQ0FDSEUpCiAgICAgLCBtX2lzTWVtb3J5TWFwcGVkKGZhbHNlKQpAQCAtMTA5LDEwICsx
MDUsNiBAQCBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBk
YXRhLCBpbnQgc2l6ZSkKICAgICAsIG1fbm90aWZ5TWVtb3J5TWFwcGVkQ2FsbGJhY2tEYXRhKG51
bGxwdHIpCiAjZW5kaWYKIHsKLSAgICAvLyBGSVhNRTogVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRs
eSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1
ZmZlciBmcm9tIG90aGVyIGNvZGUuCi0gICAgaWYgKHNpemUgPCAwKQotICAgICAgICBDUkFTSCgp
OwotCiAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXpl
KTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1
ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggM2Mz
ZGRhNmQ0MWM1OTIwMTgyNmRkOTI2YzI3ODBkMzUwMTliMDEzYi4uMDE2M2NiNTE5M2I2MWM0YWQ4
NjBlZWE2MzFjNTk3MzgyOTc2MzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgY2xhc3MgUHVyZ2VhYmxlQnVmZmVyOwogY2xhc3MgU2hh
cmVkQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgU2hhcmVkQnVmZmVyKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gY3JlYXRlKHNpemVfdCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVm
ZmVyKHNpemUpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IGNoYXIqIGMsIGludCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVy
KGMsIGkpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGMsIGludCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVk
QnVmZmVyKGMsIGkpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3Jl
YXRlKHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6
ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3Qg
Y2hhciogYywgdW5zaWduZWQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihj
LCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25z
dCB1bnNpZ25lZCBjaGFyKiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hh
cmVkQnVmZmVyKGMsIGkpKTsgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAKQEAg
LTE2MCw5ICsxNjAsOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2hhcmVkQnVmZmVyKCk7
Ci0gICAgZXhwbGljaXQgU2hhcmVkQnVmZmVyKHNpemVfdCk7Ci0gICAgU2hhcmVkQnVmZmVyKGNv
bnN0IGNoYXIqLCBpbnQpOwotICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiwg
aW50KTsKKyAgICBleHBsaWNpdCBTaGFyZWRCdWZmZXIodW5zaWduZWQpOworICAgIFNoYXJlZEJ1
ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQpOworICAgIFNoYXJlZEJ1ZmZlcihjb25zdCB1bnNp
Z25lZCBjaGFyKiwgdW5zaWduZWQpOwogICAgIAogICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlv
biB3aWxsIGZvcmNlIGludGVybmFsIHNlZ21lbnRlZCBidWZmZXJzCiAgICAgLy8gdG8gYmUgbWVy
Z2VkIGludG8gYSBmbGF0IGJ1ZmZlci4gVXNlIGdldFNvbWVEYXRhKCkgd2hlbmV2ZXIgcG9zc2li
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggM2Y5
YTA3NWM2NWYyNjM3M2M4NDk4NmU2ZGExNDhmMjU0MzBlYzMzOC4uYTZiYjJhNzQyYjBkNGM2OGEw
YWQwMDQxMDA4NzhmOTVkNDk1YmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW0K
ICAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVl
c3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQs
IGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5k
bGUqKTsKQEAgLTExODEsNyArMTE4MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdD
bGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlCiAgICAg
aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQordm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWlu
Z0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGludCkKIHsKICAgICBoYW5kbGVEYXRhUmVjZWl2ZWQoZGF0YSwg
bGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmNwcAppbmRleCAzNzY5NjQxMmQxYTI1ZjBlZTNlMjc4OTllMDRj
MzEyZjY4NzdmZjNlLi43NzZmOWZkZmQ5YzQ1NGNlNzU3MTEzMGVjOGYyMWVjZjMwZWI1YjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICBCbG9iUmVzb3VyY2VT
eW5jaHJvbm91c0xvYWRlcihSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBp
bnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAv
KmVuY29kZWREYXRhTGVuZ3RoKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKSBPVkVSUklERTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgQmxvYlJlc291
cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSog
aGFuZGxlLCBjCiAgICAgc3RhdGljX2Nhc3Q8QmxvYlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+
cmVhZFN5bmMobV9kYXRhLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7
CiB9CiAKLXZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KQordm9pZCBCbG9iUmVzb3Vy
Y2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiwgdW5zaWduZWQsIGludCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IGEyZDg3MWQy
M2I3NzNhMDliOWQ5Zjc5ZjMyMDQ3MDZmYmZjYWI3ZDMuLmM4MjdiNGQ4NTg4MThiYjczNDI4OWYz
NmMwYzg5Mjc3NzJkMmE4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTY3LDcgKzY3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAgICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiwgaW50LCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVu
c2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRp
bWUqLykgeyB9CkBAIC0xMjAsNyArMTIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZWxp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgIHZpcnR1YWwgTlNDYWNoZWRVUkxSZXNwb25zZSAqd2ls
bENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNw
b25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9w
QnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIHVuc2lnbmVkKSB7IH0KICNlbmRpZgogCiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNs
aWVudC5jcHAKaW5kZXggYTYwZGZiOTFlNTdjYmVkMGJhZjc3MGE4ZmQ4ZDdkM2NmMTI4OTE3ZS4u
OTk0NjgyZmIxZTFhMjU4N2JkNmZhYzg0YzJiYWJkNGM2ZjhmMjFmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNs
aWVudC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2UKICAgICBt
X3Jlc3BvbnNlID0gcmVzcG9uc2U7CiB9CiAKLXZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKK3ZvaWQgU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKQogewogICAgIG1fZGF0
YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaAppbmRleCA3ZDRiZjZl
YmM1MDY0N2ExZDM5ZGExZDJiNTAzZWM5NjMzYThkZjY4Li5hYmNkNmY1Nzc1MjY0YmVmODVhZjE4
ZDI1YjJhMDhmNWNlODBiNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCkBAIC02MCw3ICs2MCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJl
c291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiwgaW50LCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWdu
ZWQsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSov
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9B
VVRIX0NBTExCQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uY3BwCmluZGV4IDc3MmVhODA3MGJmODRhYjkwMTRj
NDMyMTZmMDRkMjc2NmJjOThlODUuLjA2MTBkZWI3YmNhMWM2ZDM0ZTA2YTY2NGM1N2JkYzEzN2Nj
MTNjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9CbG9iU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvQmxvYlN0cmVhbS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgQmxvYlN0cmVhbTo6
fkJsb2JTdHJlYW0oKQogewogfQogCi12b2lkIEJsb2JTdHJlYW06OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbiwgaW50KQordm9pZCBCbG9i
U3RyZWFtOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbiwgaW50KQogewogICAgIG5vdGlmeURhdGFSZWNlaXZlZChCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6Y3JlYXRlTmV0d29ya0J1ZmZlckJ5V3JhcHBpbmdEYXRhKGRhdGEsIGxlbikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L0Jsb2JTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9CbG9iU3RyZWFtLmgKaW5kZXggMmY4ZGVkNWJiOGYyOTc5NTRiMmJhN2Y1ZDA1YTE0NjBl
NzY0YzFkNS4uOWU4NjRiODZiOGZmMWI2ZDBhMDc0YzFjMWE5ODg3MmU3YWEwYTdkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxv
YlN0cmVhbS5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcgbWltZVR5cGUoKSBjb25zdCBPVkVSUklERTsKIAog
ICAgIC8vIEZyb20gY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQuCi0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnku
Y3BwCmluZGV4IGMxNjQwMmVjZDI1MzBkZTVlOGQzNGE2MTc4Zjg3MGRmNTE0NTljM2MuLjEwNmQ1
MzNmNzhjNWYxMjJiOGU5ZGYzZTk5MzEyMzY4YjI4MGI4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVy
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9S
ZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAg
ICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIGludCwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCkBAIC03
MCw3ICs3MCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjCiAgICAgbV9yZXNwb25zZSA9IHJl
c3BvbnNlOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQpCit2
b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCkKIHsKICAgICBtX2Rh
dGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDQw
MTNjZjM4MDlhZTVlMzAyM2U4ZWI2NmQ5NmM2ZTkwMjg1OTE3MjQuLmJiOTI3ZjMyZmEzYThkMjM5
YjUyYjAwZTBlZDk3NmNlZmZhMmU3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC00OCw3
ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjCiAgICAg
bV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBpbnQpCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGlu
dCkKIHsKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCmluZGV4IDRjODgyMTY5OWFiNDFjZmExOTgzNjY0OTYxODMzODFhZTg3ZDYyNzMuLmY3
ZjJhODk4YWRkYWU3MTMyNzljYmNhNzFmYjFmMzgwZDgwMGU4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgcHVibGljOgogICAgICAgICBtX3Jlc3BvbnNlID0g
cmVzcG9uc2U7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQorICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCwgaW50KQogICAgIHsKICAgICAgICAgbV9kYXRhLmFwcGVuZChkYXRh
LCBsZW5ndGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCAwZjY2YjcwN2EwZGY5NDc1
Yzc1MzQxMjMyMjE5ZmVhNGZhZjFmZTFhLi43N2YwNDYyYTc3NzcwZjc4Y2Q1NzUyMjQ3NTc0ZTcz
M2VmODE4MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoK
ICAgICBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmV0
SGFuZGxlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVk
RGF0YUxlbmd0aCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8q
ZmluaXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgV2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjCiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQpCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIGludCkKIHsKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCBj
NzQ4YzY1ODFjZjM3ZjEyNmQxMDdlYmNlNjI0OGUzMTAyYTZhMzFkLi5iNjMzNjdiOWZjMzgxNTZj
MjY1OGQ4OTI0NmVjZjBiM2Q2YjFkMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgY2xhc3MgRG93bmxvYWRDbGllbnQg
OiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgewogICAgICAgICBEb3dubG9hZENsaWVudChX
ZWJLaXREb3dubG9hZCopOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBp
bnQsIGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KTsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKQEAgLTkz
OCw3ICs5MzgsNyBAQCB2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KIH0KIAotdm9pZCBE
b3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIERvd25sb2Fk
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIHdlYmtpdF9k
b3dubG9hZF9yZWNlaXZlZF9kYXRhKG1fZG93bmxvYWQsIGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViS2l0RExMLmNwcAppbmRleCBlZjg1NjA4YzA0YzcxMWY5MjY5ZWU4NGVkNGQ4NDhlMmVl
OGZjMGE2Li41ZDQ0MGVlYzE4OWFjZThhYTRjYTY1YTBmZTA2NWQ0NjRiZDY1M2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYktpdERMTC5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25zdCBjaGFyKiBuYW1lKQog
ICAgIHZvaWQqIHJlc291cmNlID0gTG9ja1Jlc291cmNlKHJlcyk7CiAgICAgaWYgKCFyZXNvdXJj
ZSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaW50IHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5z
dGFuY2UsIHJlc0luZm8pOworICAgIHVuc2lnbmVkIHNpemUgPSBTaXplb2ZSZXNvdXJjZShnSW5z
dGFuY2UsIHJlc0luZm8pOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNlKSwgc2l6ZSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAppbmRleCAxNjMwYTJiNDdhMTNmY2FmZjgxNzlhN2M0MGI0YjA5NWM2MzI2Mzhh
Li45Njg1NWU5ZGE2YWVlNTMyODJkYmYxNDk5ZTcwYzRhZGE2ZDJjZmRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29ucwogICAgIH0KIH0K
IAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3Ro
KQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFM
ZW5ndGgpCiB7CiAgICAgLy8gVGhlIE5ldHdvcmtQcm9jZXNzIHNob3VsZCBuZXZlciBnZXQgYSBk
aWRSZWNlaXZlRGF0YSBjYWxsYmFjay4KICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGJlIHVzaW5n
IGRpZFJlY2VpdmVCdWZmZXIuCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5UmVm
KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKaW5kZXggMzI3YWUzNGNjN2I0ZDJhNTRiYTFlMWE1NzNiNGJhNTRi
MGJiZjE4Yy4uMjM3MGFkMWI5MGFkZDg3ODFiMGNlN2M5ODc4NWQxMWUwNDI0YjY3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25l
ZCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUJ1ZmZlcihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGRv
dWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHN0YXRpYyBzaXplX3QgZmlsZUJhY2tlZFJlc291cmNlTWluaW11bVNpemUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IE5TQ2FjaGVkVVJMUmVzcG9uc2UgKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxT
dG9wQnVmZmVyaW5nRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBp
bnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpIE9WRVJSSURFOwog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAu
Y3BwCmluZGV4IGQwZWViYjVkZTUyYjMyOTAzOGUwMWY1ZjdlODY4YjZlNTg0ZmUxNTIuLmQ1NjM2
YzVhNTk5M2IyNDUyOWJiYWRlN2UxNDE2NTA1Nzc0Mzc5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0xMTAs
NyArMTEwLDcgQEAgcHVibGljOgogICAgICAgICBtX2Rvd25sb2FkLT5kaWRDcmVhdGVEZXN0aW5h
dGlvbihkZXN0aW5hdGlvblVSSSk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCAvKmVuY29k
ZWREYXRhTGVuZ3RoKi8pCisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5n
dGgqLykKICAgICB7CiAgICAgICAgIGlmIChtX2hhbmRsZVJlc3BvbnNlTGF0ZXJJRCkgewogICAg
ICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1faGFuZGxlUmVzcG9uc2VMYXRlcklEKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217779</attachid>
            <date>2013-11-25 02:14:15 -0800</date>
            <delta_ts>2014-01-06 01:45:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124579-20131125021414.patch</filename>
            <type>text/plain</type>
            <size>45066</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUyZjVmNzI2MmRkZTZh
NzRjMmMzMGJkN2FhYzUzYTM2ZjRlYjlmMS4uZDJmMTZjOTlkNWZlMDg5OTNlZjE1N2E3NGM0NTk5
NDA0NjYwZGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTExLTI1ICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAq
IGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Q
aW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlQnVmZmVyOjpSZXNvdXJjZUJ1ZmZlcik6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICog
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmg6CisgICAgICAgICogbG9hZGVy
L21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVT
dHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVD
bGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Q2xpZW50Ojp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlN0
cmVhbTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9CbG9iU3RyZWFtLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW06CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsU3Rv
cEJ1ZmZlcmluZ0RhdGE6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjp3
aWxsU3RvcEJ1ZmZlcmluZ0RhdGE6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKwogMjAxMy0xMS0xOCAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5
b3V0XSBDYWNoZSBzZXZlcmFsIHZlY3RvcnMgdG8gYXZvaWQgbWFsbG9jL2ZyZWUgY2h1cm4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCAyMzc3MTFkNTBlMGIwMDExMDU0ZWI4N2I1N2QwOTUxMDlhNDBmYzc3
Li44YjkyZDZhZTk1MzFhNzMxMDkzMDYxMTJhMzZmMjE5YTZiZmUyZTc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTEtMjUgIEzDoXN6bMOzIExhbmfDsyAgPGxhbmdv
QGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBh
bmQgY2hlY2sgZm9yIGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVy
IGZyb20gb3RoZXIgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNDU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKERvd25sb2Fk
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTMtMTEtMTggIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBO
RVdTIGFuZCBWZXJzaW9ucy5tNCBmb3IgMi4zLjIgcmVsZWFzZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRl
eCBhM2ViN2U1ZTg0MDY3MWFmYzJhOTZmNzUxOThhMDM4ZmQxYzY3Yzk2Li5lY2JmY2UwZjljZjcz
OTJhMWEwMTI4NzlmMjcxOTdiZGE2MGFlMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTMtMTEtMjUgIEzDoXN6bMOzIExhbmfDsyAgPGxhbmdvQGluZi51LXN6ZWdlZC5o
dT4KKworICAgICAgICBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hlY2sgZm9yIGlu
dmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20gb3RoZXIgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0RExMLmNwcDoKKyAgICAgICAgKGxvYWRSZXNvdXJjZUludG9CdWZmZXIpOgorCiAyMDEzLTEx
LTIxICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9XT1JLRVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTZmNGVmMzM1
YmI0ZjU0N2RiNmZkN2NjYTlhYjA4MDRhODM4MGZmZi4uMjU2NWMwMWVhYjdhY2FiYTdlYmRlMTQ3
YzFkNzRlZWE1N2EzMDJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTExLTI1
ICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNl
IHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4g
Y2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkaWRS
ZWNlaXZlRGF0YSk6CisKIDIwMTMtMTEtMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBXZWJQYWdlR3JvdXAncyBzaG91bGQga2VlcCB0cmFjayBvZiB3aGF0IHByb2Nl
c3NlcyB0aGV5IGFyZSBiZWluZyB1c2VkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDcwZDcz
M2QzNWQ1OTI3YWRjNGVkMjc0ZjNmYWY4NzAzZjU0OTgyZjQuLjdlOWFhNDc2NmJmYmM1MWUwNGMw
ZWM3ZDQ5YTJlNWIxYjlkNDY3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yMjgsOCArMjI4
LDggQEAgX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIxMmNyZWF0ZUNGRGF0YUV2CiBfX1pON1dl
YkNvcmUxMlNoYXJlZEJ1ZmZlcjEyY3JlYXRlTlNEYXRhRXYKIF9fWk43V2ViQ29yZTEyU2hhcmVk
QnVmZmVyMjRjcmVhdGVXaXRoQ29udGVudHNPZkZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxMlNoYXJlZEJ1ZmZlcjZhcHBlbmRFUEtjagotX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZm
ZXJDMUVQS2NpCi1fX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLaGkKK19fWk43V2ViQ29y
ZTEyU2hhcmVkQnVmZmVyQzFFUEtjagorX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQS2hq
CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRXYKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVm
ZmVyRDFFdgogX19aTjdXZWJDb3JlMTJUZXh0RW5jb2RpbmdDMUVSS04zV1RGNlN0cmluZ0UKQEAg
LTM0NSw3ICszNDUsNyBAQCBfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MjVsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5RVBOU18xN05ldHdvcmtpbmdDb250ZXh0RQogX19aTjdXZWJDb3JlMTRQ
bHVnaW5Eb2N1bWVudDEycGx1Z2luV2lkZ2V0RXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZm
ZXIxMmNyZWF0ZU5TRGF0YUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyNmFwcGVuZEVQ
S2NqCi1fX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyQzFFUEtjaQorX19aTjdXZWJDb3JlMTRS
ZXNvdXJjZUJ1ZmZlckMxRVBLY2oKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXJDMUV2CiBf
X1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyQzJFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1
ZmZlckQxRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwCmluZGV4IDdhN2NmMzZlOGUzMTNmOGI3NDJiYzg0ZjJlZmQ1YWFjNTFh
ZjU4YjYuLmI4YzQ1NTZmYTk2NDAzZDI4YTg1MGQ4NTFhNWI3NzNiZTJkOGU3NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNw
cApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcAogICAgICAgICBjYW5j
ZWwoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNl
KSk7CiB9CiAKLXZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0
aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBh
eWxvYWRUeXBlKQogewogICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoZGF0YSwgbGVuZ3RoLCAw
LCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKaW5kZXggYzEzZTg4
ODEwYTRjNzE3Mjk3MDczNWZlYWJlYjQxNzhmOTE2ZDdkYi4uNjA4OTI1YWVlYmQ3ZGVkYmQzZGI4
YzkzOGJiOGExMDQ4ZGJiMDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
VHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5
cGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9h
ZFR5cGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJs
ZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUGluZ0xvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRl
eCBiOGFjMTQxMTc4MTk1OGY2ZmNiM2ViYmIxNWVkYjBmNDJiZTZjNDZmLi4zNThkNjM1Mzg5ODk5
YzEyYjg0Zjk1M2U5YTM4OGE3ZGU5NTc1YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUGluZ0xvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVy
LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBQaW5nTG9hZGVyKEZyYW1lKiwgUmVz
b3VyY2VSZXF1ZXN0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFIHsgZGVsZXRl
IHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiwgaW50LCBpbnQpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCkgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSBPVkVSUklERSB7IGRl
bGV0ZSB0aGlzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopICBPVkVS
UklERSB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAppbmRleCBkYWUxYzJkZTU1YWNjNmQ4MTcwMWUz
ZmFjNmJhMDcyNjg5NmY0NWUzLi4xNzlkZDIyZmEzMjg1YzA0ZmZkZmZmN2MyZjMxMDY2YjRiMjQy
ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKQEAgLTM1LDcg
KzM1LDcgQEAgUmVzb3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKCkKIHsKIH0KIAotUmVzb3Vy
Y2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorUmVz
b3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNp
emUpCiAgICAgOiBtX3NoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXpl
KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmgKaW5kZXggNWRjMmQ5
NTcxYjM1M2JmNDkwNWM3YzJmMTQ5NDEzNjFhMjczZTZlMC4uNWUxYWY0YzlhNWY5ZWZiNzRlYjFj
Zjg1OTRkODU0MzgxNGJjODc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVy
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxSZXNvdXJjZUJ1ZmZlcj4gewogcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1
ZmZlcik7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VC
dWZmZXIoZGF0YSwgc2l6ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZm
ZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgUmVzb3VyY2VCdWZmZXIoZGF0YSwgc2l6ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGFkb3B0U2hhcmVkQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzaGFyZWQpIHsgcmV0dXJuIHNoYXJlZCA/IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1
ZmZlcihzaGFyZWQpKSA6IDA7IH0KIAogICAgIHZpcnR1YWwgflJlc291cmNlQnVmZmVyKCk7CkBA
IC04OSw3ICs4OSw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZUJ1ZmZlcigpOwogCiBwcml2
YXRlOgotICAgIFJlc291cmNlQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQpOworICAgIFJlc291cmNl
QnVmZmVyKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgUmVzb3VyY2VCdWZmZXIoUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+KTsKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2hhcmVk
QnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZjYy
OGQ0OTc2NDdhYjIzZGMzNTBiNjBiODgyZTAzMTg5MmQ2MWQ2Yy4uYzEzYTMwOGUyNzYwNTUxZTQw
Nzg4YjQzY2NhMDg4Mzc2OTZmYmI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0RGF0
YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wKIH0K
ICAgICAKIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIq
IGRhdGEsIGludCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUg
ZGF0YVBheWxvYWRUeXBlKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YU9yQnVmZmVyKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgU2hhcmVkQnVmZmVyKiBidWZmZXIsIERh
dGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCiB7CiAgICAgaWYgKG1fb3B0aW9ucy5kYXRh
QnVmZmVyaW5nUG9saWN5ID09IERvTm90QnVmZmVyRGF0YSkKICAgICAgICAgcmV0dXJuOwpAQCAt
Mjc3LDcgKzI3Nyw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmll
cigpLmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCBtX3Jlc3BvbnNlKTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRU
eXBlKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXls
b2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCiB7CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhc3NlcnRp
b25zIGFyZSBub3QgcXVpdGUgdmFsaWQgaGVyZSwgc2luY2UgYSBzdWJjbGFzcwogICAgIC8vIG1p
Z2h0IG92ZXJyaWRlIGRpZFJlY2VpdmVEYXRhIGluIGEgd2F5IHRoYXQgaW52YWxpZGF0ZXMgdGhl
bS4gVGhpcwpAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgbG9uZyBsb25nCiAgICAg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcigwLCAwLCBidWZmZXIsIGVuY29kZWREYXRhTGVuZ3RoLCBk
YXRhUGF5bG9hZFR5cGUpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBwcnBCdWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERh
dGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCiB7CiAgICAgLy8gVGhpcyBtZXRob2Qgc2hv
dWxkIG9ubHkgZ2V0IGRhdGErbGVuZ3RoICpPUiogYSBTaGFyZWRCdWZmZXIuCiAgICAgQVNTRVJU
KCFwcnBCdWZmZXIgfHwgKCFkYXRhICYmICFsZW5ndGgpKTsKQEAgLTMxMiw3ICszMTIsNyBAQCB2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgsIFBhc3NSZQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigp
LmRpZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciA/IGJ1ZmZlci0+ZGF0YSgpIDogZGF0YSwgYnVm
ZmVyID8gYnVmZmVyLT5zaXplKCkgOiBsZW5ndGgsIHN0YXRpY19jYXN0PGludD4oZW5jb2RlZERh
dGFMZW5ndGgpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit2b2lkIFJlc291cmNlTG9hZGVyOjp3
aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQog
ewogICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRh
dGEpCiAgICAgICAgIHJldHVybjsKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJgogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVjZWl2ZVJlc291cmNlRGF0YShtX2ZyYW1lLmdldCgpLCBpZGVudGlmaWVyKCksIGVuY29k
ZWREYXRhTGVuZ3RoKTsKICAgICBkaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIGVuY29kZWRE
YXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmgKaW5kZXggYTUyM2E3YzUwZmFlNjZmNWE2ZWFkYmUwYjU1NWU3ZWM2N2ZhZGFhMy4u
ODk3ZmNmMTFjMGFhMjM3NzczMmQyYjc4ODA2MjBhMTJlYzkyMWQxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTgxLDkgKzgxLDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmRE
YXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzVG9CZVNlbnQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
VHlwZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCB1bnNp
Z25lZCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwotICAgIHZvaWQg
d2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqLCBpbnQpOworICAgIHZvaWQgd2lsbFN0
b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJS
QVlfQ0FMTEJBQ0spCkBAIC0xMDMsMTQgKzEwMywxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRTZW5kRGF0YShSZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9u
ZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGVuY29k
ZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxl
bmd0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3Vy
Y2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0
aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFOwog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgT1ZFUlJJREUg
eyB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoZGF0YSwgbGVuZ3RoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpIE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGRhdGEs
IGxlbmd0aCk7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZShSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFIHsgcmV0dXJuIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGNoYWxsZW5nZSkgT1ZFUlJJREUgeyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoY2hhbGxlbmdlKTsgfSAKQEAgLTE2MCw3ICsxNjAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBi
b29sIHdhc0NhbmNlbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuY2VsbGF0aW9uU3RhdHVzID49
IENhbmNlbGxlZDsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNo
YXIqLCBpbnQsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRh
TGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZl
cihjb25zdCBjaGFyKiwgdW5zaWduZWQsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBs
b25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAgICAgY29uc3QgUmVz
b3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgeyByZXR1cm4gbV9vcHRpb25zOyB9CiAKQEAg
LTE3Myw3ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNv
bnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25z
dCBSZXNvdXJjZUVycm9yJikgPSAwOwogCi0gICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3Qg
Y2hhciosIGludCwgU2hhcmVkQnVmZmVyKiwgRGF0YVBheWxvYWRUeXBlKTsKKyAgICB2b2lkIGFk
ZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQsIFNoYXJlZEJ1ZmZlciosIERhdGFQ
YXlsb2FkVHlwZSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFJlc291
cmNlUmVxdWVzdCBtX29yaWdpbmFsUmVxdWVzdDsgLy8gQmVmb3JlIHJlZGlyZWN0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDE4NWI4OWU5MGU1
OThmMTEzN2MzODI2ZWM2Yzc1ODk5ZjY2YjYzZGUuLjllYTdjZDRkOGI5NjFlZGNmMGQ5ZmRmNDk4
NWM3ODRhMjVkMzkzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICBjaGVj
a0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKIH0KIAotdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVu
Y29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQordm9pZCBT
dWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBk
YXRhUGF5bG9hZFR5cGUpCiB7CiAgICAgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihkYXRhLCBsZW5n
dGgsIDAsIGVuY29kZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCAwMGFiOTgwMWNkNmUwMzFkYmI4
Zjg0NmUwYzU0OGM2YTUwZWM1YjQ0Li40YzVlZjE2N2Q3YzE1ZjhkN2ExMzhhZjljYjc4ZDg1ZGU4
NWNiMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAt
NjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcg
bG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
VHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5
cGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9h
ZFR5cGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJs
ZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDczNTdiNDVmYTZh
YTdkMGNkMTEzNzBjNDVmYTYzN2RiM2VmODA1NTYuLjViYTlmNjIxMjYzNTRhNWQ4YjhhNGJjMzYy
MWU3OTg0NWJhN2Y1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC01OTUsNyArNTk1LDcgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZTo6Y3JlYXRlKHVybCwgcmVzcG9uc2UsIHR5cGUpOwogfQogCi12b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQor
dm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWRE
YXRhTGVuZ3RoKQogewogICAgIFVOVVNFRF9QQVJBTShlbmNvZGVkRGF0YUxlbmd0aCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaAppbmRleCBhNTAxNjczYTFlZWFhMjczM2I1MzEzYWQwZDU0YTMxMDg3ZmMzNjdjLi40
NTE2ZDJkM2U2NzFjNDYyNTFlMGJmMmRkYzQ5YTA4MmQ0MTFiOTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCkBA
IC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQg
ZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIGludCBl
bmNvZGVkRGF0YUxlbmd0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
JikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVz
b3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9h
ZGVyTWFjLm1tCmluZGV4IDI0ZDg5NTBhYWU5ZDg1MGY3OWRkMWYwNTY1NTljZmI5NjY0ODI5YjYu
LjFlZjg4ZDQzOTEzMTE4ODQ2YTFkYzA4NzQxMjVlMzc2ZGQ1OWY2YTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtNzksNyArNzksNyBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0
YUFycmF5KQogICAgIENGSW5kZXggYXJyYXlDb3VudCA9IENGQXJyYXlHZXRDb3VudChkYXRhQXJy
YXkpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGFycmF5Q291bnQ7ICsraSkgewogICAg
ICAgICBDRkRhdGFSZWYgZGF0YSA9IHN0YXRpY19jYXN0PENGRGF0YVJlZj4oQ0ZBcnJheUdldFZh
bHVlQXRJbmRleChkYXRhQXJyYXksIGkpKTsKLSAgICAgICAgaW50IGRhdGFMZW4gPSBzdGF0aWNf
Y2FzdDxpbnQ+KENGRGF0YUdldExlbmd0aChkYXRhKSk7CisgICAgICAgIHVuc2lnbmVkIGRhdGFM
ZW4gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEpKTsKIAogICAg
ICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSkgewog
ICAgICAgICAgICAgaWYgKCFtX3Jlc291cmNlRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCmluZGV4IDMwZTI0ZmI3MjhhZjUxNGYyMDBkZDk3NzMxZmMxZDc0NDQ5
MTc3MTcuLjA2YzI4NzdmNDE0YTM5YmFkMmZhNDA2OTc5MjI4NWE1MGRiZDliOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApAQCAtNzUsNyArNzUsNyBAQCBTaGFy
ZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcigpCiB7CiB9CiAKLVNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKHNpemVfdCBzaXplKQorU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIodW5zaWduZWQgc2l6
ZSkKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9idWZmZXIoc2l6ZSkKICNpZiBFTkFCTEUo
RElTS19JTUFHRV9DQUNIRSkKQEAgLTg3LDcgKzg3LDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRC
dWZmZXIoc2l6ZV90IHNpemUpCiB7CiB9CiAKLVNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKICAgICA6IG1fc2l6ZSgwKQogI2lmIEVOQUJM
RShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01lbW9yeU1hcHBlZChmYWxzZSkKQEAgLTk2
LDE0ICs5NiwxMCBAQCBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRh
LCBpbnQgc2l6ZSkKICAgICAsIG1fbm90aWZ5TWVtb3J5TWFwcGVkQ2FsbGJhY2tEYXRhKG51bGxw
dHIpCiAjZW5kaWYKIHsKLSAgICAvLyBGSVhNRTogVXNlIHVuc2lnbmVkIGNvbnNpc3RlbnRseSwg
YW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZl
ciBmcm9tIG90aGVyIGNvZGUuCi0gICAgaWYgKHNpemUgPCAwKQotICAgICAgICBDUkFTSCgpOwot
CiAgICAgYXBwZW5kKGRhdGEsIHNpemUpOwogfQogCi1TaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZl
cihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKK1NoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiAgICAg
OiBtX3NpemUoMCkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1v
cnlNYXBwZWQoZmFsc2UpCkBAIC0xMTIsMTAgKzEwOCw2IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVk
QnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGludCBzaXplKQogICAgICwgbV9ub3Rp
ZnlNZW1vcnlNYXBwZWRDYWxsYmFja0RhdGEobnVsbHB0cikKICNlbmRpZgogewotICAgIC8vIEZJ
WE1FOiBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hlY2sgZm9yIGludmFsaWQgY2Fz
dHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20gb3RoZXIgY29kZS4KLSAgICBp
ZiAoc2l6ZSA8IDApCi0gICAgICAgIENSQVNIKCk7Ci0KICAgICBhcHBlbmQocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCAzYzNkZGE2ZDQxYzU5MjAxODI2ZGQ5MjZjMjc4MGQz
NTAxOWIwMTNiLi4wMTYzY2I1MTkzYjYxYzRhZDg2MGVlYTYzMWM1OTczODI5NzYzOWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNDgsOSArNDgsOSBAQCBjbGFz
cyBQdXJnZWFibGVCdWZmZXI7CiBjbGFzcyBTaGFyZWRCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWRCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIpOyB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoc2l6ZV90IHNpemUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgaW50IGkpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgdW5zaWduZWQgY2hhciogYywgaW50IGkp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUodW5zaWduZWQgc2l6ZSkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihzaXplKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBjLCB1bnNpZ25lZCBpKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGMsIHVuc2lnbmVk
IGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKIApAQCAtMTYwLDkgKzE2MCw5IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBTaGFyZWRCdWZmZXIoKTsKLSAgICBleHBsaWNpdCBTaGFyZWRCdWZmZXIo
c2l6ZV90KTsKLSAgICBTaGFyZWRCdWZmZXIoY29uc3QgY2hhciosIGludCk7Ci0gICAgU2hhcmVk
QnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBpbnQpOworICAgIGV4cGxpY2l0IFNoYXJlZEJ1
ZmZlcih1bnNpZ25lZCk7CisgICAgU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCk7
CisgICAgU2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAgICAg
CiAgICAgLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZm9yY2UgaW50ZXJuYWwgc2VnbWVu
dGVkIGJ1ZmZlcnMKICAgICAvLyB0byBiZSBtZXJnZWQgaW50byBhIGZsYXQgYnVmZmVyLiBVc2Ug
Z2V0U29tZURhdGEoKSB3aGVuZXZlciBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBmZjE4ODlhNWU3Mzc1YmYxMWNmMDEyMzdiZTMzZWU5
ZTIwNzM1OTgyLi5iYzM4ZWQ5MGQ1OGYzOWZlYzMwZTNmZTFiYjRhYWY1Y2VjMjdkNzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtOTgsNyArOTgs
NyBAQCBjbGFzcyBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBSZXNvdXJj
ZUhhbmRsZUNsaWVudCwgcHVibGljIFN0cmVhbQogICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9y
Q3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXpl
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSos
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBp
bnQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwpAQCAtMTA3NSw3ICsxMDc1LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmUKICAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKHJlc3Bv
bnNlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQp
Cit2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50KQogewog
ICAgIGhhbmRsZURhdGFSZWNlaXZlZChkYXRhLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4
IDM3Njk2NDEyZDFhMjVmMGVlM2UyNzg5OWUwNGMzMTJmNjg3N2ZmM2UuLjc3NmY5ZmRmZDljNDU0
Y2U3NTcxMTMwZWM4ZjIxZWNmMzBlYjViMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTg1LDcgKzg1LDcg
QEAgcHVibGljOgogICAgIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyKFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogCkBAIC0x
MTcsNyArMTE3LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGMKICAgICBzdGF0aWNfY2FzdDxC
bG9iUmVzb3VyY2VIYW5kbGUqPihoYW5kbGUpLT5yZWFkU3luYyhtX2RhdGEuZGF0YSgpLCBzdGF0
aWNfY2FzdDxpbnQ+KG1fZGF0YS5zaXplKCkpKTsKIH0KIAotdm9pZCBCbG9iUmVzb3VyY2VTeW5j
aHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiwgaW50LCBpbnQpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmgKaW5kZXggYTJkODcxZDIzYjc3M2EwOWI5ZDlmNzlmMzIwNDcwNmZiZmNh
YjdkMy4uYzgyN2I0ZDg1ODgxOGJiNzM0Mjg5ZjM2YzBjODkyNzc3MmQyYTg5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGll
bnQuaApAQCAtNjcsNyArNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSB7IH0KICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmVuY29kZWRE
YXRhTGVuZ3RoKi8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVuY29kZWREYXRhTGVu
Z3RoKi8pIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZXNvdXJj
ZUhhbmRsZSosIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3Ro
KTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSB7IH0KQEAgLTEyMCw3ICsxMjAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNlbGlmIFBMQVRGT1JNKE1BQykKICAgICAgICAgdmly
dHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRs
ZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIGludCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1
ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpIHsgfQog
I2VuZGlmCiAKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAppbmRleCBhNjBkZmI5MWU1N2Ni
ZWQwYmFmNzcwYThmZDhkN2QzY2YxMjg5MTdlLi45OTQ2ODJmYjFlMWEyNTg3YmQ2ZmFjODRjMmJh
YmQ0YzZmOGYyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcApAQCAtNjcsNyArNjcsNyBAQCB2
b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBSZXNvdXJjZQogICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsKIH0KIAot
dm9pZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0
aCovKQordm9pZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29k
ZWREYXRhTGVuZ3RoKi8pCiB7CiAgICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91
c0xvYWRlckNsaWVudC5oCmluZGV4IDdkNGJmNmViYzUwNjQ3YTFkMzlkYTFkMmI1MDNlYzk2MzNh
OGRmNjguLmFiY2Q2ZjU3NzUyNjRiZWY4NWFmMThkMjViMmEwOGY1Y2U4MGI0OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmVuY29kZWREYXRhTGVu
Z3RoKi8pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgq
LykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
OwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5j
cHAKaW5kZXggNzcyZWE4MDcwYmY4NGFiOTAxNGM0MzIxNmYwNGQyNzY2YmM5OGU4NS4uMDYxMGRl
YjdiY2ExYzZkMzRlMDZhNjY0YzU3YmRjMTM3Y2MxM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBCbG9iU3RyZWFtOjp+QmxvYlN0cmVhbSgpCiB7CiB9CiAKLXZvaWQg
QmxvYlN0cmVhbTo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuLCBpbnQpCit2b2lkIEJsb2JTdHJlYW06OmRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBpbnQpCiB7CiAgICAg
bm90aWZ5RGF0YVJlY2VpdmVkKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpjcmVhdGVOZXR3b3JrQnVm
ZmVyQnlXcmFwcGluZ0RhdGEoZGF0YSwgbGVuKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0uaAppbmRleCAyZjhk
ZWQ1YmI4ZjI5Nzk1NGIyYmE3ZjVkMDVhMTQ2MGU3NjRjMWQ1Li45ZTg2NGI4NmI4ZmYxYjZkMGEw
NzRjMWMxYTk4ODcyZTdhYTBhN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvQmxvYlN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmgKQEAgLTM4LDcgKzM4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmluZyBt
aW1lVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgLy8gRnJvbSBjbGFzcyBSZXNvdXJjZUhh
bmRsZUNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRs
ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXggYzE2NDAyZWNkMjUzMGRlNWU4
ZDM0YTYxNzhmODcwZGY1MTQ1OWMzYy4uMTA2ZDUzM2Y3OGM1ZjEyMmI4ZTlkZjNlOTkzMTIzNjhi
MjgwYjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcigp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25l
ZCwgaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZUVycm9yJik7CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFJlc291cmMKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CiB9CiAKLXZvaWQgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGludCkKK3ZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCwgaW50KQogewogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggNDAxM2NmMzgwOWFlNWUzMDIzZThlYjY2ZDk2YzZl
OTAyODU5MTcyNC4uYmI5MjdmMzJmYTNhOGQyMzliNTJiMDBlMGVkOTc2Y2VmZmEyZTdiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50IGVuY29kZWREYXRh
TGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKQEAgLTcxLDcgKzcxLDcgQEAg
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmMKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CiB9CiAK
LXZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCkKK3ZvaWQgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50KQogewogICAgIG1fZGF0YS5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1t
CmluZGV4IDI1OTRhYTljMzJjMzc5ZWFjMzY5NjkzMzU4NTkwYjU5YjdkNDA5ZTcuLjFiYjVkNzU1
YTcwOGE0MjIxNDBmNmU3OWU1MWYwNjc0NDE1YjdjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQpAQCAtMjA2LDcgKzIwNiw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgYSByZXNvdXJjZSB3aXRoIG1vcmUg
dGhhbiAyQiBieXRlcywgdGhpcyBjb2RlIHdvbid0IGRvIHRoZSByaWdodCB0aGluZy4KICAgICAv
LyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVkcywg
dGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCiAgICAgLy8gQ291bGQgYmUgYW4gaXNzdWUg
d2l0aCBhIGdpYW50IGxvY2FsIGZpbGUuCi0gICAgbV9oYW5kbGUtPmNsaWVudCgpLT53aWxsU3Rv
cEJ1ZmZlcmluZ0RhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0YSBieXRlc10sIHN0YXRp
Y19jYXN0PGludD4oW2RhdGEgbGVuZ3RoXSkpOworICAgIG1faGFuZGxlLT5jbGllbnQoKS0+d2ls
bFN0b3BCdWZmZXJpbmdEYXRhKG1faGFuZGxlLCAoY29uc3QgY2hhciopW2RhdGEgYnl0ZXNdLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oW2RhdGEgbGVuZ3RoXSkpOwogfQogCiAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkU2VuZEJvZHlEYXRhOihOU0lu
dGVnZXIpYnl0ZXNXcml0dGVuIHRvdGFsQnl0ZXNXcml0dGVuOihOU0ludGVnZXIpdG90YWxCeXRl
c1dyaXR0ZW4gdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZTooTlNJbnRlZ2VyKXRvdGFsQnl0ZXNF
eHBlY3RlZFRvV3JpdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQppbmRleCAzOWQ2NWE5NzM1MjgyZmU5N2YxYmE5
YjAwMjgwNGRlMGQyMTJjODU2Li4zMDc0ZGRhOTY2MDdjODM4ZjkyNDI1NzkwYjVhMmVhOTNkZTZm
ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLm1tCkBAIC0zMDMsNyArMzAzLDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgYSByZXNvdXJjZSB3aXRoIG1v
cmUgdGhhbiAyQiBieXRlcywgdGhpcyBjb2RlIHdvbid0IGRvIHRoZSByaWdodCB0aGluZy4KICAg
ICAgICAgLy8gSG93ZXZlciwgd2l0aCB0b2RheSdzIGNvbXB1dGVycyBhbmQgbmV0d29ya2luZyBz
cGVlZHMsIHRoaXMgd29uJ3QgaGFwcGVuIGluIHByYWN0aWNlLgogICAgICAgICAvLyBDb3VsZCBi
ZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KLSAgICAgICAgbV9oYW5kbGUtPmNs
aWVudCgpLT53aWxsU3RvcEJ1ZmZlcmluZ0RhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0
YSBieXRlc10sIHN0YXRpY19jYXN0PGludD4oW2RhdGEgbGVuZ3RoXSkpOworICAgICAgICBtX2hh
bmRsZS0+Y2xpZW50KCktPndpbGxTdG9wQnVmZmVyaW5nRGF0YShtX2hhbmRsZSwgKGNvbnN0IGNo
YXIqKVtkYXRhIGJ5dGVzXSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFtkYXRhIGxlbmd0aF0pKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA0Yzg4MjE2OTlhYjQxY2Zh
MTk4MzY2NDk2MTgzMzgxYWU4N2Q2MjczLi5mN2YyYTg5OGFkZGFlNzEzMjc5Y2JjYTcxZmIxZjM4
MGQ4MDBlOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgsIGludCkKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCkKICAgICB7
CiAgICAgICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdp
bi5jcHAKaW5kZXggMGY2NmI3MDdhMGRmOTQ3NWM3NTM0MTIzMjIxOWZlYTRmYWYxZmUxYS4uNzdm
MDQ2MmE3Nzc3MGY3OGNkNTc1MjI0NzU3NGU3MzNlZjgxODBkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNw
cApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgSElOVEVSTkVUIGludGVybmV0SGFuZGxl
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5ldEhhbmRsZTsgfQogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgaW50LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwg
aW50IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKQEAg
LTExNiw3ICsxMTYsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyYwogICAgIG1fcmVzcG9uc2Ug
PSByZXNwb25zZTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50
KQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQpCiB7CiAgICAg
bV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRkb3dubG9hZC5jcHAKaW5kZXggYzc0OGM2NTgxY2YzN2YxMjZkMTA3ZWJjZTYyNDhl
MzEwMmE2YTMxZC4uYjYzMzY3YjlmYzM4MTU2YzI2NThkODkyNDZlY2YwYjNkNmIxZDM0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC02NSw3ICs2
NSw3IEBAIGNsYXNzIERvd25sb2FkQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50
IHsKICAgICAgICAgRG93bmxvYWRDbGllbnQoV2ViS2l0RG93bmxvYWQqKTsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQs
IGludCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKiwgZG91YmxlKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9j
a2VkKFJlc291cmNlSGFuZGxlKik7CkBAIC05MzgsNyArOTM4LDcgQEAgdm9pZCBEb3dubG9hZENs
aWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYKICAgICB9CiB9CiAKLXZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVuY29k
ZWREYXRhTGVuZ3RoKQordm9pZCBEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCBlbmNvZGVk
RGF0YUxlbmd0aCkKIHsKICAgICB3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YShtX2Rvd25s
b2FkLCBkYXRhLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
S2l0RExMLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAKaW5kZXggZWY4NTYw
OGMwNGM3MTFmOTI2OWVlODRlZDRkODQ4ZTJlZThmYzBhNi4uNWQ0NDBlZWMxODlhY2U4YWE0Y2E2
NWEwZmUwNjVkNDY0YmQ2NTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0
RExMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCkBAIC0yMDIsNyAr
MjAyLDcgQEAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZUlu
dG9CdWZmZXIoY29uc3QgY2hhciogbmFtZSkKICAgICB2b2lkKiByZXNvdXJjZSA9IExvY2tSZXNv
dXJjZShyZXMpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlu
dCBzaXplID0gU2l6ZW9mUmVzb3VyY2UoZ0luc3RhbmNlLCByZXNJbmZvKTsKKyAgICB1bnNpZ25l
ZCBzaXplID0gU2l6ZW9mUmVzb3VyY2UoZ0luc3RhbmNlLCByZXNJbmZvKTsKIAogICAgIHJldHVy
biBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihyZXNvdXJjZSksIHNpemUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNDMyZWM3NmNmM2Fl
ZjljZjNmN2I4ODM2MTA5ZjQ2NmZmYmQxYzJkNy4uZmEyZDQ1MzE2MTg3ODExMGNlYjkxMjE5OWQ0
ZjcwN2Y3Yzg2M2QzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGNvbnMKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIC8vIFRoZSBOZXR3b3Jr
UHJvY2VzcyBzaG91bGQgbmV2ZXIgZ2V0IGEgZGlkUmVjZWl2ZURhdGEgY2FsbGJhY2suCiAgICAg
Ly8gV2Ugc2hvdWxkIGFsd2F5cyBiZSB1c2luZyBkaWRSZWNlaXZlQnVmZmVyLgpAQCAtMzk0LDcg
KzM5NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5
KFJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZikKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFD
KQotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVu
c2lnbmVkKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDE4OTY5
OGQ4OGNlMmQ1NjEzYjA5M2VlODc5NjY0Y2ZmYWEwNjIxYWEuLjc0NjJiYTZlZWYxZDhhODJiYjVk
MTUxOGUyY2NlOGJmZjAwOWE4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU2VuZERhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBs
b25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVk
RGF0YUxlbmd0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CkBAIC0xMDgsNyArMTA4LDcgQEAgcHVi
bGljOgogI2lmICFQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3Bv
bnNlQXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICop
IE9WRVJSSURFOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0
YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpIE9WRVJSSURFOwogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IGQwZWVi
YjVkZTUyYjMyOTAzOGUwMWY1ZjdlODY4YjZlNTg0ZmUxNTIuLmQ1NjM2YzVhNTk5M2IyNDUyOWJi
YWRlN2UxNDE2NTA1Nzc0Mzc5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
b3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVi
bGljOgogICAgICAgICBtX2Rvd25sb2FkLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihkZXN0aW5hdGlv
blVSSSk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8p
CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKICAgICB7CiAg
ICAgICAgIGlmIChtX2hhbmRsZVJlc3BvbnNlTGF0ZXJJRCkgewogICAgICAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1faGFuZGxlUmVzcG9uc2VMYXRlcklEKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220423</attachid>
            <date>2014-01-06 01:46:00 -0800</date>
            <delta_ts>2014-01-06 03:13:54 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-124579-20140106014558.patch</filename>
            <type>text/plain</type>
            <size>45110</size>
            <attacher name="László Langó">llango.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRhMTQ5YTQ2OTIyY2M5
N2Q4ZGU2YzRkMWViZDM2ZDgxOTMyODllOS4uYjQyNzZjMmQ3MjQ5OGVlNzU5NGYyNGYxNjQ5Mjcx
ZTFhZDdiN2RmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTAxLTA2ICBMw6Fz
emzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4gY2FsbGlu
ZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
UGluZ0xvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIpOgorICAgICAgICAq
IGxvYWRlci9SZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZm
ZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEpOgorICAgICAgICAq
IGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGFBcnJheSk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNsaWVudDo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JT
dHJlYW06OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvQmxvYlN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAg
ICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFN0
b3BCdWZmZXJpbmdEYXRhOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1b
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246
d2lsbFN0b3BCdWZmZXJpbmdEYXRhOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTQtMDEtMDYgIE1hcmsgUm93
ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI2
NDk5PiBNb3ZlIFdlYktpdCBvZmYgdGhlIGxlZ2FjeSBXZWJLaXQgYXZhaWxhYmlsaXR5IG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI0OTBhNjU2YTVhMmFmZjJkMTUzNzY1MWE0NDJmZWFkM2Yx
YmY3YzEuLjdiZmYwZDMzMmExZWI3MmI0YmUzZTc4NDZhYTk2MjRhYzYxMmNhNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMS0wNiAgTMOhc3psw7MgTGFuZ8OzICA8
bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50
bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRC
dWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKERv
d25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTQtMDEtMDIgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE2
MDMwNCk6IFtHVEtdIERpc2FibGUgbGlidG9vbCBmYXN0IGluc3RhbGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpp
bmRleCAwYTRkMjZkNGVjOTA0NTE2NzQwNDk5ODI5ZTQ2YzYxMmY2NmIyZDk1Li5kODlhZjQxZWEy
MGU1NGZhNjQ2ZjUyMDI0ZjZiYzk0ZjczNWE2NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTQtMDEtMDYgIEzDoXN6bMOzIExhbmfDsyAgPGxhbmdvQGluZi51LXN6ZWdl
ZC5odT4KKworICAgICAgICBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hlY2sgZm9y
IGludmFsaWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20gb3RoZXIg
Y29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NDU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAq
IFdlYktpdERMTC5jcHA6CisgICAgICAgIChsb2FkUmVzb3VyY2VJbnRvQnVmZmVyKToKKwogMjAx
My0xMi0zMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIENsZWFudXAgc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4gYnkgdXNpbmcgdG9IVE1M
Rm9ybUVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRlYzA2YmYyZGVhY2FiMmMzYjUxN2VmMTllMGQ0
ZWE0MzYxZTlhMmMuLjY0MmVkYTMyM2VlYjZkNzU3N2QzYTVjNGJmYmQ4ZDBjZTM1MzBlNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMS0wNiAgTMOhc3psw7MgTGFuZ8OzICA8
bGFuZ29AaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFVzZSB1bnNpZ25lZCBjb25zaXN0ZW50
bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50byBTaGFyZWRC
dWZmZXIgZnJvbSBvdGhlciBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI0NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZm
ZXJpbmdEYXRhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKwogMjAx
NC0wMS0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZW5jb2Rpbmcgb2YgVmlld3BvcnRDb25zdHJhaW50IGFuZCBTY3JvbGxpbmdQYXJhbWV0
ZXIgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNGZkMzY1MDAwYTk5NTA0OTM4MTYxNjYw
ZTRkNzZjNDhlNDY0YjlhNC4uMDA5MjkxNTdlYzM3Y2Q0YmY3YTUwODVjMDA1NzRmZGU1NDQzZWYw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIzMyw4ICsyMzMsOCBAQCBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjEyY3JlYXRlQ0ZEYXRhRXYKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVy
MTJjcmVhdGVOU0RhdGFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIyNGNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVy
NmFwcGVuZEVQS2NqCi1fX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLY2kKLV9fWk43V2Vi
Q29yZTEyU2hhcmVkQnVmZmVyQzFFUEtoaQorX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQ
S2NqCitfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRVBLaGoKIF9fWk43V2ViQ29yZTEyU2hh
cmVkQnVmZmVyQzFFdgogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJEMUV2CiBfX1pON1dlYkNv
cmUxMlRleHRFbmNvZGluZ0MxRVJLTjNXVEY2U3RyaW5nRQpAQCAtMzU0LDcgKzM1NCw3IEBAIF9f
Wk43V2ViQ29yZTE0TG9hZGVyU3RyYXRlZ3kyNWxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHlFUE5T
XzE3TmV0d29ya2luZ0NvbnRleHRFCiBfX1pON1dlYkNvcmUxNFBsdWdpbkRvY3VtZW50MTJwbHVn
aW5XaWRnZXRFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlcjEyY3JlYXRlTlNEYXRhRXYK
IF9fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXI2YXBwZW5kRVBLY2oKLV9fWk43V2ViQ29yZTE0
UmVzb3VyY2VCdWZmZXJDMUVQS2NpCitfX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyQzFFUEtj
agogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlckMxRXYKIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VCdWZmZXJDMkV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlQnVmZmVyRDFFdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKaW5k
ZXggN2E3Y2YzNmU4ZTMxM2Y4Yjc0MmJjODRmMmVmZDVhYWM1MWFmNThiNi4uYjhjNDU1NmZhOTY0
MDNkMjhhODUwZDg1MWE1Yjc3M2JlMmQ4ZTc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IHZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwCiAgICAgICAgIGNhbmNlbChmcmFtZUxvYWRlcigpLT5j
bGllbnQoKS5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKIH0KIAotdm9pZCBOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUg
ZGF0YVBheWxvYWRUeXBlKQordm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5j
b2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCiB7CiAgICAg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihkYXRhLCBsZW5ndGgsIDAsIGVuY29kZWREYXRhTGVuZ3Ro
LCBkYXRhUGF5bG9hZFR5cGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaAppbmRleCBjMTNlODg4MTBhNGM3MTcyOTcwNzM1ZmVh
YmViNDE3OGY5MTZkN2RiLi42MDg5MjVhZWViZDdkZWRiZDNkYjhjOTM4YmI4YTEwNDhkYmIwMDBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkLCBsb25n
IGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGI4YWMxNDExNzgxOTU4ZjZm
Y2IzZWJiYjE1ZWRiMGY0MmJlNmM0NmYuLjM1OGQ2MzUzODk4OTljMTJiODRmOTUzZTlhMzg4YTdk
ZTk1NzVhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNjUsNyArNjUsNyBA
QCBwcml2YXRlOgogICAgIFBpbmdMb2FkZXIoRnJhbWUqLCBSZXNvdXJjZVJlcXVlc3QmKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQs
IGludCkgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KSBPVkVS
UklERSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KSBPVkVSUklERSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgIE9WRVJSSURFIHsgcmV0dXJuIG1fc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VC
dWZmZXIuY3BwCmluZGV4IDA2ZTM4NzkzMmY0ZDg4YzM4NTEzN2RlY2U3NjdiMWM2ZjkyMzc2NjMu
LjM4YWZhYTQxYTVjYWNhNDcyNGE2NDQxYTI3ZDgyNzkyODZhOTFlZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcApAQCAtMzUsNyArMzUsNyBAQCBSZXNvdXJjZUJ1
ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQogewogfQogCi1SZXNvdXJjZUJ1ZmZlcjo6UmVzb3VyY2VC
dWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCitSZXNvdXJjZUJ1ZmZlcjo6UmVzb3Vy
Y2VCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKICAgICA6IG1fc2hhcmVk
QnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIHNpemUpKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaAppbmRleCA1ZTkxNWI3MDlmOGYzZDhiMmI0N2YzMDVh
NmEwNTZiMzkyZTFkYjRkLi5jZDZjYjZjZmJlMmI5YmEyZjQxYWRmZTI4ZGRlNGNlMTMwOTMxMmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaApAQCAtNDUsNyArNDUsNyBA
QCBjbGFzcyBSZXNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlc291cmNlQnVmZmVy
PiB7CiBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKTsgfQotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogZGF0YSwgaW50
IHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1ZmZlcihkYXRhLCBzaXplKSk7
IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUJ1
ZmZlcihkYXRhLCBzaXplKSk7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gYWRvcHRTaGFyZWRCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZCkgeyBy
ZXR1cm4gc2hhcmVkID8gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKHNoYXJlZCkpIDogMDsg
fQogCiAgICAgdmlydHVhbCB+UmVzb3VyY2VCdWZmZXIoKTsKQEAgLTk0LDcgKzk0LDcgQEAgcHJv
dGVjdGVkOgogICAgIFJlc291cmNlQnVmZmVyKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVzb3VyY2VC
dWZmZXIoY29uc3QgY2hhciosIGludCk7CisgICAgUmVzb3VyY2VCdWZmZXIoY29uc3QgY2hhcios
IHVuc2lnbmVkKTsKICAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4p
OwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zaGFyZWRCdWZmZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBkZGQyNWI3Mjg3NmZhMmRmMDlhOGUy
MjhkNTEyYjRhNDQzMDMwOTY5Li5lYmVmNzZmNDc5ZmZiNjZlNDQxNjA0NWZhODU3ZWE3YzRlOWQ3
NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREYXRhQnVmZmVyaW5nUG9saWN5KERh
dGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbAogfQogICAgIAogCi12b2lkIFJlc291
cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwg
U2hhcmVkQnVmZmVyKiBidWZmZXIsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit2
b2lkIFJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgRGF0YVBheWxvYWRUeXBlIGRhdGFQ
YXlsb2FkVHlwZSkKIHsKICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPT0g
RG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CkBAIC0zMDcsNyArMzA3LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHIpCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlkUmVjZWl2ZVJlc3Bv
bnNlKHRoaXMsIG1fcmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERh
dGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit2b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgs
IGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2Fk
VHlwZSkKIHsKICAgICAvLyBUaGUgZm9sbG93aW5nIGFzc2VydGlvbnMgYXJlIG5vdCBxdWl0ZSB2
YWxpZCBoZXJlLCBzaW5jZSBhIHN1YmNsYXNzCiAgICAgLy8gbWlnaHQgb3ZlcnJpZGUgZGlkUmVj
ZWl2ZURhdGEgaW4gYSB3YXkgdGhhdCBpbnZhbGlkYXRlcyB0aGVtLiBUaGlzCkBAIC0zMjMsNyAr
MzIzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBsb25nIGxvbmcKICAgICBkaWRSZWNlaXZlRGF0YU9yQnVm
ZmVyKDAsIDAsIGJ1ZmZlciwgZW5jb2RlZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycEJ1ZmZlciwg
bG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRU
eXBlKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBwcnBC
dWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQ
YXlsb2FkVHlwZSkKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBnZXQgZGF0YSts
ZW5ndGggKk9SKiBhIFNoYXJlZEJ1ZmZlci4KICAgICBBU1NFUlQoIXBycEJ1ZmZlciB8fCAoIWRh
dGEgJiYgIWxlbmd0aCkpOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgUGFz
c1JlCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlkUmVjZWl2ZURhdGEodGhp
cywgYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiBkYXRhLCBidWZmZXIgPyBidWZmZXItPnNpemUo
KSA6IGxlbmd0aCwgc3RhdGljX2Nhc3Q8aW50PihlbmNvZGVkRGF0YUxlbmd0aCkpOwogfQogCi12
b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0
YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKG1fb3B0aW9u
cy5kYXRhQnVmZmVyaW5nUG9saWN5ID09IERvTm90QnVmZmVyRGF0YSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmCiAgICAgZGlkUmVj
ZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50
IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VE
YXRhKG1fZnJhbWUuZ2V0KCksIGlkZW50aWZpZXIoKSwgZW5jb2RlZERhdGFMZW5ndGgpOwogICAg
IGRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXls
b2FkQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2ZGQ5
ZWI2NDJjNjk4NzZlYWQzNWFmNDg0YjFhZDQ2YzBlZDNmYjViLi40ZmM5YjNhZDAwN2YzYzg2ODA4
MWY0ZTViMTg4MDY2ZTQ1MmQ0NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtOTIsOSArOTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5k
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBs
b25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkLCBsb25nIGxvbmcgZW5j
b2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBsb25nIGxvbmcgZW5jb2RlZERh
dGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSk7Ci0gICAgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0Rh
dGEoY29uc3QgY2hhciosIGludCk7CisgICAgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoY29u
c3QgY2hhciosIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhk
b3VibGUgZmluaXNoVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOwogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKQEAgLTEx
NCwxNCArMTE0LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmRE
YXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWdu
ZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSosIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5p
c2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2Fz
QmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjYW5u
b3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CiAjaWYgUExBVEZPUk0oTUFDKQot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSBPVkVSUklERSB7IHdpbGxTdG9wQnVmZmVyaW5n
RGF0YShkYXRhLCBsZW5ndGgpOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5n
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkg
T1ZFUlJJREUgeyB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoZGF0YSwgbGVuZ3RoKTsgfQogI2VuZGlm
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFu
ZGxlKikgT1ZFUlJJREUgeyByZXR1cm4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKSBPVkVS
UklERSB7IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVuZ2UpOyB9IApA
QCAtMTcxLDcgKzE3MSw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgd2FzQ2FuY2VsbGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9jYW5jZWxsYXRpb25TdGF0dXMgPj0gQ2FuY2VsbGVkOyB9CiAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIGludCwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
VHlwZSk7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCB1bnNp
Z25lZCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5n
dGgsIERhdGFQYXlsb2FkVHlwZSk7CiAKICAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMm
IG9wdGlvbnMoKSB7IHJldHVybiBtX29wdGlvbnM7IH0KIApAQCAtMTg0LDcgKzE4NCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9
IDA7CiAKLSAgICB2b2lkIGFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBTaGFyZWRC
dWZmZXIqLCBEYXRhUGF5bG9hZFR5cGUpOworICAgIHZvaWQgYWRkRGF0YU9yQnVmZmVyKGNvbnN0
IGNoYXIqLCB1bnNpZ25lZCwgU2hhcmVkQnVmZmVyKiwgRGF0YVBheWxvYWRUeXBlKTsKIAogICAg
IFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fb3JpZ2lu
YWxSZXF1ZXN0OyAvLyBCZWZvcmUgcmVkaXJlY3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZDE1ZDYxMzA2ZDFjZDQxZDM1NzFmNjY3ODkyY2Rm
NjQ1MTUzZjNhYi4uMGYxNzI2NGUwNTMwN2EyMTRmNTI0MGMxOGJlZWI3YjBlZThiMjhkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIGNoZWNrRm9ySFRUUFN0YXR1c0NvZGVF
cnJvcigpOwogfQogCi12b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERh
dGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGxvbmcgbG9u
ZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsK
ICAgICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgMCwgZW5jb2RlZERhdGFM
ZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5oCmluZGV4IGVkOTJmMWM3MjE4MWJmNTVkOWI5MGJjODYyOGE0Nzc2ZmUzMTFi
OGUuLjg5ZjRmMjlkZjU5N2VkY2Q3NzZmZjM2OTRmZTBkNTNlMDlkMDU4OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5z
aWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkLCBsb25n
IGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggNzM1N2I0NWZhNmFhN2QwY2QxMTM3MGM0NWZhNjM3
ZGIzZWY4MDU1Ni4uNWJhOWY2MjEyNjM1NGE1ZDhiOGE0YmMzNjIxZTc5ODQ1YmE3ZjVmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJl
cwogICAgIG1fY3VycmVudFJlc291cmNlID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVh
dGUodXJsLCByZXNwb25zZSwgdHlwZSk7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3Vw
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGVHcm91cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hh
ciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGVuY29kZWREYXRhTGVuZ3RoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmluZGV4IGE1MDE2
NzNhMWVlYWEyNzMzYjUzMTNhZDBkNTRhMzEwODdmYzM2N2MuLjQ1MTZkMmQzZTY3MWM0NjI1MWUw
YmYyZGRjNDlhMDgyZDQxMWI5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKQEAgLTExMCw3ICsxMTAsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNv
dXJjZUhhbmRsZSopIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KaW5kZXggMjRk
ODk1MGFhZTlkODUwZjc5ZGQxZjA1NjU1OWNmYjk2NjQ4MjliNi4uMWVmODhkNDM5MTMxMTg4NDZh
MWRjMDg3NDEyNWUzNzZkZDU5ZjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFj
L1Jlc291cmNlTG9hZGVyTWFjLm1tCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCiAgICAgQ0ZJbmRl
eCBhcnJheUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGRhdGFBcnJheSk7CiAgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgYXJyYXlDb3VudDsgKytpKSB7CiAgICAgICAgIENGRGF0YVJlZiBkYXRh
ID0gc3RhdGljX2Nhc3Q8Q0ZEYXRhUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGRhdGFBcnJh
eSwgaSkpOwotICAgICAgICBpbnQgZGF0YUxlbiA9IHN0YXRpY19jYXN0PGludD4oQ0ZEYXRhR2V0
TGVuZ3RoKGRhdGEpKTsKKyAgICAgICAgdW5zaWduZWQgZGF0YUxlbiA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihDRkRhdGFHZXRMZW5ndGgoZGF0YSkpOwogCiAgICAgICAgIGlmIChtX29wdGlvbnMu
ZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgICAgICBpZiAoIW1f
cmVzb3VyY2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKaW5k
ZXggZjgxNTJmMjE4NDQyMTRkODNhMmVkYTdlYzIxZmYwZGRkMjg2OWY5Mi4uZGI4MjNjZDdmYjYy
NGZmMDQwM2VmYWJmN2M2MmRlMmYwZmE3ZGRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCkBAIC03NSw3ICs3NSw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKCkKIHsKIH0KIAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoc2l6ZV90IHNpemUpCitT
aGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcih1bnNpZ25lZCBzaXplKQogICAgIDogbV9zaXplKHNp
emUpCiAgICAgLCBtX2J1ZmZlcihzaXplKQogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQpA
QCAtODcsNyArODcsNyBAQCBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihzaXplX3Qgc2l6ZSkK
IHsKIH0KIAotU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50
IHNpemUpCitTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBzaXplKQogICAgIDogbV9zaXplKDApCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUp
CiAgICAgLCBtX2lzTWVtb3J5TWFwcGVkKGZhbHNlKQpAQCAtOTYsMTQgKzk2LDEwIEBAIFNoYXJl
ZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQogICAgICwg
bV9ub3RpZnlNZW1vcnlNYXBwZWRDYWxsYmFja0RhdGEobnVsbHB0cikKICNlbmRpZgogewotICAg
IC8vIEZJWE1FOiBVc2UgdW5zaWduZWQgY29uc2lzdGVudGx5LCBhbmQgY2hlY2sgZm9yIGludmFs
aWQgY2FzdHMgd2hlbiBjYWxsaW5nIGludG8gU2hhcmVkQnVmZmVyIGZyb20gb3RoZXIgY29kZS4K
LSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIENSQVNIKCk7Ci0KICAgICBhcHBlbmQoZGF0YSwg
c2l6ZSk7CiB9CiAKLVNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIGludCBzaXplKQorU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgdW5z
aWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKICAgICA6IG1fc2l6ZSgwKQogI2lmIEVO
QUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01lbW9yeU1hcHBlZChmYWxzZSkKQEAg
LTExMiwxMCArMTA4LDYgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgaW50IHNpemUpCiAgICAgLCBtX25vdGlmeU1lbW9yeU1hcHBlZENhbGxi
YWNrRGF0YShudWxscHRyKQogI2VuZGlmCiB7Ci0gICAgLy8gRklYTUU6IFVzZSB1bnNpZ25lZCBj
b25zaXN0ZW50bHksIGFuZCBjaGVjayBmb3IgaW52YWxpZCBjYXN0cyB3aGVuIGNhbGxpbmcgaW50
byBTaGFyZWRCdWZmZXIgZnJvbSBvdGhlciBjb2RlLgotICAgIGlmIChzaXplIDwgMCkKLSAgICAg
ICAgQ1JBU0goKTsKLQogICAgIGFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihk
YXRhKSwgc2l6ZSk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5o
CmluZGV4IDQ5Y2QxOTI4MjkzOWM2ZWE0ODZhOTExNDUyZjIzNmRkNTIzMGRiZjcuLjgyNzE4YjM1
YzBkMDM3YjlmYjVlYjU2YTg5ZGQxNTM1Yjg3NDk3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5oCkBAIC01Miw5ICs1Miw5IEBAIGNsYXNzIFB1cmdlYWJsZUJ1ZmZlcjsK
IGNsYXNzIFNoYXJlZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEJ1ZmZlcj4gewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcik7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShzaXplX3Qgc2l6ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IFNoYXJlZEJ1ZmZlcihzaXplKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBjLCBpbnQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZEJ1ZmZlcihjLCBpKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCBpbnQgaSkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGNyZWF0ZSh1bnNpZ25lZCBzaXplKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVk
QnVmZmVyKHNpemUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3Jl
YXRlKGNvbnN0IGNoYXIqIGMsIHVuc2lnbmVkIGkpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFy
ZWRCdWZmZXIoYywgaSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBj
cmVhdGUoY29uc3QgdW5zaWduZWQgY2hhciogYywgdW5zaWduZWQgaSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gY3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBh
dGgpOwogCkBAIC0xNjgsOSArMTY4LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNoYXJl
ZEJ1ZmZlcigpOwotICAgIGV4cGxpY2l0IFNoYXJlZEJ1ZmZlcihzaXplX3QpOwotICAgIFNoYXJl
ZEJ1ZmZlcihjb25zdCBjaGFyKiwgaW50KTsKLSAgICBTaGFyZWRCdWZmZXIoY29uc3QgdW5zaWdu
ZWQgY2hhciosIGludCk7CisgICAgZXhwbGljaXQgU2hhcmVkQnVmZmVyKHVuc2lnbmVkKTsKKyAg
ICBTaGFyZWRCdWZmZXIoY29uc3QgY2hhciosIHVuc2lnbmVkKTsKKyAgICBTaGFyZWRCdWZmZXIo
Y29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKTsKICAgICAKICAgICAvLyBDYWxsaW5nIHRo
aXMgZnVuY3Rpb24gd2lsbCBmb3JjZSBpbnRlcm5hbCBzZWdtZW50ZWQgYnVmZmVycwogICAgIC8v
IHRvIGJlIG1lcmdlZCBpbnRvIGEgZmxhdCBidWZmZXIuIFVzZSBnZXRTb21lRGF0YSgpIHdoZW5l
dmVyIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IDJhN2JiZmY4NzEzYzBhN2EwMTQ3MTcwYzVhZDI4NzBlNjM0MWE1MGMuLjNhZWU0OGM0
OWRkM2E0OGY4OTQ5MDI3ZDM5YzEzOGYwODQ4ODkwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC05OSw3ICs5OSw3IEBAIGNsYXNzIFJlc291cmNl
SGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50LCBwdWJs
aWMgU3RyZWFtCiAgICAgICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNp
emVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBj
aGFyKiwgaW50LCBpbnQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+LCBpbnQgZW5jb2RlZExlbmd0aCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJj
ZUVycm9yJik7CkBAIC0xMTE3LDcgKzExMTcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFt
aW5nQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZQog
ICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOwogfQogCi12b2lkIFJlc291cmNl
SGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCkKK3ZvaWQgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNv
dXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNv
dXJjZUhhbmRsZS5jcHAKaW5kZXggMzc2OTY0MTJkMWEyNWYwZWUzZTI3ODk5ZTA0YzMxMmY2ODc3
ZmYzZS4uNzc2ZjlmZGZkOWM0NTRjZTc1NzExMzBlYzhmMjFlY2YzMGViNWIyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgQmxvYlJlc291cmNlU3luY2hyb25v
dXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4m
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qZW5j
b2RlZERhdGFMZW5ndGgqLykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVk
RGF0YUxlbmd0aCovKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
JikgT1ZFUlJJREU7CiAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNo
cm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
YwogICAgIHN0YXRpY19jYXN0PEJsb2JSZXNvdXJjZUhhbmRsZSo+KGhhbmRsZSktPnJlYWRTeW5j
KG1fZGF0YS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obV9kYXRhLnNpemUoKSkpOwogfQogCi12
b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCkKK3ZvaWQgQmxvYlJlc291cmNlU3luY2hy
b25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcios
IHVuc2lnbmVkLCBpbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAppbmRleCBiM2E1OTIzMDQyODUwYmFj
NGI3YWRmMjM3MzdjOGFhNTEyNjYxYTdjLi5hYTRiNzlhODc1ODU4ZGQ1NjU5MWM3MDNkZDgyMDJi
MDhjMTE3Zjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC02Nyw3ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICAKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcios
IGludCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgeyB9CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwg
aW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pIHsg
fQpAQCAtMTIyLDcgKzEyMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2VsaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKndpbGxDYWNoZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpIHsg
cmV0dXJuIHJlc3BvbnNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmlu
Z0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCkgeyB9CiAjZW5kaWYKIAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IGE2MGRmYjkxZTU3Y2JlZDBiYWY3NzBhOGZkOGQ3ZDNjZjEyODkxN2UuLjk5NDY4MmZi
MWUxYTI1ODdiZDZmYWM4NGMyYmFiZDRjNmY4ZjIxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3Bw
CkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlCiAgICAgbV9yZXNwb25z
ZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGlu
dCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pCit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKIHsKICAgICBtX2RhdGEuYXBwZW5k
KGRhdGEsIGxlbmd0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKaW5kZXggN2Q0YmY2ZWJjNTA2NDdh
MWQzOWRhMWQyYjUwM2VjOTYzM2E4ZGY2OC4uYWJjZDZmNTc3NTI2NGJlZjg1YWYxOGQyNWIyYTA4
ZjVjZTgwYjQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
eW5jaHJvbm91c0xvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhh
bmRsZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwg
aW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQg
LyplbmNvZGVkRGF0YUxlbmd0aCovKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZUVycm9yJikgT1ZFUlJJREU7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxM
QkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9CbG9iU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9CbG9iU3RyZWFtLmNwcAppbmRleCA3NzJlYTgwNzBiZjg0YWI5MDE0YzQzMjE2ZjA0
ZDI3NjZiYzk4ZTg1Li4wNjEwZGViN2JjYTFjNmQzNGUwNmE2NjRjNTdiZGMxMzdjYzEzY2Y2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxv
YlN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L0Jsb2JTdHJlYW0uY3BwCkBAIC0zNyw3ICszNyw3IEBAIEJsb2JTdHJlYW06On5CbG9iU3Ry
ZWFtKCkKIHsKIH0KIAotdm9pZCBCbG9iU3RyZWFtOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4sIGludCkKK3ZvaWQgQmxvYlN0cmVhbTo6
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW4sIGludCkKIHsKICAgICBub3RpZnlEYXRhUmVjZWl2ZWQoQmxhY2tCZXJyeTo6UGxhdGZv
cm06OmNyZWF0ZU5ldHdvcmtCdWZmZXJCeVdyYXBwaW5nRGF0YShkYXRhLCBsZW4pKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9i
U3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQmxv
YlN0cmVhbS5oCmluZGV4IDJmOGRlZDViYjhmMjk3OTU0YjJiYTdmNWQwNWExNDYwZTc2NGMxZDUu
LjllODY0Yjg2YjhmZjFiNmQwYTA3NGMxYzFhOTg4NzJlN2FhMGE3ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9CbG9iU3RyZWFtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Jsb2JTdHJlYW0u
aApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6U3RyaW5nIG1pbWVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBG
cm9tIGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAppbmRl
eCBjMTY0MDJlY2QyNTMwZGU1ZThkMzRhNjE3OGY4NzBkZjUxNDU5YzNjLi4xMDZkNTMzZjc4YzVm
MTIyYjhlOWRmM2U5OTMxMjM2OGIyODBiODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VI
YW5kbGVCbGFja0JlcnJ5LmNwcApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQs
IGludCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIApAQCAtNzAsNyArNzAs
NyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyYwogICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsK
IH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQordm9pZCBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQpCiB7CiAgICAgbV9kYXRhLmFwcGVu
ZChkYXRhLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCA0MDEzY2YzODA5
YWU1ZTMwMjNlOGViNjZkOTZjNmU5MDI4NTkxNzI0Li5iYjkyN2YzMmZhM2E4ZDIzOWI1MmIwMGUw
ZWQ5NzZjZWZmYTJlN2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2ln
bmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
IApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyYwogICAgIG1fcmVzcG9u
c2UgPSByZXNwb25zZTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwg
aW50KQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQpCiB7CiAg
ICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzRGVsZWdhdGUubW0KaW5kZXggOTdhOGNiNGU2NmUwMjUxNGRjMmQwNmQ4ZDk1ODk0
MjAyZmUzYmJlNy4uYjEzNGY1NWYxNmUxMGEyNTNlNmMyZWYwMDNmYjY4MzBhNzQxYzMwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCkBAIC0yMDYsNyArMjA2
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gRklYTUU6IElmIHdlIGdldCBh
IHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJCIGJ5dGVzLCB0aGlzIGNvZGUgd29uJ3QgZG8gdGhl
IHJpZ2h0IHRoaW5nLgogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5k
IG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAv
LyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KLSAgICBtX2hhbmRs
ZS0+Y2xpZW50KCktPndpbGxTdG9wQnVmZmVyaW5nRGF0YShtX2hhbmRsZSwgKGNvbnN0IGNoYXIq
KVtkYXRhIGJ5dGVzXSwgc3RhdGljX2Nhc3Q8aW50PihbZGF0YSBsZW5ndGhdKSk7CisgICAgbV9o
YW5kbGUtPmNsaWVudCgpLT53aWxsU3RvcEJ1ZmZlcmluZ0RhdGEobV9oYW5kbGUsIChjb25zdCBj
aGFyKilbZGF0YSBieXRlc10sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihbZGF0YSBsZW5ndGhdKSk7
CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBk
aWRTZW5kQm9keURhdGE6KE5TSW50ZWdlcilieXRlc1dyaXR0ZW4gdG90YWxCeXRlc1dyaXR0ZW46
KE5TSW50ZWdlcil0b3RhbEJ5dGVzV3JpdHRlbiB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOihO
U0ludGVnZXIpdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4IGM2
OWExNjU4ZTU5NGYyMDYzOWZjMjYxYzk1NmIyZWYzNjUzOWFjYWEuLjFhNGJlYjQwOWQzNWY3MDUy
YmIwODMwOTFmMmE2ZDVlMjI2YmMwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KQEAgLTMwMyw3ICszMDMs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAgICAgLy8gRklYTUU6IElmIHdlIGdl
dCBhIHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJCIGJ5dGVzLCB0aGlzIGNvZGUgd29uJ3QgZG8g
dGhlIHJpZ2h0IHRoaW5nLgogICAgICAgICAvLyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0
ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVkcywgdGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2Uu
CiAgICAgICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBnaWFudCBsb2NhbCBmaWxlLgot
ICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPndpbGxTdG9wQnVmZmVyaW5nRGF0YShtX2hhbmRs
ZSwgKGNvbnN0IGNoYXIqKVtkYXRhIGJ5dGVzXSwgc3RhdGljX2Nhc3Q8aW50PihbZGF0YSBsZW5n
dGhdKSk7CisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+d2lsbFN0b3BCdWZmZXJpbmdEYXRh
KG1faGFuZGxlLCAoY29uc3QgY2hhciopW2RhdGEgYnl0ZXNdLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oW2RhdGEgbGVuZ3RoXSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmlu
ZGV4IGFlNDcxYjdlZWZkNWNkODFhOGE5Y2E0Y2ZhMTkyYzBjYzYyY2FiYzkuLmY3YTU0YmFlNzBm
MTUwYTMzNDBjMjlhM2E1NDE4ZjFjNzM0ZGE0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBA
IC0xNDQsNyArMTQ0LDcgQEAgcHVibGljOgogICAgICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciogLyogZGF0YSAqLywgaW50IC8qIGxlbmd0aCAqLywgaW50KQorICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIC8q
IGRhdGEgKi8sIHVuc2lnbmVkIC8qIGxlbmd0aCAqLywgaW50KQogICAgIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDBmNjZiNzA3
YTBkZjk0NzVjNzUzNDEyMzIyMTlmZWE0ZmFmMWZlMWEuLjc3ZjA0NjJhNzc3NzBmNzhjZDU3NTIy
NDc1NzRlNzMzZWY4MTgwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAgLTg3LDcgKzg3LDcgQEAg
cHVibGljOgogICAgIEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW50ZXJuZXRIYW5kbGU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50
IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0
aCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9p
ZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmMKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CiB9CiAKLXZv
aWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCkKK3ZvaWQgV2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50KQogewogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwg
bGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRk
b3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3Bw
CmluZGV4IDFmNTUwMGM0NWZkNDM3MDRmMDU2Mzg1MzQwNjUwOGFmNmI4YzNiYjQuLmFlMmYyMWY4
NDEwMWMzODBkMDdhYTZlODAzMjg3OGZmNWY2MDBmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAg
RG93bmxvYWRDbGllbnQoV2ViS2l0RG93bmxvYWQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIGludCwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYnVmZmVyLCBpbnQgZW5jb2RlZExlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpAQCAtOTQxLDcgKzk0
MSw3IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmCiAgICAgfQogfQogCi12b2lkIERvd25sb2Fk
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgRG93bmxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcAppbmRleCBlZjg1NjA4YzA0YzcxMWY5MjY5
ZWU4NGVkNGQ4NDhlMmVlOGZjMGE2Li41ZDQ0MGVlYzE4OWFjZThhYTRjYTY1YTBmZTA2NWQ0NjRi
ZDY1M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25z
dCBjaGFyKiBuYW1lKQogICAgIHZvaWQqIHJlc291cmNlID0gTG9ja1Jlc291cmNlKHJlcyk7CiAg
ICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaW50IHNpemUgPSBTaXpl
b2ZSZXNvdXJjZShnSW5zdGFuY2UsIHJlc0luZm8pOworICAgIHVuc2lnbmVkIHNpemUgPSBTaXpl
b2ZSZXNvdXJjZShnSW5zdGFuY2UsIHJlc0luZm8pOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNl
KSwgc2l6ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAwNzM4OTI5YmY4ZjkyMTgyZjYzYjcxODc3
MTIzYjQ5NjlhYmFiNTdhLi5iYTg5YzhlYmUzMDcxZjQ0NTgzYzZmYzQwMWUxOWRhMzRiM2RkMzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
Y29ucwogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IGVu
Y29kZWREYXRhTGVuZ3RoKQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgLy8gVGhlIE5ldHdvcmtQcm9jZXNzIHNob3Vs
ZCBuZXZlciBnZXQgYSBkaWRSZWNlaXZlRGF0YSBjYWxsYmFjay4KICAgICAvLyBXZSBzaG91bGQg
YWx3YXlzIGJlIHVzaW5nIGRpZFJlY2VpdmVCdWZmZXIuCkBAIC0zOTgsNyArMzk4LDcgQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5k
bGUqLCBDRkFycmF5UmVmKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6d2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1
ZmZlcmluZ0RhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggOWQyMzAzMmEwMjY4ZjNhNTJk
OTg1NTIwM2RiNmJhYjBiNDViNDk5OC4uZjJmNjNkNTRmZDNjMGZjMDhlYWYyNTUzOTJhYjI3YTVl
ZWJkZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZW5kRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRl
c1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgaW50LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqLCB1bnNpZ25lZCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKSBPVkVSUklERTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKikgT1ZFUlJJREU7CiAj
ZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxTdG9wQnVmZmVyaW5nRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqLCB1bnNpZ25lZCkgT1ZFUlJJREU7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKaW5kZXggYTVhMDhiNjE5N2ZmMjVkYmIz
ZjNlMzEzMjVjZDA5ODE3ZDhkNjdmMC4uNWRhOGQ5YTE5NTBjNzA3ZDAwM2U3NzBiMDUwODYyNzUy
YjQ5YWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9z
b3VwL0Rvd25sb2FkU291cC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fZG93bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKGRlc3RpbmF0aW9uVVJJKTsKICAgICB9
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQg
bGVuZ3RoLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKQogICAgIHsKICAgICAgICAgaWYgKG1f
aGFuZGxlUmVzcG9uc2VMYXRlcklEKSB7CiAgICAgICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9o
YW5kbGVSZXNwb25zZUxhdGVySUQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>