<?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>114081</bug_id>
          
          <creation_ts>2013-04-06 00:34:32 -0700</creation_ts>
          <short_desc>Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore</short_desc>
          <delta_ts>2013-04-07 17:51:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>114126</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>dgrogan</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>junov</cc>
    
    <cc>mifenton</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>870234</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-06 00:34:32 -0700</bug_when>
    <thetext>Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870236</commentid>
    <comment_count>1</comment_count>
      <attachid>196719</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-06 00:55:34 -0700</bug_when>
    <thetext>Created attachment 196719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870241</commentid>
    <comment_count>2</comment_count>
      <attachid>196719</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-06 01:09:03 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

Attachment 196719 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17528345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870243</commentid>
    <comment_count>3</comment_count>
      <attachid>196719</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-06 01:10:19 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

Attachment 196719 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17523337</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870244</commentid>
    <comment_count>4</comment_count>
      <attachid>196719</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-06 01:10:46 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

Attachment 196719 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17527343</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870247</commentid>
    <comment_count>5</comment_count>
      <attachid>196719</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-06 01:40:35 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

Attachment 196719 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17442449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870251</commentid>
    <comment_count>6</comment_count>
      <attachid>196719</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-06 01:48:49 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

Attachment 196719 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17524355</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870256</commentid>
    <comment_count>7</comment_count>
      <attachid>196726</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-06 02:06:36 -0700</bug_when>
    <thetext>Created attachment 196726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870257</commentid>
    <comment_count>8</comment_count>
      <attachid>196719</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-06 02:07:10 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

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

&gt; Source/WebCore/platform/SecureTextInput.cpp:33
&gt;  void enableSecureTextInput()

I think we should just get rid of these functions.

&gt; Source/WebCore/platform/graphics/FloatPoint.h:158
&gt; +#if PLATFORM(MA) &amp;&amp; !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)

Typo: MA.

&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:42
&gt; +#if OS(DARWIN) &amp;&amp; (PLATFORM(WX)

Typo: Unmatched (

&gt; Source/WebCore/platform/leveldb/LevelDBDatabase.cpp:140
&gt;  static void histogramFreeSpace(const char* type, String fileName)

We should probably get rid of this function altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870260</commentid>
    <comment_count>9</comment_count>
      <attachid>196726</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-06 02:25:49 -0700</bug_when>
    <thetext>Comment on attachment 196726
Patch

Attachment 196726 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17446367</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870262</commentid>
    <comment_count>10</comment_count>
      <attachid>196726</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-06 02:29:59 -0700</bug_when>
    <thetext>Comment on attachment 196726
Patch

Attachment 196726 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17472427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870264</commentid>
    <comment_count>11</comment_count>
      <attachid>196726</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-06 03:04:52 -0700</bug_when>
    <thetext>Comment on attachment 196726
Patch

Attachment 196726 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17486474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870265</commentid>
    <comment_count>12</comment_count>
      <attachid>196726</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-06 03:08:42 -0700</bug_when>
    <thetext>Comment on attachment 196726
Patch

Attachment 196726 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17420531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870268</commentid>
    <comment_count>13</comment_count>
      <attachid>196726</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-06 03:27:58 -0700</bug_when>
    <thetext>Comment on attachment 196726
Patch

Attachment 196726 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17509022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870295</commentid>
    <comment_count>14</comment_count>
      <attachid>196719</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-06 09:17:13 -0700</bug_when>
    <thetext>Comment on attachment 196719
Patch

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

&gt;&gt; Source/WebCore/platform/SecureTextInput.cpp:33
&gt;&gt;  void enableSecureTextInput()
&gt; 
&gt; I think we should just get rid of these functions.

These are called in FrameSelection::setUseSecureKeyboardEntry[1]. Should I remove all the code paths that lead to that method as well? I&apos;d be more comfortable doing that in a separate patch, though.

[1] http://trac.webkit.org/browser/trunk/Source/WebCore/editing/FrameSelection.cpp#L1730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870396</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-06 18:23:03 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 196719 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=196719&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/SecureTextInput.cpp:33
&gt; &gt;&gt;  void enableSecureTextInput()
&gt; &gt; 
&gt; &gt; I think we should just get rid of these functions.
&gt; 
&gt; These are called in FrameSelection::setUseSecureKeyboardEntry[1]. Should I remove all the code paths that lead to that method as well? I&apos;d be more comfortable doing that in a separate patch, though.

Can we add a FIXME or something?  Or maybe leave that PLATFORM(CHROMIUm) alone and delete in a follow up patch. I&apos;m concerned that we&apos;ll forget about them and never get to clean them up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870502</commentid>
    <comment_count>16</comment_count>
      <attachid>196800</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-07 12:32:04 -0700</bug_when>
    <thetext>Created attachment 196800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870530</commentid>
    <comment_count>17</comment_count>
      <attachid>196800</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-07 13:29:08 -0700</bug_when>
    <thetext>Comment on attachment 196800
Patch

Attachment 196800 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17486864</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870534</commentid>
    <comment_count>18</comment_count>
      <attachid>196812</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-07 13:39:31 -0700</bug_when>
    <thetext>Created attachment 196812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870544</commentid>
    <comment_count>19</comment_count>
      <attachid>196812</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-07 14:11:31 -0700</bug_when>
    <thetext>Comment on attachment 196812
Patch

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

Brilliant!

&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:181
&gt; +#if PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(EFL) || PLATFORM(BLACKBERRY) || PLATFORM(WIN)

I wonder if that should be a
    #if !PLATFORM(QT)

(in a separate patch).

&gt; Source/WebCore/platform/leveldb/LevelDBDatabase.cpp:38
&gt;  #include &quot;Logging.h&quot;
&gt; +#include &quot;NotImplemented.h&quot;
&gt;  #include &lt;helpers/memenv/memenv.h&gt;

??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870581</commentid>
    <comment_count>20</comment_count>
      <attachid>196812</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-07 17:51:03 -0700</bug_when>
    <thetext>Comment on attachment 196812
Patch

Clearing flags on attachment: 196812

Committed r147888: &lt;http://trac.webkit.org/changeset/147888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870582</commentid>
    <comment_count>21</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-07 17:51:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196719</attachid>
            <date>2013-04-06 00:55:34 -0700</date>
            <delta_ts>2013-04-07 12:31:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114081-20130406095520.patch</filename>
            <type>text/plain</type>
            <size>121003</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmMWY5NGFkMjZkNGMz
NTQ4MjZiZTdjMzc4YjQ0ZjU4MGRhYzNiMi4uMWZkYTk4ZjkxNmE2NjM2OTI4NjE5Yjc3MWQ5OTcz
YjIwZjRkNzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyNSBAQAorMjAxMy0wNC0wNiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFp
bmluZyBQTEFURk9STShDSFJPTUlVTSktZ3VhcmRlZCBjb2RlIGluIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDA4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWlu
aW5nIFBMQVRGT1JNKENIUk9NSVVNKSBidWlsZCBndWFyZHMuIFRoZXJlIGFyZSBzdGlsbCBhIGNv
dXBsZSBvZiBndWFyZHMKKyAgICAgICAgdGhhdCBtb3N0IGxpa2VseSBhcHBseSBvbmx5IHRvIENo
cm9taXVtLCBsaWtlIE9TKEFORFJPSUQpIG9yIFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSksCisg
ICAgICAgIGJ1dCByZW1vdmFsIG9mIHRoZXNlIHNob3VsZCBnbyBpbnRvIHNlcGFyYXRlIHBhdGNo
ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2Fu
Q2FjaGVQYWdlRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpjYW5DYWNo
ZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50
SGFuZGxlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdC
dWZmZXJzOjpzYXRpc2ZpZXNXZWJHTFJlcXVpcmVtZW50cyk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bm90aWZ5RmluaXNoZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICAoQ29udGV4
dE1lbnUpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAq
IHBsYXRmb3JtL0N1cnNvci5oOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6CisgICAgICAg
ICogcGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oOgorICAgICAgICAoUGFzdGVib2FyZCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxEZWNv
ZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlk
RGVjb2RlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246
OndpbGxSZXNpemVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6ZGlkUmVzaXplSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmg6CisgICAgICAgIChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAg
ICAgKFBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25l
OjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJlYXMpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGJhci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmVuYWJsZVNlY3VyZVRleHRJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpk
aXNhYmxlU2VjdXJlVGV4dElucHV0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZWN1cmVUZXh0SW5w
dXQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1N1ZGRlblRlcm1p
bmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQu
aDoKKyAgICAgICAgKFdpZGdldCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVX
ZWJLaXRCcmlkZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaDoKKyAgICAgICAgKEZs
b2F0UG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oOgorICAg
ICAgICAoRmxvYXRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUu
aDoKKyAgICAgICAgKEZsb2F0U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OndpZHRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChGb250KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAg
IChGb250Q2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6R2x5cGhCdWZmZXI6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
OgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnN1
cHBvcnRzQmFja2dyb3VuZENvbG9yQ29udGVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSWNvbi5oOgorICAgICAgICAoSWNvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0Lmg6CisgICAgICAgIChJbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2lt
cGxlRm9udERhdGEuaDoKKyAgICAgICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKERlcml2
ZWRGb250RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VD
Ry5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4
ZWxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGVDRy5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL1BhdHRlcm5DRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6cGxhdGZvcm1EYXRhSW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpwbGF0Zm9ybURhdGFBc3NpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6c2V0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVDdXN0b21GaWx0ZXI6OnJlc2l6ZUNvbnRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKERyYXdpbmdCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpk
cmF3Q29tcGxleFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZvckNv
bXBsZXhUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6Om9mZnNldEZvclBvc2l0aW9uRm9y
Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6aGFzQnJva2VuQ1RGb250R2V0VmVydGljYWxUcmFuc2xhdGlv
bnNGb3JHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zM0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkcmF3T3V0ZXJQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdJbm5lclBhdGgp
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0Rm9jdXNSaW5nT3V0c2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZHJhd1Jlc2FtcGxlZEJpdG1hcCk6CisgICAgICAgIChXZWJDb3JlOjpwYWludFNrQml0bWFw
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmF0aXZlSW1hZ2VTa2lhOjpyZXNpemVkQml0bWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1Db250ZXh0U2tpYTo6Yml0bWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoaXN0b2dyYW1GcmVlU3BhY2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oOgorICAgICAgICAo
V2ViQ29yZTo6aXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQYWludGVyRGVs
ZWdhdGUgbGF5ZXJdKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbEFuaW1hdGlvbkVuYWJsZWRG
b3JTeXN0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJv
bGxlci5tbToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAoU2Nyb2xsYmFyVGhlbWVNYWMpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZU1hYzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OmVuc3VyZWRWaWV3
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJsb2JSZWdpc3RyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmg6
CisgICAgICAgIChOZXR3b3JrU3RhdGVOb3RpZmllcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOgorCiAyMDEzLTA0LTA1ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBQcmVmZXIgcHJlZml4ICsrLy0tIG9wZXJhdG9ycyBmb3Igbm9uLXByaW1p
dGl2ZSB0eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXggYzdjMTliZmVkNDFlNzY5ZGUzYmRj
M2QwNDVkMDgzNjRiODczYzFmZC4uMzk5YmM3NDk0NjdlOWUyZGZkNDRiOWZjZWQyZjlhZjdjN2Q5
MWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjppc01lZGlhU291cmNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFU
Rk9STShXSU4pCiAgICAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1ZpZGVvVHJhY2tF
bmFibGVkID0gdHJ1ZTsKICNlbHNlCiAgICAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
c1ZpZGVvVHJhY2tFbmFibGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b25maWcuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCmluZGV4IGNhMzFmODg3YTg3MGMyNjEz
MWZmZTI2NDY4MTRiYmRlMzIyYzNmMTIuLmFkMzdlMjg1ZTkzNWZhMDkxZGE5ODdjZjY4OTg1ZTll
ZGRjYWY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NvbmZpZy5oCkBAIC0xMjAsMTUgKzEyMCw2IEBACiAjZGVmaW5lIFdURl9VU0Vf
TkVXX1RIRU1FIDEKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLQotLy8gQ2hyb21pdW0gdXNlcyB0aGlzIGZpbGUgaW5zdGVhZCBvZiBKYXZhU2NyaXB0
Q29yZS9jb25maWcuaCB0byBjb21waWxlCi0vLyBKYXZhU2NyaXB0Q29yZS93dGYgKGNocm9taXVt
IGRvZXNuJ3QgY29tcGlsZSB0aGUgcmVzdCBvZiBKU0MpLiBUaGVyZWZvcmUsCi0vLyB0aGlzIGRl
ZmluZSBpcyByZXF1aXJlZC4KLSNkZWZpbmUgV1RGX0NIQU5HRVMgMQotCi0jZW5kaWYgLyogUExB
VEZPUk0oQ0hST01JVU0pICovCi0KICNpZiBVU0UoQ0cpCiAjaWZuZGVmIENHRkxPQVRfREVGSU5F
RAogI2lmZGVmIF9fTFA2NF9fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXgg
ZDY2NzUwMDEyZTZmYjRmOWE3YTRjNDIwOTVmZTNiYWY2NDIwOGJhYi4uMzViYzUyZDY2ZGViNjE1
YjlhMzRmNzkxNWU4Y2EzNWUwOGE4NzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hl
LmNwcApAQCAtNTcsNyArNTcsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgIWRlZmluZWQoTkRFQlVHKQor
I2lmICFkZWZpbmVkKE5ERUJVRykKIAogI2RlZmluZSBQQ0xPRyguLi4pIExPRyhQYWdlQ2FjaGUs
ICIlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBtYWtlU3RyaW5nKF9fVkFfQVJHU19fKS51dGY4
KCkuZGF0YSgpKQogICAgIApAQCAtODMsMjkgKzgzLDggQEAgZW51bSBSZWFzb25GcmFtZUNhbm5v
dEJlSW5QYWdlQ2FjaGUgewogfTsKIENPTVBJTEVfQVNTRVJUKE51bWJlck9mUmVhc29uc0ZyYW1l
c0Nhbm5vdEJlSW5QYWdlQ2FjaGUgPD0gc2l6ZW9mKHVuc2lnbmVkKSo4LCBSZWFzb25GcmFtZUNh
bm5vdEJlSW5QYWdlQ2FjaGVEb2VzTm90Rml0SW5CaXRtYXApOwogCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi1zdGF0aWMgaW50IGluZGV4T2ZTaW5nbGVCaXQoaW50MzJfdCB2KQotewotICAgIGlu
dCBpbmRleCA9IDA7Ci0gICAgaWYgKHYgJiAweEZGRkYwMDAwKQotICAgICAgICBpbmRleCA9IDE2
OwotICAgIGlmICh2ICYgMHhGRjAwRkYwMCkKLSAgICAgICAgaW5kZXggKz0gODsKLSAgICBpZiAo
diAmIDB4RjBGMEYwRjApCi0gICAgICAgIGluZGV4ICs9IDQ7Ci0gICAgaWYgKHYgJiAweENDQ0ND
Q0NDKQotICAgICAgICBpbmRleCArPSAyOwotICAgIGlmICh2ICYgMHhBQUFBQUFBQSkKLSAgICAg
ICAgaW5kZXggKz0gMTsKLSAgICByZXR1cm4gaW5kZXg7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0o
Q0hST01JVU0pCi0KIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24oRnJh
bWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiB7Ci0jaWZkZWYgTkRFQlVHCi0gICAgVU5VU0VE
X1BBUkFNKGluZGVudExldmVsKTsKLSNlbmRpZgogICAgIFBDTE9HKCIrLS0tIik7CiAgICAgaWYg
KCFmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgUENMT0coIiAg
IC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsKQEAgLTI5NiwyNCArMjc1LDEx
IEBAIHN0YXRpYyB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAgICAg
ICAgICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiUGFnZUNhY2hl
LkZyYW1lUmVqZWN0UmVhc29uQnlQYWdlIiwgaSwgTnVtYmVyT2ZSZWFzb25zRnJhbWVzQ2Fubm90
QmVJblBhZ2VDYWNoZSk7CiAgICAgICAgIH0KICAgICB9Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgLy8gVGhpcyBzdHJhbmdlbHkgc3BlY2lmaWMgaGlzdG9ncmFtIGlzIHBhcnRpY3VsYXIg
dG8gY2hyb21pdW06IGFzIG9mIDIwMTItMDMtMTYsIHRoZSBGcmFtZUNsaWVudEltcGwgYWx3YXlz
IGRlbmllcyBjYWNoaW5nLCBzbwotICAgIC8vIG9mIHBhcnRpY3VsYXIgaW50ZXJlc3QgYXJlIHNv
bGl0YXJ5IHJlYXNvbnMgb3RoZXIgdGhhbiB0aGUgZnJhbWVSZWplY3RSZWFzb25zLiBJZiB3ZSBk
aWRuJ3QgZ2V0IHRvIHRoZSBDbGllbnREZW5pZXNDYWNoaW5nLCB3ZQotICAgIC8vIHRvb2sgdGhl
IGVhcmx5IGV4aXQgZm9yIHRoZSBib3JpbmcgcmVhc29uIE5vRG9jdW1lbnRMb2FkZXIsIHNvIHdl
IHNob3VsZCBoYXZlIG9ubHkgb25lIHJlYXNvbiwgYW5kIG5vdCB0d28uCi0gICAgLy8gRklYTUU6
IHJlbW92ZSB0aGlzIGhpc3RvZ3JhbSBhZnRlciBkYXRhIGlzIGdhdGhlcmVkLgotICAgIGlmIChm
cmFtZVJlYXNvbkNvdW50ID09IDIpIHsKLSAgICAgICAgQVNTRVJUKGZyYW1lUmVqZWN0UmVhc29u
cyAmICgxIDw8IENsaWVudERlbmllc0NhY2hpbmcpKTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
c2luZ2xlUmVhc29uRm9yUmVqZWN0aW5nRnJhbWVPdGhlclRoYW5DbGllbnREZW5pZXNDYWNoaW5n
ID0gZnJhbWVSZWplY3RSZWFzb25zICYgfigxIDw8IENsaWVudERlbmllc0NhY2hpbmcpOwotICAg
ICAgICBDT01QSUxFX0FTU0VSVChOdW1iZXJPZlJlYXNvbnNQYWdlc0Nhbm5vdEJlSW5QYWdlQ2Fj
aGUgPD0gMzIsIFJlYXNvblBhZ2VDYW5ub3RCZUluUGFnZUNhY2hlRG9lc05vdEZpdEluSW50MzIp
OwotICAgICAgICBjb25zdCBpbnQgaW5kZXggPSBpbmRleE9mU2luZ2xlQml0KHN0YXRpY19jYXN0
PGludDMyX3Q+KHNpbmdsZVJlYXNvbkZvclJlamVjdGluZ0ZyYW1lT3RoZXJUaGFuQ2xpZW50RGVu
aWVzQ2FjaGluZykpOwotICAgICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJh
dGlvbigiUGFnZUNhY2hlLkZyYW1lUmVqZWN0UmVhc29uQnlQYWdlV2hlblNpbmdsZUV4Y2x1ZGlu
Z0ZyYW1lQ2xpZW50IiwgaW5kZXgsIE51bWJlck9mUmVhc29uc1BhZ2VzQ2Fubm90QmVJblBhZ2VD
YWNoZSk7Ci0gICAgfQotI2VuZGlmCiAKICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1F
bnVtZXJhdGlvbigiUGFnZUNhY2hlLkZyYW1lUmVqZWN0UmVhc29uQ291bnRCeVBhZ2UiLCBmcmFt
ZVJlYXNvbkNvdW50LCAxICsgTnVtYmVyT2ZSZWFzb25zRnJhbWVzQ2Fubm90QmVJblBhZ2VDYWNo
ZSk7CiB9CiAKLSNlbmRpZiAKKyNlbmRpZiAvLyAhZGVmaW5lZChOREVCVUcpCiAKIFBhZ2VDYWNo
ZSogcGFnZUNhY2hlKCkKIHsKQEAgLTM3Miw3ICszMzgsNyBAQCBib29sIFBhZ2VDYWNoZTo6Y2Fu
Q2FjaGUoUGFnZSogcGFnZSkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgIWRlZmluZWQoTkRFQlVHKQor
I2lmICFkZWZpbmVkKE5ERUJVRykKICAgICBsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbihwYWdlKTsK
ICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCBmYWI4NzVlOGI5MmU1ZjhmOGFiZmQ0YTcxOTY1NjUxZWYwOTJhN2UzLi4xYzE2MDVhZTVl
ZmJjYzU1NmU0Njc4NzdiZjA0OWRmMmI5ZGQyMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtNTgsMTAgKzU4LDYgQEAKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5j
bHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMTg3LDcgKzE4Myw3IEBAIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmlu
ZyYgdHlwZSwgQ2FudmFzCiAjaWYgRU5BQkxFKFdFQkdMKSAgICAKICAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwogICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0
aW5ncy0+d2ViR0xFbmFibGVkKCkKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9S
TShHVEspICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShRVCkKKyNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oUVQpCiAgICAgICAgICYmIHNldHRp
bmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiAjZW5kaWYKICAgICAgICAgKSB7
CkBAIC0xOTUsMTEgKzE5MSw2IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgQ2FudmFzCiAgICAgICAgIC8v
IEFjY2VwdCB0aGUgbGVnYWN5ICJ3ZWJraXQtM2QiIG5hbWUgYXMgd2VsbCBhcyB0aGUgcHJvdmlz
aW9uYWwgImV4cGVyaW1lbnRhbC13ZWJnbCIgbmFtZS4KICAgICAgICAgYm9vbCBpczNkQ29udGV4
dCA9ICh0eXBlID09ICJ3ZWJraXQtM2QiKSB8fCAodHlwZSA9PSAiZXhwZXJpbWVudGFsLXdlYmds
Iik7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCi0gICAgICAgIC8v
IE5vdyB0aGF0IFdlYkdMIGlzIHJhdGlmaWVkLCB3ZSB3aWxsIGFsc28gYWNjZXB0ICJ3ZWJnbCIg
YXMgdGhlIGNvbnRleHQgbmFtZSBpbiBDaHJvbWUuCi0gICAgICAgIGlzM2RDb250ZXh0IHw9ICh0
eXBlID09ICJ3ZWJnbCIpOwotI2VuZGlmCi0KICAgICAgICAgaWYgKGlzM2RDb250ZXh0KSB7CiAg
ICAgICAgICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzM2QoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKQEAgLTUxMiwxMSArNTAzLDYgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6c2hvdWxkQWNjZWxlcmF0ZShjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogICAgIGlm
IChzaXplLndpZHRoKCkgKiBzaXplLmhlaWdodCgpIDwgc2V0dGluZ3MtPm1pbmltdW1BY2NlbGVy
YXRlZDJkQ2FudmFzU2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICBpZiAoIVdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y2FuQWNj
ZWxlcmF0ZTJkQ2FudmFzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCiAgICAg
cmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBiZjcxM2QzMTFkN2RhZjQ4MWRhYjk2OTk5
ZDA0OWMwM2U0ZDBhNWNiLi41NTAwNzA3NzNhOTE2N2ZmMTFjZjdhZmI1ZmVmNDcxNTk2ZWYxODY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpCiAj
ZGVmaW5lIERlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbnRlcnBvbGF0aW9uTWVkaXVtCiAj
ZWxpZiBVU0UoQ0cpCiAjZGVmaW5lIERlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbnRlcnBv
bGF0aW9uTG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAz
YTg3NmNkYTZiZTc0NmJjZmI1NTQyYzlhOWFjZjU2OTJiNTRlNzNhLi4yNjBkMGE2NzU5ZjUyYTY1
MzZkMDYwMzQwNzIyZWY1YTlhNGQ5M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTk0Miw3ICs5NDIsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Omxv
YWROZXh0U291cmNlQ2hpbGQoKQogICAgIGxvYWRSZXNvdXJjZShtZWRpYVVSTCwgY29udGVudFR5
cGUsIGtleVN5c3RlbSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBzdGF0aWMgS1VS
TCBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKICAgICAvLyBLVVJMIHNob3VsZCBoYXZlIGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEg
dXJsIGZyb20gYSBwYXRoLCBidXQgaXQgZG9lcyBub3QuIFRoaXMgZnVuY3Rpb24KQEAgLTk2MSw3
ICs5NjAsNiBAQCBzdGF0aWMgS1VSTCBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJl
c291cmNlKGNvbnN0IFN0cmluZyYgcGF0aCkKICNlbmRpZgogICAgIHJldHVybiB1cmw7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYg
aW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSkKIHsKQEAgLTk4NCw3ICs5ODIsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRS
ZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudAogICAg
IC8vIFRoZSByZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0gCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBO
RVRXT1JLX0xPQURJTkc7CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gSWYgdGhl
IHVybCBzaG91bGQgYmUgbG9hZGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGNhY2hlLCBwYXNzIHRo
ZSB1cmwgb2YgdGhlIGNhY2hlZCBmaWxlCiAgICAgLy8gdG8gdGhlIG1lZGlhIGVuZ2luZS4KICAg
ICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogY2FjaGVIb3N0ID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1
bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpOwpAQCAtOTk3LDE4ICs5OTQsMTUg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYgaW5pdGlh
bFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnQKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KLSNlbmRpZgogCiAgICAgLy8gU2V0IG1fY3VycmVudFNyYyAqYmVmb3JlKiBjaGFu
Z2luZyB0byB0aGUgY2FjaGUgdXJsLCB0aGUgZmFjdCB0aGF0IHdlIGFyZSBsb2FkaW5nIGZyb20g
dGhlIGFwcAogICAgIC8vIGNhY2hlIGlzIGFuIGludGVybmFsIGRldGFpbCBub3QgZXhwb3NlZCB0
aHJvdWdoIHRoZSBtZWRpYSBlbGVtZW50IEFQSS4KICAgICBtX2N1cnJlbnRTcmMgPSB1cmw7CiAK
LSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgIHVy
bCA9IGNyZWF0ZUZpbGVVUkxGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UocmVzb3VyY2UtPnBh
dGgoKSk7CiAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJj
ZSAtIHdpbGwgbG9hZCBmcm9tIGFwcCBjYWNoZSAtPiAlcyIsIHVybEZvckxvZ2dpbmdNZWRpYSh1
cmwpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlIC0gbV9jdXJyZW50U3JjIC0+ICVzIiwgdXJsRm9y
TG9nZ2luZ01lZGlhKG1fY3VycmVudFNyYykudXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZjY1MTFlYTk5ZTU1OTIwNGE3MWM2
N2UzYWE0YzdjYzFjZjZkY2QyZS4uMWU3MWNmNmM2NGM0YTI4ZmI4NDBiM2Y0NDkyYjU4M2ExMzJh
ZDhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTEw
NjIsNyArMTA2Miw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKICAgICBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAotI2lmICghUExBVEZPUk0oV0lOKSAmJiAhKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSkpIHx8IE9TKFdJTkNFKQorI2lmICFQTEFURk9S
TShXSU4pIHx8IE9TKFdJTkNFKQogYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6cGxhdGZvcm1IYW5k
bGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgY29uc3QgUGFnZSog
cGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsKQEAgLTEyOTksNyArMTI5OSw3IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
ICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlz
dEluZGV4QXRPZmZzZXQodG9JbnRTaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0
SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkg
ewotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4p
KQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRl
KGxpc3RJbmRleCwgbW91c2VFdmVudC0+bWV0YUtleSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgp
KTsKICNlbHNlCiAgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZShsaXN0SW5kZXgs
IG1vdXNlRXZlbnQtPmN0cmxLZXkoKSwgbW91c2VFdmVudC0+c2hpZnRLZXkoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAppbmRleCBjZmRmNTBiMWQxMjViYTQ0YWVhYzc4Yzhj
ODdlMWQyMTdhZDhlYjA2Li5iNDQ2NGMzMWU4Yjc4YWJjMDMyMWE4ZjU4MDc3M2Y3MWJiOGIwYTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTE2Niw3ICsxNjYsNiBA
QCB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ICAgIGlmICghdGFyZ2V0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgIVBMQVRGT1JNKENI
Uk9NSVVNKQogICAgIGlmIChIVE1MVmlkZW9FbGVtZW50KiB2aWRlbyA9IGFuY2VzdG9yVmlkZW9F
bGVtZW50KHRhcmdldE5vZGUpKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50KSB7CiAgICAgICAgICAgICBpZiAoIXZpZGVvLT5jYW5QbGF5KCkp
IHsKQEAgLTE4MCw3ICsxNzksNiBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotI2Vu
ZGlmCiAKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50
ICYmIGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkgewogICAgICAgICBIVE1MVmlkZW9FbGVtZW50
KiB2aWRlbyA9IGRlc2NlbmRlbnRWaWRlb0VsZW1lbnQodGFyZ2V0Tm9kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKaW5kZXggNTliMmY2YzYyNzQz
NDk4YzQ2ZmQ0YWZkZGE4NGMxYmQzMjU2YmNiNi4uM2IyYTAwZTM2YzFhNzQ3YzBjMDlkZWM1NTc0
MDk3MDZiMjcwZWE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmNwcApAQCAtMTE0LDExICsxMTQsNyBAQCBib29sIEVYVERyYXdCdWZmZXJzOjpzYXRp
c2ZpZXNXZWJHTFJlcXVpcmVtZW50cyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIHdlYmdsQ29udAog
ICAgIFBsYXRmb3JtM0RPYmplY3QgZmJvID0gY29udGV4dC0+Y3JlYXRlRnJhbWVidWZmZXIoKTsK
ICAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBmYm8pOwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgY29uc3QgdW5zaWduZWQg
Y2hhciogYnVmZmVyID0gMDsgLy8gQ2hyb21pdW0gZG9lc24ndCBhbGxvdyBpbml0IGRhdGEgZm9y
IGRlcHRoL3N0ZW5jaWwgdGV0eHVyZXMuCi0jZWxzZQogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg
YnVmZmVyWzRdID0geyAwLCAwLCAwLCAwIH07IC8vIHRleHR1cmVzIGFyZSByZXF1aXJlZCB0byBi
ZSBpbml0aWFsaXplZCBmb3Igb3RoZXIgcG9ydHMuCi0jZW5kaWYKICAgICBib29sIHN1cHBvcnRz
RGVwdGggPSAoY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQ0hST01JVU1f
ZGVwdGhfdGV4dHVyZSIpCiAgICAgICAgIHx8IGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3Vw
cG9ydHMoIkdMX09FU19kZXB0aF90ZXh0dXJlIikKICAgICAgICAgfHwgY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQVJCX2RlcHRoX3RleHR1cmUiKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCAzN2QwYjQ5MWQ5NTA1NDQ2OWIzZTQwYjBhOGU2Yjg5NzI5N2UxZDVlLi45YTI4ODBlOGViYjNj
Y2NkZjE0NmUzMGNmOGQyMmM4MzY3ZTdlNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQyOCwxMSArNDI4LDcg
QEAgUGFzc093blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlKEhUTUxDYW52YXNFbGVtZW4KICAgICB9CiAKICAgICBhdHRyaWJ1dGVzLm5vRXh0
ZW5zaW9ucyA9IHRydWU7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgYXR0cmlidXRlcy5z
aGFyZVJlc291cmNlcyA9IHRydWU7Ci0jZWxzZQogICAgIGF0dHJpYnV0ZXMuc2hhcmVSZXNvdXJj
ZXMgPSBmYWxzZTsKLSNlbmRpZgogICAgIGF0dHJpYnV0ZXMucHJlZmVyRGlzY3JldGVHUFUgPSB0
cnVlOwogICAgIGF0dHJpYnV0ZXMudG9wRG9jdW1lbnRVUkwgPSBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS0+dXJsKCk7CiAKQEAgLTQ1MCwxMyArNDQ2LDYgQEAgUGFzc093blB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKEhUTUxDYW52YXNFbGVt
ZW4KICAgICBPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiByZW5kZXJpbmdDb250ZXh0ID0g
YWRvcHRQdHIobmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dChjYW52YXMsIGNvbnRleHQsIGF0dHJp
YnV0ZXMpKTsKICAgICByZW5kZXJpbmdDb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGlmICghcmVuZGVyaW5nQ29udGV4dC0+bV9kcmF3aW5n
QnVmZmVyKSB7Ci0gICAgICAgIGNhbnZhcy0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yRXZlbnQsIGZh
bHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdlYkdMIGNvbnRleHQuIikpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIHJldHVybiByZW5kZXJpbmdD
b250ZXh0LnJlbGVhc2UoKTsKIH0KIApAQCAtNDgzLDEzICs0NzIsNiBAQCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCogcGFzc2Vk
Q2FudmFzLCBQYQogICAgIG1fbWF4Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNb
MV0gPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WF9WSUVXUE9SVF9ESU1TLCBtX21heFZpZXdwb3J0RGltcyk7CiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICAvLyBDcmVhdGUgdGhlIERyYXdpbmdCdWZmZXIgYW5kIGluaXRpYWxpemUgdGhl
IHBsYXRmb3JtIGxheWVyLgotICAgIERyYXdpbmdCdWZmZXI6OlByZXNlcnZlRHJhd2luZ0J1ZmZl
ciBwcmVzZXJ2ZSA9IG1fYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPyBEcmF3aW5n
QnVmZmVyOjpQcmVzZXJ2ZSA6IERyYXdpbmdCdWZmZXI6OkRpc2NhcmQ7Ci0gICAgRHJhd2luZ0J1
ZmZlcjo6QWxwaGFSZXF1aXJlbWVudCBhbHBoYSA9IG1fYXR0cmlidXRlcy5hbHBoYSA/IERyYXdp
bmdCdWZmZXI6OkFscGhhIDogRHJhd2luZ0J1ZmZlcjo6T3BhcXVlOwotICAgIG1fZHJhd2luZ0J1
ZmZlciA9IERyYXdpbmdCdWZmZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIGNsYW1wZWRDYW52
YXNTaXplKCksIHByZXNlcnZlLCBhbHBoYSk7Ci0jZW5kaWYKLQogICAgIGlmIChtX2RyYXdpbmdC
dWZmZXIpCiAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+YmluZCgpOwogCkBAIC03NjQsMTEgKzc0
Niw2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0NhbnZhcygpCiAgICAgaWYgKG1fY29udGV4dC0+bGF5ZXJDb21wb3NpdGVkKCkgJiYgIW1fYXR0
cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5wYWlu
dENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoY2FudmFzKCktPmJ1ZmZlcigpKTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAg
IGlmIChtX2RyYXdpbmdCdWZmZXIpCi0gICAgICAgICAgICBtX2RyYXdpbmdCdWZmZXItPnBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhjYW52YXMoKS0+YnVmZmVyKCkpOwotI2VuZGlmCi0K
ICAgICAgICAgY2FudmFzKCktPm1ha2VQcmVzZW50YXRpb25Db3B5KCk7CiAgICAgfSBlbHNlCiAg
ICAgICAgIGNhbnZhcygpLT5jbGVhclByZXNlbnRhdGlvbkNvcHkoKTsKQEAgLTQ2OTIsMTEgKzQ2
NjksNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Zm9yY2VSZXN0b3JlQ29udGV4dCgp
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICBpZiAobV9kcmF3aW5nQnVmZmVyKQotICAgICAgICByZXR1cm4gbV9kcmF3
aW5nQnVmZmVyLT5wbGF0Zm9ybUxheWVyKCk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBtX2NvbnRl
eHQtPnBsYXRmb3JtTGF5ZXIoKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAwNTc0OTU4ZGJj
MDRlZWQ1MmY2ZDc5M2RiNDVkYzA3MzBmNWY5NTBhLi40OTY3MjllNTAyZTQ5ZDA0ZDM4N2RjMzk4
OGFhMTc1MjY1YjIyZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzksMTAgKzc5LDYgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0j
aWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAicGxhdGZvcm0vY2hyb21pdW0vVHJhY2VF
dmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IHJlcXVlc3RBbmltYXRpb25GcmFtZUV2ZW50TmFtZSA9ICJyZXF1ZXN0QW5pbWF0
aW9uRnJhbWUiOwpAQCAtNTI4LDEwICs1MjQsNiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRGlzcGF0Y2hYSFJMb2FkRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydQog
CiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQxKCJpbnN0
cnVtZW50YXRpb24iLCBJbnN0cnVtZW50YXRpb25FdmVudHM6OlBhaW50LCBJbnN0cnVtZW50YXRp
b25FdmVudEFyZ3VtZW50czo6UGFnZUlkLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcg
bG9uZz4ocmVuZGVyZXItPmZyYW1lKCktPnBhZ2UoKSkpOwotI2VuZGlmCi0KICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFBh
aW50KHJlbmRlcmVyLT5mcmFtZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBkMDM5ZTg2OTUwZDFlZjc2M2Zi
OWRkNGQxZjYxZmZmZjBmMjJjOTI1Li4wNzI4YWFlZTlmN2FiNWQ3YjA1YTA0ZjVkYjNiNjcxZDky
MTZhNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCkBAIC0yMjUsOSArMjI1LDYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpzdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCog
cmUKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRCZWdpbkZyYW1lKCkKIHsKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgid2Via2l0Iiwg
SW5zdHJ1bWVudGF0aW9uRXZlbnRzOjpCZWdpbkZyYW1lKTsKLSNlbmRpZgogICAgIG1fcGVuZGlu
Z0ZyYW1lUmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3Jk
KHRpbWVzdGFtcCgpLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKaW5kZXggMTc1YTVjNWE2N2RmMzE3YzA2ZmMzMDI0OGJjODk1YTIyODVhYzE3ZS4uMDNk
NzBkNDEzNTNkMjhmMjIzMzdiNjNhODQ2ZDQyNzhjYmIyYWY1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zNDUsMTMgKzM0NSwxMCBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGZpeCB0aGUgZGVz
aWduIHRvIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgYSBwbGF0Zm9ybSBpZmRlZiBoZXJlCi0jaWYg
IVBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmIChtX3JlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBS
ZXR1cm5DYWNoZURhdGFEb250TG9hZCAmJiAhbV9tYWluUmVzb3VyY2UtPndhc0NhbmNlbGVkKCkp
IHsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5S
ZXNvdXJjZUxvYWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgbWFp
blJlY2VpdmVkRXJyb3IobV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAppbmRleCAxODY2NDJmODU2
Y2YwN2E5Njg4N2IwZTg3OTIwNTg1MjM0MmQ5NmM2Li5iZmY0ZjkyMzliNTA0NWViMzg5MWVlMzBm
MDE0ZTExMjA0NjE5NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3lu
Y0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYg
IVBMQVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQkxBQ0tC
RVJSWSkgJiYgIVBMQVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
QkxBQ0tCRVJSWSkgJiYgIVBMQVRGT1JNKEVGTCkKIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2
YWlsYWJsZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5oCmluZGV4IGVlNzk5ZGNkZDc5ZGM1MDkyYjFkMDgwYzdlOTg4M2ZiNzkyNjg3
YjkuLmVmMmRiYmJkZjJmYTA4ZWY3NzY2OGE1OWM5ODY4YjEzZTk4MjgwYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaApAQCAtOTUsOCArOTUsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAvLyBLZWVwIHRoaXMgaW4gc3luYyB3
aXRoIHRoZSBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiB0eXBlZGVmCiAgICAgICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwotI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CiAjZWxz
ZQogICAgICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247
CiAjaWYgT1MoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5o
CmluZGV4IDQ4Nzg2NjNiNTZkYzk1NzdmYzc1YTE0MWVmNzYxODE2NGExMjMwNDYuLjJlM2NhZWFl
ZDA3YTMxZmI4Yjg3NTA5ZWI5M2M5NjU1YWE1ZGNiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xOTksMjAgKzE5OSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBjaGVja2VkOwogICAgICAgICBib29sIGVuYWJsZWQ7CiAgICAg
fTsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHN0cnVjdCBQbGF0Zm9ybU1lbnVJdGVt
RGVzY3JpcHRpb24gewotICAgICAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24oKQotICAg
ICAgICAgICAgOiB0eXBlKEFjdGlvblR5cGUpCi0gICAgICAgICAgICAsIGFjdGlvbihDb250ZXh0
TWVudUl0ZW1UYWdOb0FjdGlvbikKLSAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAgICAg
ICAgICAgICwgZW5hYmxlZCh0cnVlKSB7IH0KLSAgICAgICAgQ29udGV4dE1lbnVJdGVtVHlwZSB0
eXBlOwotICAgICAgICBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247Ci0gICAgICAgIFN0cmluZyB0
aXRsZTsKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4gc3ViTWVudUl0ZW1zOwotICAg
ICAgICBib29sIGNoZWNrZWQ7Ci0gICAgICAgIGJvb2wgZW5hYmxlZDsKLSAgICB9OwogI2Vsc2UK
ICAgICB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA2NTUxMjUyNzYyMGUyNThhYTVjNjA5NWI1NWU2
Zjg2MGFiYTU4NTEzLi44OWE4ZTE3MjQ0NzBlYjM0NjA0Mzg3NzhkMDExMzVhNDk3NTY0MDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIEhJQ09O
IEhDVVJTT1I7CiAjZW5kaWYKIAogLy8gTG9va3MgbGlrZSBpdCdzIGp1c3QgUExBVEZPUk0oV1gp
IGFuZCBQTEFURk9STShCTEFDS0JFUlJZKSBzdGlsbCBub3QgdXNpbmcgdGhpcz8KLSNpZiBQTEFU
Rk9STShXSU4pIHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShX
SU4pIHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwg
UExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0xBWllfTkFUSVZFX0NVUlNPUiAxCiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCmluZGV4IDRkMzAyZWI4YmFkODk5
Njc3NDlkZDVlY2VmYzBkNzY0NWNjMjY4NzQuLjk3NmI5MDgxNmRkYmFkYjg3MmM3YmIxOTI0Njhl
YjE5ZGRlYmY0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAKQEAgLTUzLDcg
KzUzLDYgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50
JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRG
T1JNKENIUk9NSVVNKQogaW50IERyYWdEYXRhOjptb2RpZmllcktleVN0YXRlKCkgY29uc3QKIHsK
ICAgICBib29sIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXk7CkBAIC03Nyw3ICs3
Niw2IEBAIFN0cmluZyBEcmFnRGF0YTo6ZHJvcHBlZEZpbGVTeXN0ZW1JZCgpIGNvbnN0CiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogI2VuZGlmCi0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCBkNjM5NjkzMThiMGE3YWNh
OTUzNWE0NWFiNWRmODU3ZGFlNDMzM2JjLi5mZThjZGJjODk2ZTAxNTlkMDMwZDU2OWU5MzQ1Yjg5
YzU0YmZhYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAgLTYxLDggKzYxLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGF0YU9iamVjdEd0azsKIH0KIHR5cGVkZWYg
V2ViQ29yZTo6RGF0YU9iamVjdEd0ayogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQTEFURk9STShDSFJP
TUlVTSkKLSNpbmNsdWRlICJEcmFnRGF0YVJlZi5oIgogI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQ
TEFURk9STShCTEFDS0JFUlJZKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBkZDk3MGQyOTM2OTJlOTkzODlhYmZk
MWEzZmZmODc0YzQ2NTBhODNhLi41ODFhYjI0MzhhZjk0ZDkyYmNlZTQ3OTg5Y2IwODA5NTAxZWFm
ZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNDIsOCArNDIsNiBAQCBR
VF9FTkRfTkFNRVNQQUNFCiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7CiAjZWxp
ZiBQTEFURk9STShXWCkKIGNsYXNzIHd4RHJhZ0ltYWdlOwotI2VsaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBl
ZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAxODIzZmFiYmViNmQw
YWVmZjE4MDBlNDQxMmI5YjMyZTUyZjRiNDQ2Li40M2UwMWYxNGQxNzY0NDRiOTk3NWJiMmYwZjJk
NDA3MTEwNGM5OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCkBAIC0yODIsMTIgKzI4MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5n
IHNuYXBzaG90dGVkUGx1Z0luTGFiZWxUaXRsZSgpOwogICAgIFN0cmluZyBzbmFwc2hvdHRlZFBs
dWdJbkxhYmVsU3VidGl0bGUoKTsKIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKICNkZWZpbmUg
V0VCX1VJX1NUUklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJp
bmcoc3RyaW5nKQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3Jp
cHRpb24pIFdlYkNvcmU6OmxvY2FsaXplZFN0cmluZyhrZXkpCiAKICAgICBTdHJpbmcgbG9jYWxp
emVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSk7Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggMDhiNjg2NWM5YjM3
MDdmZGFlMTE3MGQ4N2FmZWY4NTQ1Zjg1ODNlNy4uZGI2ZjJlZjQ4MzhiOGY5MjMyNDdlNDYyMWFl
MTU0ZjQ4ZWNjYjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTAy
LDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRv
Y3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCBhbGxvd1BsYWlu
VGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogICAgIFN0cmluZyBwbGFpblRleHQoRnJhbWUq
ID0gMCk7CiAgICAgCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKICAgICBib29s
IGlzU2VsZWN0aW9uTW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uTW9kZShib29s
KTsKICNlbHNlCkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKICAgICBIV05EIG1fb3duZXI7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQ
TEFURk9STShRVCkKICAgICBib29sIG1fc2VsZWN0aW9uTW9kZTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FeHBvcnRNYWNyb3MuaAppbmRleCA5YzI2NGMy
MDlmZjkxNzEwOTQ2M2Q3OWUzMDA5ZWY5ZDEzZDI5Y2MyLi44YjNjODliNTc5MmIxNzg1ZTk1MzU2
NDkyYzMzYzVhNGE1YzNlZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXhwb3J0TWFjcm9zLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogI2Vsc2UgLy8gIVVTRShFWFBP
UlRfTUFDUk9TKQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19XWF9fKSAmJiAhQ09NUElMRVIoR0NDKQorI2lmIE9TKFdJTkRPV1Mp
ICYmICFkZWZpbmVkKEJVSUxESU5HX1dYX18pICYmICFDT01QSUxFUihHQ0MpCiAKICNpZiBkZWZp
bmVkKFdFQkNPUkVfSVNfTElOS0VEX0lOX1NBTUVfQklOQVJZKQogI2RlZmluZSBXRUJLSVRfRVhQ
T1JUREFUQSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDZiYWFkOWE2NDYzOTc5MWFhMzIw
MGQ4MzI3MjE3MDFmMjEyMDQ3YTMuLjMwYjU5ZmVmOWFlZmRjYWY2NzY2OGJmZjI1YzkzMTA0MTRi
N2ZkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb24uaApAQCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQgewpAQCAtNzYsMzYgKzcy
LDI0IEBAIHByaXZhdGU6CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3
aWxsRGVjb2RlSW1hZ2UoY29uc3QgU3RyaW5nJiBpbWFnZVR5cGUpCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfQkVHSU4xKENhdGVnb3J5TmFtZSwgSW1hZ2VEZWNv
ZGVFdmVudCwgSW1hZ2VUeXBlQXJndW1lbnQsIFRSQUNFX1NUUl9DT1BZKGltYWdlVHlwZS5hc2Np
aSgpLmRhdGEoKSkpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fQ0xJRU5UX09SX05P
VF9NQUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsRGVjb2RlSW1hZ2UoaW1hZ2VUeXBl
KTsKIH0KIAogaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZERlY29kZUlt
YWdlKCkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9FTkQwKENh
dGVnb3J5TmFtZSwgSW1hZ2VEZWNvZGVFdmVudCk7Ci0jZW5kaWYKICAgICBGQVNUX1JFVFVSTl9J
Rl9OT19DTElFTlRfT1JfTk9UX01BSU5fVEhSRUFEKCk7CiAgICAgbV9jbGllbnQtPmRpZERlY29k
ZUltYWdlKCk7CiB9CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxs
UmVzaXplSW1hZ2UoYm9vbCBzaG91bGRDYWNoZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkK
LSAgICBUUkFDRV9FVkVOVF9CRUdJTjEoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50LCBD
YWNoZWRBcmd1bWVudCwgc2hvdWxkQ2FjaGUpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fQ0xJRU5UX09SX05PVF9NQUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsUmVzaXpl
SW1hZ2Uoc2hvdWxkQ2FjaGUpOwogfQogCiBpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6ZGlkUmVzaXplSW1hZ2UoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRS
QUNFX0VWRU5UX0VORDAoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50KTsKLSNlbmRpZgog
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVF9PUl9OT1RfTUFJTl9USFJFQUQoKTsKICAgICBt
X2NsaWVudC0+ZGlkUmVzaXplSW1hZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oCmluZGV4IDc3MjYxNGUzMmJjNzNiZWY2MThj
YTA1NTBmYzg1YjE0ZTAyMWFiOGIuLmJhZTMzOWFkMWE3NGU3Y2E4ZDhlYTQ2ODRiNTQzMGI4ZDk3
MzdkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24uaApAQCAtMzQsOCArMzQsNiBAQCBPQkpDX0NMQVNTIE5TTXV0YWJsZUFycmF5Owog
dHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xh
c3Mgd3hNZW51OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDkgKzQ4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgR3RrTWVudSogUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb247CiAjZWxpZiBQTEFURk9STShXWCkKICAgICB0eXBlZGVmIHd4TWVudSogUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb247Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBjbGFzcyBDb250
ZXh0TWVudUl0ZW07Ci0gICAgdHlwZWRlZiBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiog
UGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZv
cm1NZW51RGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAppbmRleCBmMGQ2ODkzYTIxYzU2ODNmODFl
NWE4MmRhNWFiNjhmNTIxM2QxYzlhLi5kMjFiODRiZDE4NTlkOTFiMWQ4ZDZhNDgxOWYwY2NmOTJi
Y2E2MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5oCkBAIC0zNywxMyArMzcsNiBAQAogT0JKQ19DTEFTUyBXZWJTcGVlY2hT
eW50aGVzaXNXcmFwcGVyOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLW5hbWVz
cGFjZSBXZWJLaXQgewotY2xhc3MgV2ViU3BlZWNoU3ludGhlc2l6ZXI7Ci1jbGFzcyBXZWJTcGVl
Y2hTeW50aGVzaXplckNsaWVudDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGVudW0gU3BlZWNoQm91bmRhcnkgewpAQCAtOTMsMTAgKzg2LDYgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXI+IG1f
cGxhdGZvcm1TcGVlY2hXcmFwcGVyOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0g
ICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXI+IG1fd2ViU3BlZWNoU3ludGhl
c2l6ZXI7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ+IG1f
d2ViU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7Ci0jZW5kaWYKIH07CiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVu
dC5oCmluZGV4IDk0ZGI5ZjcwMDk5OGQ2NzlhODM3Y2E3MzIxM2FkMTFlMDA1MGViOTcuLjUzZGNl
YTRiMjQ4YzFkYTFmY2Q5MmFjNzY2N2ZlOThmZDU2NmVjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgfTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBlbnVtIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHsKICAg
ICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lICAgICAgICA9IDAsCiAgICAgICAgIFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCkBAIC04MiwxMCArODIs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1koMCkK
ICAgICAgICAgICAgICwgbV9ncmFudWxhcml0eShTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkKICAg
ICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCi0jaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhmYWxzZSkKLSNlbmRpZgotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAg
ICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAg
ICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAg
ICAgICAgICwgbV9zY3JvbGxDb3VudCgwKQpAQCAtMTA1LDEwICsxMDMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1kod2hlZWxUaWNrc1kpCiAgICAg
ICAgICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiAgICAgICAgICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oQ0hST01JVU0pCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgLCBtX2hhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMoZmFsc2UpCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICAgICAgICAgICAgICwgbV9waGFz
ZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fbW9tZW50dW1Q
aGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fc2Nyb2xs
Q291bnQoMCkKQEAgLTE1MSwxMSArMTQ3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBleHBsaWNpdCBQbGF0Zm9ybVdoZWVsRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVl
bCopOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAgICAgICAg
IHZvaWQgc2V0SGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhib29sIGIpIHsgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzID0gYjsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9waGFzZTsgfQogICAgICAgICBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1
bVBoYXNlOyB9CiAgICAgICAgIHVuc2lnbmVkIHNjcm9sbENvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxDb3VudDsgfQpAQCAtMTg0LDEwICsxNzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGZsb2F0IG1fd2hlZWxUaWNrc1k7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IG1fZ3JhbnVsYXJpdHk7CiAgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2U7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fcGhhc2U7CiAg
ICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9tZW50dW1QaGFzZTsKICAgICAgICAg
dW5zaWduZWQgbV9zY3JvbGxDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAppbmRleCA1Nzc0MmU2ZmIwYjQzMzlmYzI0MzQxMWEyMDI1NGFkMzIxMzQ0YjFk
Li43MjlhZjc1NzJmODc5NGE1OTdmZDk0MGMwOTA1Y2Y2NDQyNDVkNzZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFFTkFCTEUoU01P
T1RIX1NDUk9MTElORykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyNp
ZiAhRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiBQYXNzT3duUHRyPFNjcm9sbEFuaW1hdG9yPiBT
Y3JvbGxBbmltYXRvcjo6Y3JlYXRlKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKSk7
CkBAIC05MywxMiArOTMsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNl
OwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhEQVJXSU4pCi0gICAgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSA/IFNj
cm9sbEJ5UHJlY2lzZVBpeGVsIDogU2Nyb2xsQnlQaXhlbDsKLSNlbHNlCiAgICAgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVsOwotI2VuZGlmCi0KICAgICBJbnRT
aXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1TY3Jv
bGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICBJ
bnRTaXplIG1heEJhY2t3YXJkU2Nyb2xsRGVsdGEgPSBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQ
b3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+bWluaW11bVNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgaWYgKChkZWx0YVggPCAwICYmIG1heEZvcndhcmRTY3JvbGxEZWx0YS53aWR0aCgpID4gMCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDI4ODlmNDIwNDY0
OGQxYzkwZWQzZTAzOTQwOThjMmQxYmIxNjYzMDguLmYzMTU2MTg3NmI0M2FlZjVkZTgxMjhkN2Mz
YTU5NGZjYmYxNTA3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykg
fHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlKSB7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmNwcAppbmRleCAyNDQyYTk2MmFiMjUxMDFkOTAyMDVmNGU0ZGI4NmRmZDVl
YmJjZDg5Li41NjA3NTI0NDIyMTg1ZmEzZWVhYjlmNDc5MmIxZjVlMWRiOTBlZWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTQzLDEw
ICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogI2luY2x1ZGUgIlBs
YXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAjZW5kaWYKQEAgLTQzNiwxMCArNDMyLDYgQEAgYm9vbCBT
Y3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXIKICAgICBpZiAoIW1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1h
dG9yRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmll
bnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogCi0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsQW5pbWF0b3JOb25l
OjpzY3JvbGwiKTsKLSNlbmRpZgotCiAgICAgLy8gRklYTUU6IGdldCB0aGUgdHlwZSBwYXNzZWQg
aW4uIE1vdXNlV2hlZWwgY291bGQgYWxzbyBiZSBieSBsaW5lLCBidXQgc2hvdWxkIHN0aWxsIGhh
dmUgZGlmZmVyZW50CiAgICAgLy8gYW5pbWF0aW9uIHBhcmFtZXRlcnMgdGhhbiB0aGUga2V5Ym9h
cmQuCiAgICAgUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwpAQCAtNTMxLDEwICs1MjMsNiBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmlt
YXRvck5vbmU+KiB0aW1lcikKIAogdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRp
bWVyRmlyZWQoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgi
d2Via2l0IiwgIlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCIpOwotI2Vu
ZGlmCi0KICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwogICAgIGRvdWJsZSBkZWx0YVRvTmV4dEZyYW1lID0gY2VpbCgoY3VycmVudFRp
bWUgLSBtX3N0YXJ0VGltZSkgKiBrRnJhbWVSYXRlKSAvIGtGcmFtZVJhdGUgLSAoY3VycmVudFRp
bWUgLSBtX3N0YXJ0VGltZSk7CiAgICAgY3VycmVudFRpbWUgKz0gZGVsdGFUb05leHRGcmFtZTsK
QEAgLTU1NCw5ICs1NDIsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGlt
ZXJGaXJlZCgpCiAgICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gZmFsc2U7CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIlNjcm9s
bEFuaW1hdG9yTm9uZTo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkIik7Ci0jZW5kaWYKICAgICBub3Rp
ZnlQb3NpdGlvbkNoYW5nZWQoRmxvYXRTaXplKCkpOwogCiAgICAgaWYgKCFjb250aW51ZUFuaW1h
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMGJhMDZkMTY0
Y2JkZGE1YmRlZDMwMWQ0MzQ4NTg5YjEzMDFmYWIyOS4uOTliZTRlMDMyMzVhODk2YzA2NTRlODE2
MjZmOTViNzQ2NDQ4NmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTExNTYsMTQgKzExNTYsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJl
YXMoKQogICAgIEludFJlY3QgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdDsKICAgICBJbnRSZWN0IHZl
cnRpY2FsT3ZlcmhhbmdSZWN0OwogICAgIGNhbGN1bGF0ZU92ZXJoYW5nQXJlYXNGb3JQYWludGlu
Zyhob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShDSFJPTUlVTSkgJiYgRU5BQkxF
KFJVQkJFUl9CQU5ESU5HKQotICAgIGlmIChHcmFwaGljc0xheWVyKiBvdmVyaGFuZ0xheWVyID0g
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCkpIHsKLSAgICAgICAgYm9vbCBoYXNPdmVyaGFuZ0FyZWEg
PSAhaG9yaXpvbnRhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkgfHwgIXZlcnRpY2FsT3ZlcmhhbmdS
ZWN0LmlzRW1wdHkoKTsKLSAgICAgICAgb3ZlcmhhbmdMYXllci0+c2V0RHJhd3NDb250ZW50KGhh
c092ZXJoYW5nQXJlYSk7Ci0gICAgICAgIGlmIChoYXNPdmVyaGFuZ0FyZWEpCi0gICAgICAgICAg
ICBvdmVyaGFuZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICB9Ci0jZW5kaWYKICAgICBp
ZiAoIWhvcml6b250YWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgpKQogICAgICAgICBob3N0V2luZG93
KCktPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGhvcml6b250YWxPdmVyaGFuZ1JlY3Qs
IGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogICAgIGlmICghdmVydGljYWxPdmVyaGFuZ1JlY3QuaXNF
bXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IGIwMzUyNWY1YWEyZTY3NzBiZTA5ODZhNjlmYjgzMzBhNWM5ZTRjZDkuLjA4YTYyNmI3Y2M2OGRl
NmNiMDkxOGYxM2NlYWY4ZGFkOTdiNGNjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTQxLDEwICs0MSw2IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNTY3JvbGxhYmxlQXJlYSB7CkBAIC0xNDUsMTAgKzE0
MSw2IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6Om5vdGlmeVNjcm9sbFBvc2l0aW9uQ2hhbmdlZChj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uQ2hhbmdlZCIpOwotI2VuZGlmCi0KICAgICBJbnRQb2ludCBvbGRQb3NpdGlv
biA9IHNjcm9sbFBvc2l0aW9uKCk7CiAgICAgLy8gVGVsbCB0aGUgZGVyaXZlZCBjbGFzcyB0byBz
Y3JvbGwgaXRzIGNvbnRlbnRzLgogICAgIHNldFNjcm9sbE9mZnNldChwb3NpdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRleCBiYjFjZTU3OTQyMGU3NjMyZGNhMjM5
NjU4OWI2OTZiYzM4ZWIxNzE4Li5kYjkyNTUyYzYzYjFiMDY4MDhlMjk3ZWNiM2ZmOTkzZmVjMzY5
Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmIChQTEFURk9STShDSFJPTUlVTSkgJiYg
KE9TKFVOSVgpICYmICFPUyhEQVJXSU4pKSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JN
KEdUSykKIC8vIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iIGFmZmVjdHMgdGhl
IGFwcGVhcmFuY2Ugb2YgdGhlIHN0ZXBwZXJzLCBzbwogLy8gd2hlbiB0aGUgdGh1bWIgbW92ZXMs
IHdlIGhhdmUgdG8gaW52YWxpZGF0ZSB0aGVtIGZvciBwYWludGluZy4KICNkZWZpbmUgVEhVTUJf
UE9TSVRJT05fQUZGRUNUU19CVVRUT05TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJl
VGV4dElucHV0LmNwcAppbmRleCAwNmUxYzg2NzAxMmU4MGFhZmIyNWUxMjkxZWIyZDVjZDFiMGI0
MGVmLi44ZjQzM2Q2ZjNlY2ZlYzBiNTI4MDk4MGY2ZWNhM2VlZmViYzBmMzA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAKQEAgLTI0LDI5ICsyNCwyMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IG1vdmVkIHRvIFdlYktpdCwgYmVjYXVzZSBicm93c2VyIHByb2Nlc3MgbmVlZHMgdG8gdHJhY2sg
c2VjdXJlIGlucHV0IHN0YXRlIGFueXdheSB0byBtYW5pcHVsYXRlIGlucHV0IGNvbnRleHRzLgot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiU2VjdXJlVGV4
dElucHV0LmgiCiAKLSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgZW5hYmxlU2VjdXJlVGV4
dElucHV0KCkKIHsKLSAgICBpZiAoSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0gICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKIHZvaWQgZGlzYWJsZVNlY3VyZVRleHRJbnB1dCgpCiB7Ci0gICAgaWYgKCFJ
c1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBEaXNhYmxl
U2VjdXJlRXZlbnRJbnB1dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oCmluZGV4IDYwOGFh
NjM4ZTRkMzM5MmUyMTE1NjRjNmYzMDRmNDdjOGRiYWQzNTkuLjgzOWFiYWM5ZWIyODJmYWZiZmQ2
YWE0MGYzZTIzYWE1N2U0YmQyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyZVRleHRJbnB1dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRl
eHRJbnB1dC5oCkBAIC0zOCwxMSArMzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGVu
YWJsZVNlY3VyZVRleHRJbnB1dCgpOwogdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElucHV0KCk7CiAK
LSNpZiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQotaW5saW5lIHZvaWQgZW5h
YmxlU2VjdXJlVGV4dElucHV0KCkgeyB9Ci1pbmxpbmUgdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElu
cHV0KCkgeyB9Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
U2VjdXJlVGV4dElucHV0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1
ZGRlblRlcm1pbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5h
dGlvbi5oCmluZGV4IGI2NmFlMWFiYzdkODAwM2M3MDNkZWMwNGFjYzMzOWUwMjY1ZTY5YWQuLjcy
NTIxNDkwNjJmNDMzYWIzM2M2ODgwYzk1NTRiOWIzYmRmYWRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2
b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKE1BQykKICAgICBpbmxpbmUgdm9pZCBk
aXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSB7IH0KICAgICBpbmxpbmUgdm9pZCBlbmFibGVTdWRk
ZW5UZXJtaW5hdGlvbigpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4
IDc3Y2NmOTFkNzBhMDQ2ZWFhZmE1ZmYxODFkOTIyZjIwNTAyMjAwZmEuLmU3ZjFlNTlkZDQzMWE3
NjhkMThlMjFhZWQxZTdiMzBhNjAwYmI4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBA
IC0zMSwxMSArMzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlBhZ2VD
bGllbnRDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2lkZ2V0LmgiCi0jZW5kaWYKLQog
I2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKQEAg
LTk2LDggKzkxLDYgQEAgdHlwZWRlZiBQYWdlQ2xpZW50QmxhY2tCZXJyeSogUGxhdGZvcm1QYWdl
Q2xpZW50OwogI2VsaWYgUExBVEZPUk0oRUZMKQogY2xhc3MgUGFnZUNsaWVudEVmbDsKIHR5cGVk
ZWYgUGFnZUNsaWVudEVmbCogUGxhdGZvcm1QYWdlQ2xpZW50OwotI2VsaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi10eXBlZGVmIFdlYkNvcmU6OlBhZ2VDbGllbnRDaHJvbWl1bSogUGxhdGZvcm1QYWdl
Q2xpZW50OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1QYWdlQ2xpZW50
OwogI2VuZGlmCkBAIC0yMjcsMTAgKzIyMCw2IEBAIHB1YmxpYzoKICAgICBFdmFzX09iamVjdCog
ZXZhc09iamVjdCgpIHsgcmV0dXJuIG1fZXZhc09iamVjdDsgfQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5Db250YWluZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICNpZiBQTEFURk9STShRVCkKICAgICBRT2Jq
ZWN0KiBiaW5kaW5nT2JqZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRCaW5kaW5nT2JqZWN0KFFP
YmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FO
R0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdM
RVdlYktpdEJyaWRnZS5oCmluZGV4IDUyZjcxZGQzZjkwOTc2YjI4Y2Q5Y2VjNGJjMWE2Mzk1MWY5
NjM5ZjcuLjNkZTdmYTM0NjllYTYyYjFiN2RmNTFhNzhlZTA0ZTcwNzY1Mzg1MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShFRkwpICYmICFQTEFURk9STShCTEFDS0JFUlJZKSAmJiAhUExBVEZPUk0oQ0hST01JVU0p
ICYmICFQTEFURk9STShRVCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSAm
JiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIVBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkFOR0xF
L1NoYWRlckxhbmcuaCIKICNlbHNlCiAjaW5jbHVkZSAiU2hhZGVyTGFuZy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTYzNmEwZTYx
MzlhMzdmZTQ5NTY4ZDAyZGM2MzY4NjA5YTJhMzRkYy4uYjdkNWY5MjdlNjA1Y2ViODljY2QxNGI0
NjVhY2FkMDRlOGY2OTE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCkBAIC0yMDUsNyArMjA1LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlmCiAgICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKLSNpZiBVU0UoQ0cpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKSB8fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENHKSB8
fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pIE9WRVJSSURFOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQu
aAppbmRleCAxMTFlMjMxODI2M2RhODJhNTlkMzVmNzNiOTJlZDdjNzRiMDNiMjExLi4yODJjMDNj
MTUwYzY2ZDhjM2Y4NDQwZmFiNmJhZWMzYzBhZjc3OTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEZs
b2F0UG9pbnQ7CiB0eXBlZGVmIHN0cnVjdCBDR1BvaW50IENHUG9pbnQ7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lm
IFBMQVRGT1JNKE1BQykKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBOU1BvaW50OwogI2Vsc2UKQEAgLTE1NSw4
ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0OwogI2VuZGlm
CiAKLSNpZiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJ
TikpKSBcCi0gICAgICAgICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTKQorI2lmIFBMQVRGT1JNKE1BKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZ
UEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKICAgICBGbG9hdFBvaW50KGNvbnN0IE5TUG9p
bnQmKTsKICAgICBvcGVyYXRvciBOU1BvaW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKaW5kZXggZmNlZjk0YTI5NWQ5NjA3
MmQyZjViOGUwZTdmMjJjMjQ1NWZlYTM3My4uMDI0YjUzMTRiMjZmMjY1ZDJjZTI5NGI1MjgzZDkw
ODI1YjM2N2E4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmgKQEAgLTM0LDcgKzM0LDcgQEAKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhE
QVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVf
QVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IE5TUmVjdDsKICNlbHNl
CkBAIC0yMDAsOCArMjAwLDcgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0
OwogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKERBUldJTikpKSBcCi0gICAgICAgICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTKQorI2lmIFBMQVRGT1JNKE1BQykgIWRlZmluZWQoTlNHRU9N
RVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCiAgICAgRmxvYXRSZWN0KGNvbnN0
IE5TUmVjdCYpOwogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCmluZGV4IDYwMTAyMTEzY2U5
MDJhMjExYmZmN2UxMDMyOGIxNmVjMGIyY2YxNTUuLmE2YTc3Yjg4NDk1MmUzMGE2Njg2ZmM4MTg2
MjFiOTdmN2Y2MTljYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0U2l6ZS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIHR5cGVkZWYgc3Ry
dWN0IENHU2l6ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJ
VCkpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAj
aWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYg
c3RydWN0IENHU2l6ZSBOU1NpemU7CiAjZWxzZQpAQCAtMTM1LDkgKzEzNSw3IEBAIHB1YmxpYzoK
ICAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAh
ZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykgXAotICAg
ICAgICB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykgfHwg
KFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxpY2l0IEZsb2F0U2l6ZShjb25z
dCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5
CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNzYzN2E4ZWVhOTVmNjMyMzAwNmFlOGUxNDJh
N2VkNGU2OTU3MWIzNi4uZTE4YWM1Y2UyYzM3NjM1NTBkODYyODU0NzcxOGU3NzgyZGM3MzQ2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTIzNyw4ICsy
MzcsNyBAQCBmbG9hdCBGb250Ojp3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCYgY2hhcnND
b25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbgogICAgIHJldHVybiB3aWR0aChydW4pOwog
fQogCi0jaWYgIShQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkpCi0KKyNpZiAhUExBVEZPUk0oTUFDKQogUGFzc093blB0cjxUZXh0TGF5b3V0PiBGb250
OjpjcmVhdGVMYXlvdXQoUmVuZGVyVGV4dCosIGZsb2F0LCBib29sKSBjb25zdAogewogICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMjUzLDcgKzI1Miw2IEBAIGZsb2F0IEZvbnQ6OndpZHRoKFRleHRM
YXlvdXQmLCB1bnNpZ25lZCwgdW5zaWduZWQsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9Ci0KICNlbmRpZgog
CiBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvclRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggZDZkMzkzYTE2Mjc0
NTNjN2RkZWEyNDIzYWU4YTlmYTRiYzU4NDdmYy4uZTA5M2M2NGNkYzZhODRlMDA0ZTgyZTMwYTli
ZmZkMWI5ZmQ3NjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApA
QCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBnbHlwaERh
dGFBbmRQYWdlRm9yQ2hhcmFjdGVyKGMsIG1pcnJvciwgdmFyaWFudCkuZmlyc3Q7CiAgICAgfQot
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGFGb3JD
b21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIEZv
bnREYXRhVmFyaWFudCkgY29uc3Q7CiAjZW5kaWYKICAgICBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBH
bHlwaFBhZ2UqPiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWly
cm9yLCBGb250RGF0YVZhcmlhbnQgPSBBdXRvVmFyaWFudCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBiZDdiZWFjMjRlMWU1
ODE2YjVjZGQ2MTJhMWIzZGJjYzRmYWI4NGY1Li44MmIwYjYxMTk1NDcyNDJlYTJkMmE5YWI4MWJk
NWU4YjFjOTlhZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAKQEAgLTI4OCwxMyArMjg4LDggQEAgdHlwZWRlZiBIYXNoTWFwPEZvbnRQbGF0
Zm9ybURhdGEsIHBhaXI8UmVmUHRyPFNpbXBsZUZvbnREYXRhPiwgdW5zaWduZWQ+LCBGb250RGEK
IAogc3RhdGljIEZvbnREYXRhQ2FjaGUqIGdGb250RGF0YUNhY2hlID0gMDsKIAotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKSAmJiAhT1MoQU5EUk9JRCkKLWNvbnN0IGludCBjTWF4SW5hY3RpdmVGb250
RGF0YSA9IDI1MDsKLWNvbnN0IGludCBjVGFyZ2V0SW5hY3RpdmVGb250RGF0YSA9IDIwMDsKLSNl
bHNlCiBjb25zdCBpbnQgY01heEluYWN0aXZlRm9udERhdGEgPSAyMjU7CiBjb25zdCBpbnQgY1Rh
cmdldEluYWN0aXZlRm9udERhdGEgPSAyMDA7Ci0jZW5kaWYKIHN0YXRpYyBMaXN0SGFzaFNldDxS
ZWZQdHI8U2ltcGxlRm9udERhdGE+ID4qIGdJbmFjdGl2ZUZvbnREYXRhID0gMDsKIAogUGFzc1Jl
ZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRDYWNoZWRGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHksIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWlu
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCAz
ZDRiNDdiMzA4ZTAwODVhYzBkM2ExNzE3OGM1ZmEwYjdjYmFlZjI1Li5mOTA4ZThjNDAwY2MyNjE0
ZDRkMWQ3NzA1MjNlNGE3NWU2YzAwZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaApAQCAtMTA3LDggKzEwNyw2IEBAIHB1YmxpYzoKIAogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBmb250RGF0YUZyb21E
ZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWlu
LCBjb25zdCBMT0dGT05UJiwgQXRvbWljU3RyaW5nJiBvdXRGb250RmFtaWx5TmFtZSk7Ci0jZWxp
ZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoV0lORE9XUykKLSAgICBQYXNzUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiBmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgU2hvdWxkUmV0YWluLCBjb25zdCBMT0dGT05UJiwgd2NoYXJfdCogb3V0Rm9u
dEZhbWlseU5hbWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCkBA
IC0xNTcsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEb24ndCBwdXJnZSBpZiB0aGlzIGNv
dW50IGlzID4gMDsKICAgICBpbnQgbV9wdXJnZVByZXZlbnRDb3VudDsKIAotI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCBPUyhBTkRST0lE
KQorI2lmIFBMQVRGT1JNKE1BQykgfHwgT1MoQU5EUk9JRCkKICAgICBmcmllbmQgY2xhc3MgQ29t
cGxleFRleHRDb250cm9sbGVyOwogI2VuZGlmCiAgICAgZnJpZW5kIGNsYXNzIFNpbXBsZUZvbnRE
YXRhOyAvLyBGb3IgZ2V0Q2FjaGVkRm9udERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSopCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5o
CmluZGV4IDZjZmI4NWNkMmJhOGZhYmYzZTc5MjljMzlmMTE5ODQzMGExZTk4OTAuLjE3YzAwZDRl
ZjA0MzhhNzNlMDE3YTAxNGFlNjgzMGY0ZjY1MWQ3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC0xNDcsMTEgKzE0Nyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzQWJzb2x1dGVTaXplKGJvb2wgcykgeyBtX2lzQWJz
b2x1dGVTaXplID0gczsgfQogICAgIHZvaWQgc2V0V2VpZ2h0KEZvbnRXZWlnaHQgdykgeyBtX3dl
aWdodCA9IHc7IH0KICAgICB2b2lkIHNldEdlbmVyaWNGYW1pbHkoR2VuZXJpY0ZhbWlseVR5cGUg
Z2VuZXJpY0ZhbWlseSkgeyBtX2dlbmVyaWNGYW1pbHkgPSBnZW5lcmljRmFtaWx5OyB9Ci0jaWYg
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICB2b2lkIHNldFVzZVByaW50ZXJG
b250KGJvb2wpIHsgfQotI2Vsc2UKICAgICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJvb2wgcCkg
eyBtX3VzZVByaW50ZXJGb250ID0gcDsgfQotI2VuZGlmCiAgICAgdm9pZCBzZXRSZW5kZXJpbmdN
b2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpIHsgbV9yZW5kZXJpbmdNb2RlID0gbW9kZTsgfQog
ICAgIHZvaWQgc2V0S2VybmluZyhLZXJuaW5nIGtlcm5pbmcpIHsgbV9rZXJuaW5nID0ga2Vybmlu
ZzsgfQogICAgIHZvaWQgc2V0Q29tbW9uTGlnYXR1cmVzU3RhdGUoTGlnYXR1cmVzU3RhdGUgY29t
bW9uTGlnYXR1cmVzU3RhdGUpIHsgbV9jb21tb25MaWdhdHVyZXNTdGF0ZSA9IGNvbW1vbkxpZ2F0
dXJlc1N0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDk1YWJkYWQ1MmRkZDY1ZGE5NTliYzhiNjJjZDg1
NGQ1NzFmMWQxOWUuLjI4Yjc4Y2IzYWRiMmE1ZTZiYjM3N2QyY2FkZDllZDY0MzEyYWJjNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9y
bURhdGEuY3BwCkBAIC0yNywxMCArMjcsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSAiSGFyZkJ1enpGYWNlLmgiCi0jZW5kaWYK
LQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4
IGJhNjRiOTU0ZDY5NGQxYWM2YjhiNWZkZDkyYmI1MGQzYzFhMDJkMjQuLjU4OWY5MTBkYmUzOWQ2
ZTY4ZTE4YTZiOWE2ZGNhZTViMjVhMTZhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTYzLDEwICs2Myw2IEBAIHR5
cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RGb250KiBDVEZvbnRSZWY7CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSAiQ3Jvc3NQcm9jZXNzRm9udExv
YWRpbmcuaCIgIAotI2VuZGlmCi0KICNpZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIHN0cnVjdCBI
Rk9OVF9fKiBIRk9OVDsKICNlbmRpZgpAQCAtODYsMTAgKzgyLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi0jaWYg
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLWNsYXNzIEhhcmZCdXp6RmFjZTsKLSNl
bmRpZgotCiAjaWYgT1MoREFSV0lOKQogaW5saW5lIENURm9udFJlZiB0b0NURm9udFJlZihOU0Zv
bnQgKm5zRm9udCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KG5zRm9udCk7
IH0KICNlbmRpZgpAQCAtMTYwLDEwICsxNTIsNiBAQCBwdWJsaWM6CiAgICAgY2Fpcm9fc2NhbGVk
X2ZvbnRfdCogc2NhbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udDsgfQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIEhhcmZCdXp6
RmFjZSogaGFyZkJ1enpGYWNlKCk7Ci0jZW5kaWYKLQogICAgIHVuc2lnbmVkIGhhc2goKSBjb25z
dAogICAgIHsKICNpZiBQTEFURk9STShXSU4pICYmICFVU0UoQ0FJUk8pCkBAIC0yNjMsMTEgKzI1
MSw2IEBAIHByaXZhdGU6CiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogbV9zY2FsZWRGb250Owog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIFJlZlB0
cjxNZW1vcnlBY3RpdmF0ZWRGb250PiBtX2luTWVtb3J5Rm9udDsKLSAgICBSZWZQdHI8SGFyZkJ1
enpGYWNlPiBtX2hhcmZCdXp6RmFjZTsKLSNlbmRpZgotCiAgICAgYm9vbCBtX2lzQ29sb3JCaXRt
YXBGb250OwogICAgIGJvb2wgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2U7CiAjaWYgT1MoREFS
V0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhC
dWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmgK
aW5kZXggM2FlYzA4ZTY1ZTBiZjkxZDUyMDE2ZjU1OTBlZWEzNWIzODM3YTJkMy4uMDhkYWYwMjMz
YTEzMmZmMDQ2ZWI3Yzg3NTAzY2VmMmU2NTY0NjlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVk
ZSA8Q29yZUdyYXBoaWNzL0NHR2VvbWV0cnkuaD4KICNlbmRpZgogCi0jaWYgT1MoREFSV0lOKSAm
JiAoUExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSkKKyNpZiBPUyhEQVJXSU4pICYm
IChQTEFURk9STShXWCkKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9u
U2VydmljZXMuaD4KICNlbmRpZgogCkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgR2x5cGggR2x5
cGhCdWZmZXJHbHlwaDsKIAogLy8gQ0cgdXNlcyBDR1NpemUgaW5zdGVhZCBvZiBGbG9hdFNpemUg
c28gdGhhdCB0aGUgcmVzdWx0IG9mIGFkdmFuY2VzKCkKIC8vIGNhbiBiZSBwYXNzZWQgZGlyZWN0
bHkgdG8gQ0dDb250ZXh0U2hvd0dseXBoc1dpdGhBZHZhbmNlcyBpbiBGb250TWFjLm1tCi0jaWYg
VVNFKENHKSB8fCAoT1MoREFSV0lOKSAmJiAoUExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKSkpCisjaWYgVVNFKENHKSB8fCAoT1MoREFSV0lOKSAmJiBQTEFURk9STShXWCkpCiBzdHJ1
Y3QgR2x5cGhCdWZmZXJBZHZhbmNlIDogQ0dTaXplIHsKIHB1YmxpYzoKICAgICBHbHlwaEJ1ZmZl
ckFkdmFuY2UoQ0dTaXplIHNpemUpIDogQ0dTaXplKHNpemUpCkBAIC0xNjUsNyArMTY1LDcgQEAg
cHVibGljOgogICAgICAgICBtX2dseXBocy5hcHBlbmQoZ2x5cGgpOwogI2VuZGlmCiAKLSNpZiBV
U0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIChQTEFURk9STShXWCkgfHwgUExBVEZPUk0oQ0hST01J
VU0pKSkKKyNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIFBMQVRGT1JNKFdYKSkKICAgICAg
ICAgQ0dTaXplIGFkdmFuY2UgPSB7IHdpZHRoLCAwIH07CiAgICAgICAgIG1fYWR2YW5jZXMuYXBw
ZW5kKGFkdmFuY2UpOwogI2VsaWYgT1MoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAyN2JjM2E5MzY0NDBm
OWZkNjIzZmJhM2Y1MDUwYTQ4ZTc0NjFlNmY0Li43NjJjNjBiZWQxMjAzOWI1YzM2Mjc4YWI1OWY1
NjE2MDAyZjExYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTUwOCwxMiArNTA4LDggQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdAogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAgICBwcmV2
aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KEludGVycG9sYXRpb25Mb3cpOwotI2Vsc2UKICAgICAgICAgLy8gRklYTUUgKDQ5MDAyKTog
U2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBpbWFnZS0+
ZHJhdyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwpAQCAtNTk1LDEyICs1OTEsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yUwogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAg
ICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Mb3cpOwotI2Vsc2UK
ICAgICAgICAgLy8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAg
ICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0j
ZW5kaWYKICAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBz
cmMsIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgIHNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkocHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAg
fSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCAzYTM4NGIzNTA5ZGI4NTYwMmExOGI1YThhZmRkYTVjMGJjZTM1
MDNkLi42YTA0NDk4NDJhZGU3Yzg5ZTdiNTVhNWRkOTc1YmEzN2IxNDllNzA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8g
RklYTUU6IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGF2b2lkIHRoZSBuYW1lIGNvbmZsaWN0aW9uIGZv
ciBOT19FUlJPUi4KLSNpZiAoKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSkgfHwg
UExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJTkRPV1MpKSkKKyNpZiBQTEFU
Rk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lORE9XUykpCiAjdW5kZWYgTk9fRVJS
T1IKICNlbGlmIFBMQVRGT1JNKEdUSykKIC8vIFRoaXMgZGVmaW5lIGlzIGZyb20gdGhlIFgxMSBo
ZWFkZXJzLCBidXQgaXQncyB1c2VkIGJlbG93LCBzbyB3ZSBtdXN0IHVuZGVmaW5lIGl0LgpAQCAt
ODAsNyArODAsNyBAQCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiB0
eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7CiAjZW5kaWYKIAotI2lmIChQ
TEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkpICYmIFVTRShTS0lBKQor
I2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpICYmIFVTRShTS0lBKQogY2xhc3MgR3JDb250ZXh0Owog
I2VuZGlmCiAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0T2JqOyB9CiAgICAgUGxhdGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBjb25z
dCB7IHJldHVybiBtX2NvbXBvc2l0b3JUZXh0dXJlOyB9CiAgICAgQ0FMYXllciogcGxhdGZvcm1M
YXllcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xM
YXllci5nZXQoKSk7IH0KLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKQorI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdDsKICAgICBQbGF0Zm9y
bTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0OwogI2lmIFVTRShTS0lBKQpAQCAtNTI4
LDcgKzUyOCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50
KCk7CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNL
QkVSUlkpCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgLy8gV2l0aCBt
dWx0aXNhbXBsaW5nIG9uLCBibGl0IGZyb20gbXVsdGlzYW1wbGVGQk8gdG8gcmVndWxhciBGQk8u
CiAgICAgdm9pZCBwcmVwYXJlVGV4dHVyZSgpOwogI2VuZGlmCkBAIC0xMDU2LDcgKzEwNTYsNyBA
QCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IChQTEFURk9STShRVCkgJiYg
ZGVmaW5lZChRVF9PUEVOR0xfRVNfMikpIHx8ICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShF
RkwpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsK
LSNlbGlmICFQTEFURk9STShDSFJPTUlVTSkKKyNlbHNlCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVu
c2lvbnMzRE9wZW5HTDsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lv
bnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAppbmRleCAyZjBlM2QxMWJkNjkyZjY3ODA3ODIyM2RiZTVhMDhmYWNjOTgzYjNj
Li4xMjY3NWJhM2Q0NzY0NzU2ZmEyZDI2ODFjODNhNWE5MDZkY2Y1ODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00MjgsNyAr
NDI4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNCYWNrZ3JvdW5kQ29s
b3JDb250ZW50KCkKICAgICB7Ci0jaWYgVVNFKENBKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpIHx8
IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIFVTRShDQSkgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaAppbmRleCBjNTg1ODA3YmQ1M2Y3NmNjMGU5
OGRhY2IzMWRkNTJjOTZmYjJlZWM5Li5hNzhiMjY1YzhhZmFhYjU0NzEwYjhjNzcwNGUzNzM0ZWQy
NWYwYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0zNSw5
ICszNSw2IEBAIHR5cGVkZWYgc3RydWN0IEhJQ09OX18qIEhJQ09OOwogI2luY2x1ZGUgPFFJY29u
PgogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhi
dWY7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtSWNvbi5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU1
LDggKzUyLDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEljb24+IGNyZWF0ZShISUNPTiBoSWNvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IElj
b24oaEljb24pKTsgfQotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SWNvbj4gY3JlYXRlKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPiBpY29uKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgSWNvbihpY29uKSk7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNzUs
OSArNzAsNiBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oRUZMKQogICAgIEljb24oKTsKICAg
ICBFdmFzX09iamVjdCogbV9pY29uOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgSWNv
bihQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4pOwotICAgIFJlZlB0cjxQbGF0Zm9ybUljb24+IG1f
aWNvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGMwNjZjZTcxMWVkZTJmMzRmNTQ4NDM4MWY2YWJkZTY5
OGRkOTEzYjkuLjVkYjFhNGY2YjExZTQwNzk2ZDg2YTFhNzI4MzFlMGI4ZGIyYjExMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAg
LTM1LDEwICszNSw2IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0jaW5jbHVkZSAiRGVmZXJyZWRJbWFnZURlY29kZXIuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggY2E5
OTc3MDNiNTk5MGNkZTg4NWI3MWM3ZGIxN2M5YTRjNDdlZTBiNC4uZTMwNTNkNjU3ZjU0Yjg5OTk1
MTY0ZGUzOWUxY2ZkMjg4MDMxODIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC00OCwxNiArNDgsMTIgQEAgY2xhc3MgU2hhcmVkQnVm
ZmVyOwogCiAjaWYgVVNFKENHKQogdHlwZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdl
RGVjb2RlclB0cjsKLSNlbGlmICFQTEFURk9STShDSFJPTUlVTSkKKyNlbHNlCiBjbGFzcyBJbWFn
ZURlY29kZXI7CiB0eXBlZGVmIEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VEZWNvZGVyUHRyOwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLWNsYXNzIERlZmVycmVkSW1hZ2VEZWNv
ZGVyOwotdHlwZWRlZiBEZWZlcnJlZEltYWdlRGVjb2RlciBOYXRpdmVJbWFnZURlY29kZXI7Ci10
eXBlZGVmIERlZmVycmVkSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZURlY29kZXJQdHI7Ci0jZWxp
ZiBVU0UoQ0cpCisjaWYgVVNFKENHKQogI2RlZmluZSBOYXRpdmVJbWFnZURlY29kZXIgSW1hZ2VE
ZWNvZGVyCiAjZWxzZQogdHlwZWRlZiBJbWFnZURlY29kZXIgTmF0aXZlSW1hZ2VEZWNvZGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IDcwZjJjYzNk
MDM3YTk3NWZjMDY0NDZlNDVhY2QwNDAzNWY2MDc0YTUuLmMyM2UzYWY5ZWRmNzcwYThhOTM5MWU1
NGI5YTYzZjcwYTI4MGI5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRSZWN0LmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBP
UyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgUExBVEZPUk0o
TUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1Jl
Y3Q7CiAjZWxzZQpAQCAtMjMwLDkgKzIzMCw3IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBTa0lS
ZWN0KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkpIFwKLSAgICAgICAgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpIFwKLSAgICAgICAgfHwgKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9N
RVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpIHx8IChQTEFURk9STShRVCkgJiYg
VVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgogCkBAIC0y
ODMsOCArMjgxLDcgQEAgaW5saW5lIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBJbnRS
ZWN0JiByZWN0KQogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IENHUmVjdCYpOwogI2Vu
ZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIFwKLSAgICAgICAgfHwgKFBMQVRGT1JNKENIUk9NSVVN
KSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgKFBM
QVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMpKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiBJbnRSZWN0IGVuY2xv
c2luZ0ludFJlY3QoY29uc3QgTlNSZWN0Jik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDEyNTc2ZmJhMjBiMzBk
MmUyYTM3M2NiZTk5YTZmNzhkMTE5NzI1OTQuLjFiZjA2MTg0MTdjODc2NDM3NmQ0MDgyMTM0ODVl
ZTNiNWMxNDlmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTc2LDkgKzc2LDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclBy
aXZhdGVRdC5oIgogI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZVF0CiAjZW5kaWYKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUg
Ik1lZGlhUGxheWVyUHJpdmF0ZUNocm9taXVtLmgiCi0jZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdp
bmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlCiAjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZ
KQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCIKICNkZWZpbmUgUGxh
dGZvcm1NZWRpYUVuZ2luZUNsYXNzTmFtZSBNZWRpYVBsYXllclByaXZhdGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaAppbmRleCAzMDQwN2Nk
N2FkYmM1ODZhOWVkMWJkMjk1NWRlM2EyNzk4Y2E4YjZjLi4xODM2NzNiMTNkZTZlOGM2N2VkOWMy
MmZhOWU0M2VkY2QxNTQ5YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1MYXllci5oCkBAIC0zOCwxMyArMzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjsKIHR5cGVkZWYgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsKIH07Ci0jZWxpZiBQTEFURk9STShDSFJP
TUlVTSkKLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViTGF5ZXI7Ci19Ci1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci10eXBlZGVmIFdlYktpdDo6V2ViTGF5ZXIgUGxhdGZvcm1MYXllcjsKLX0KICNl
bGlmIFBMQVRGT1JNKEdUSykKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfQ0FJUk8pIHx8IFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCmluZGV4IGU5ZWQ0OGY0ODVk
NGEyYzY4ZTI4YWE4OGQwN2QzMGFkY2Q5NzVjNTIuLjE3MmUxMTcwMTI4YmYwMzZiMGM5NDJkNTg5
NTBlYjgyMDFmMTMwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaApAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lO
KSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkKICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAK
LSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIGdldENvbXBvc2l0
ZUZvbnRSZWZlcmVuY2VGb250RGF0YShOU0ZvbnQgKmtleSkgY29uc3Q7CiAgICAgTlNGb250KiBn
ZXROU0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YS5mb250KCk7IH0KICNlbGlm
IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkgCkBAIC0xOTMsMTEgKzE5MywxMSBAQCBwdWJs
aWM6CiAgICAgTlNGb250KiBnZXROU0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0
YS5uc0ZvbnQoKTsgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJXSU4pKQor
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJXSU4pKQogICAgIENG
RGljdGlvbmFyeVJlZiBnZXRDRlN0cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRpbmdGZWF0dXJlcywg
Rm9udE9yaWVudGF0aW9uKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAo
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShXWCkgJiYgT1Mo
REFSV0lOKSkgfHwgVVNFKEhBUkZCVVpaKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JN
KFdYKSAmJiBPUyhEQVJXSU4pKSB8fCBVU0UoSEFSRkJVWlopCiAgICAgYm9vbCBjYW5SZW5kZXJD
b21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciosIHNpemVfdCkgY29uc3Q7CiAj
ZW5kaWYKIApAQCAtMzAwLDcgKzMwMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxTaW1w
bGVGb250RGF0YT4gYnJva2VuSWRlb2dyYXBoOwogICAgICAgICBSZWZQdHI8U2ltcGxlRm9udERh
dGE+IHZlcnRpY2FsUmlnaHRPcmllbnRhdGlvbjsKICAgICAgICAgUmVmUHRyPFNpbXBsZUZvbnRE
YXRhPiB1cHJpZ2h0T3JpZW50YXRpb247Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0o
Q0hST01JVU0pICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBtdXRh
YmxlIFJldGFpblB0cjxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPiBjb21wb3NpdGVGb250UmVmZXJl
bmNlczsKICNlbmRpZgogICAgICAgICAKQEAgLTMxNywxMSArMzE3LDExIEBAIHByaXZhdGU6CiAg
ICAgZmxvYXQgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShN
QUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFdY
KSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFdYKSAmJiBP
UyhEQVJXSU4pKQogICAgIG11dGFibGUgSGFzaE1hcDx1bnNpZ25lZCwgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gPiBtX0NGU3RyaW5nQXR0cmlidXRlczsKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9S
TShXWCkgJiYgT1MoREFSV0lOKSkgfHwgVVNFKEhBUkZCVVpaKQorI2lmIFBMQVRGT1JNKE1BQykg
fHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJXSU4pKSB8fCBVU0UoSEFSRkJVWlopCiAgICAgbXV0
YWJsZSBPd25QdHI8SGFzaE1hcDxTdHJpbmcsIGJvb2w+ID4gbV9jb21iaW5pbmdDaGFyYWN0ZXJT
ZXF1ZW5jZVN1cHBvcnQ7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcAppbmRleCA4NGU0YTE1NDUxMzE3OWZl
OWQ2NjYwYmU5ODgzYTdkOGQ2MjViYzUyLi41MWMwY2Y4NDQzZTdjZTVkMGE2MmFlZmM0MGY1OTE2
N2Y4MmJmYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9CaXRtYXBJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9CaXRtYXBJbWFnZUNHLmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPEFwcGxp
Y2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pCisjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZjcxMzA3NGZjNjkzZTdhMDgyM2IwNWE3YWM1MDU2
ZjJmMjkzMTkzZi4uYTc1YTU3MzIwNTE4NWNiNGJkNGY4NjQ1NGYwZTQ2NTg3NzY1OTAzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcApAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAotI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVk
ZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkKKyNpZiBQTEFURk9STShNQUMpCiAKICNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDYwCiAvLyBCdWlsZGluZyBvbiAxMC42IG9yIGxhdGVy
OiBrQ0dJbnRlcnBvbGF0aW9uTWVkaXVtIGlzIGRlZmluZWQgaW4gdGhlIENHSW50ZXJwb2xhdGlv
blF1YWxpdHkgZW51bS4KQEAgLTEyOTcsOSArMTI5Nyw2IEBAIEFmZmluZVRyYW5zZm9ybSBHcmFw
aGljc0NvbnRleHQ6OmdldENUTShJbmNsdWRlRGV2aWNlU2NhbGUgaW5jbHVkZVNjYWxlKSBjb25z
dAogCiBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgUm91bmRpbmdNb2RlIHJvdW5kaW5nTW9kZSkKIHsKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICByZXR1cm4gcmVjdDsKLSNlbHNlCiAgICAgLy8gSXQgaXMgbm90
IGVub3VnaCBqdXN0IHRvIHJvdW5kIHRvIHBpeGVscyBpbiBkZXZpY2Ugc3BhY2UuIFRoZSByb3Rh
dGlvbiBwYXJ0IG9mIHRoZQogICAgIC8vIGFmZmluZSB0cmFuc2Zvcm0gbWF0cml4IHRvIGRldmlj
ZSBzcGFjZSBjYW4gbWVzcyB3aXRoIHRoaXMgY29udmVyc2lvbiBpZiB3ZSBoYXZlIGEKICAgICAv
LyByb3RhdGluZyBpbWFnZSBsaWtlIHRoZSBoYW5kcyBvZiB0aGUgd29ybGQgY2xvY2sgd2lkZ2V0
LiBXZSBqdXN0IG5lZWQgdGhlIHNjYWxlLCBzbwpAQCAtMTM0MCw3ICsxMzM3LDYgQEAgRmxvYXRS
ZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIFJvdW5kaW5nTW8KICAgICBGbG9hdFBvaW50IHJvdW5kZWRPcmlnaW4gPSBGbG9hdFBv
aW50KGRldmljZU9yaWdpbi54IC8gZGV2aWNlU2NhbGVYLCBkZXZpY2VPcmlnaW4ueSAvIGRldmlj
ZVNjYWxlWSk7CiAgICAgRmxvYXRQb2ludCByb3VuZGVkTG93ZXJSaWdodCA9IEZsb2F0UG9pbnQo
ZGV2aWNlTG93ZXJSaWdodC54IC8gZGV2aWNlU2NhbGVYLCBkZXZpY2VMb3dlclJpZ2h0LnkgLyBk
ZXZpY2VTY2FsZVkpOwogICAgIHJldHVybiBGbG9hdFJlY3Qocm91bmRlZE9yaWdpbiwgcm91bmRl
ZExvd2VyUmlnaHQgLSByb3VuZGVkT3JpZ2luKTsKLSNlbmRpZgogfQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB3
aWR0aCwgYm9vbCBwcmludGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGVDRy5oCmluZGV4IDVjMDAzMDgzNjA1ZDBiODg4ZGM5NjJhNDNjYTJjZTdjOTc5MjdkNDguLmZj
YzlkMDE1MjRlYzJkNTM1MWNiYmMxZWU1MDI0ZWFjMmRkN2MxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZUNHLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRoZXNlIG1ldGhvZHMgZG8gbm90aGluZyBvbiBNYWMu
CiAgICAgdm9pZCBzYXZlKCkge30KICAgICB2b2lkIHJlc3RvcmUoKSB7fQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRl
eCAwNjgxNTc4YTM2Y2VkMzg3OWM2ZWQ4NTZjZjMzNzllN2M5MjFhOWNjLi4zMGQ0NGY2Njg2NDhk
YWMwYmRkYTE0OWNhNmUzMmY5NDcxNmJhZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtNDQsNyArNDQsNyBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQ
TEFURk9STShNQUMpCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAK
aW5kZXggYjRkNjBjN2EwZmE1Zjk1YTNkOTY3Zjg3MDIyOGFkMmFlMWYxOTZjNS4uOGExMjM2OGI2
YzNjMjQ5MzNiYzI5ZmUxMjZhNGM4YmQxOTNiNTFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNs
dWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUGF0aENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1Bh
dGhDRy5jcHAKaW5kZXggNTE2MmQ1OGIzZTcxNjE2ODNkM2FhYjY4ZmI4ODgyOGNmYzk2Y2UzNi4u
MTc1MWEwYWNkMzZlNWYyODM3Y2M2OGQ2N2E5ZjUwM2Q5MGM5M2FjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCkBAIC0zOSw3ICszOSw3IEBA
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFU
Rk9STShNQUMpCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5D
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3Bw
CmluZGV4IGFlOWEwMWIzNmE3ZmI3ODczYTZlYmQyNGM0ODE1YmIxMTczNTM3N2IuLjBjZDUyOWVh
YmU5MWE1ODljYjg1YTYzM2RmNGY3OWFhN2UyMTNhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcApAQCAtMzIsNyArMzIsNyBAQAog
I2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KENIUk9NSVVNKQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IGNk
YmM2ZGRlZjVkODEyZWNlZDgxZDRhYzMzNDY3MDJmYTk1N2RiNjkuLjQzNWM3ZjQxYWNmZTJjYjQ3
OWM4ZGE2YjRmZjRhOTQ3NTgzNWUzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0K
QEAgLTI4LDEwICsyOCw2IEBACiAjaW1wb3J0IDxBcHBLaXQvTlNGb250Lmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJX
SU4pCi0jaW1wb3J0ICJIYXJmQnV6ekZhY2UuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIFRoZXNlIENvcmVUZXh0IFRleHQgU3BhY2luZyBmZWF0dXJlIHNlbGVjdG9ycyBh
cmUgbm90IGRlZmluZWQgaW4gQ29yZVRleHQuCkBAIC05MSwxMSArODcsNiBAQCB2b2lkIEZvbnRQ
bGF0Zm9ybURhdGE6OnBsYXRmb3JtRGF0YUluaXQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZikK
IAogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAgICBtX0NURm9udCA9IGYubV9DVEZvbnQ7
Ci0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIG1faW5NZW1vcnlG
b250ID0gZi5tX2luTWVtb3J5Rm9udDsKLSAgICBtX2hhcmZCdXp6RmFjZSA9IGYubV9oYXJmQnV6
ekZhY2U7Ci0jZW5kaWYKIH0KIAogY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3Jt
RGF0YTo6cGxhdGZvcm1EYXRhQXNzaWduKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYpCkBAIC0x
MDksMTAgKzEwMCw2IEBAIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6
OnBsYXRmb3JtRGF0YUFzc2lnbihjb25zdCBGb250UGxhdGZvcm1ECiAgICAgICAgIENGUmVsZWFz
ZShtX2ZvbnQpOwogICAgIG1fZm9udCA9IGYubV9mb250OwogICAgIG1fQ1RGb250ID0gZi5tX0NU
Rm9udDsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIG1faW5NZW1v
cnlGb250ID0gZi5tX2luTWVtb3J5Rm9udDsKLSAgICBtX2hhcmZCdXp6RmFjZSA9IGYubV9oYXJm
QnV6ekZhY2U7Ci0jZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKQEAgLTE0MSwxNiArMTI4
LDYgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRGb250KE5TRm9udCAqZm9udCkKICAgICBO
U0ZvbnQqIGxvYWRlZEZvbnQgPSAwOwogICAgIGxvYWRGb250KG1fZm9udCwgbV9zaXplLCBsb2Fk
ZWRGb250LCBjZ0ZvbnQpOwogICAgIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJX
SU4pCi0gICAgLy8gSWYgbG9hZEZvbnQgcmVwbGFjZWQgbV9mb250IHdpdGggYSBmYWxsYmFjayBm
b250LCB0aGVuIHJlbGVhc2UgdGhlCi0gICAgLy8gcHJldmlvdXMgZm9udCB0byBjb3VudGVyIHRo
ZSByZXRhaW4gYWJvdmUuIFRoZW4gcmV0YWluIHRoZSBuZXcgZm9udC4KLSAgICBpZiAobG9hZGVk
Rm9udCAhPSBtX2ZvbnQpIHsKLSAgICAgICAgQ0ZSZWxlYXNlKG1fZm9udCk7Ci0gICAgICAgIENG
UmV0YWluKGxvYWRlZEZvbnQpOwotICAgICAgICBtX2ZvbnQgPSBsb2FkZWRGb250OwotICAgIH0K
LSNlbmRpZgotICAgIAogICAgIG1fY2dGb250LmFkb3B0Q0YoY2dGb250KTsKICNpZiBQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHsK
QEAgLTI0NywxMyArMjI0LDYgQEAgQ1RGb250UmVmIEZvbnRQbGF0Zm9ybURhdGE6OmN0Rm9udCgp
IGNvbnN0CiAgICAgaWYgKG1fQ1RGb250KQogICAgICAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7
CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBpZiAobV9pbk1lbW9yeUZvbnQpIHsKLSAg
ICAgICAgbV9DVEZvbnQuYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoR3JhcGhpY3NGb250KG1faW5N
ZW1vcnlGb250LT5jZ0ZvbnQoKSwgbV9zaXplLCAwLCBjYXNjYWRlVG9MYXN0UmVzb3J0Rm9udERl
c2NyaXB0b3IoKSkpOwotICAgICAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7Ci0gICAgfQotI2Vu
ZGlmCi0KICAgICBtX0NURm9udCA9IHRvQ1RGb250UmVmKG1fZm9udCk7CiAgICAgaWYgKG1fQ1RG
b250KSB7CiAgICAgICAgIENURm9udERlc2NyaXB0b3JSZWYgZm9udERlc2NyaXB0b3I7CkBAIC0y
ODMsMzcgKzI1Myw2IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQoKSBjb25z
dAogICAgIHJldHVybiBtX0NURm9udC5nZXQoKTsKIH0KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KSAmJiBPUyhEQVJXSU4pCi1zdGF0aWMgYm9vbCBpc0FBVEZvbnQoQ1RGb250UmVmIGN0Rm9udCkK
LXsKLSAgICBDRkRhdGFSZWYgdGFibGUgPSBDVEZvbnRDb3B5VGFibGUoY3RGb250LCBrQ1RGb250
VGFibGVNb3J0LCAwKTsKLSAgICBpZiAodGFibGUpIHsKLSAgICAgICAgQ0ZSZWxlYXNlKHRhYmxl
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHRhYmxlID0gQ1RGb250Q29weVRh
YmxlKGN0Rm9udCwga0NURm9udFRhYmxlTW9yeCwgMCk7Ci0gICAgaWYgKHRhYmxlKSB7Ci0gICAg
ICAgIENGUmVsZWFzZSh0YWJsZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLUhhcmZCdXp6RmFjZSogRm9udFBsYXRmb3JtRGF0YTo6aGFyZkJ1
enpGYWNlKCkKLXsKLSAgICBDVEZvbnRSZWYgZm9udCA9IGN0Rm9udCgpOwotICAgIC8vIEhhcmZC
dXp6IGNhbid0IGhhbmRsZSBBQVQgZm9udAotICAgIGlmIChpc0FBVEZvbnQoZm9udCkpCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgaWYgKCFtX2hhcmZCdXp6RmFjZSkgewotICAgICAgICB1aW50
NjRfdCB1bmlxdWVJRCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihmb250KTsKLSAgICAg
ICAgbV9oYXJmQnV6ekZhY2UgPSBIYXJmQnV6ekZhY2U6OmNyZWF0ZShjb25zdF9jYXN0PEZvbnRQ
bGF0Zm9ybURhdGEqPih0aGlzKSwgdW5pcXVlSUQpOwotICAgIH0KLSAgICByZXR1cm4gbV9oYXJm
QnV6ekZhY2UuZ2V0KCk7Ci19Ci0jZW5kaWYKLQogI2lmbmRlZiBOREVCVUcKIFN0cmluZyBGb250
UGxhdGZvcm1EYXRhOjpkZXNjcmlwdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3Bw
CmluZGV4IDNhNWVjODUzZDQ1OWFjODc4OWYzMzY3M2U3ZjEyZTI1NmRhNjYwYzYuLjE1ODEzMTE4
NWQyYmIzM2IxZjBmZGFjZjA4MzYwNDUwZTJlY2VkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3Bw
CkBAIC0zMzEsMTIgKzMzMSw3IEBAIGJvb2wgRkVDdXN0b21GaWx0ZXI6OnJlc2l6ZUNvbnRleHQo
Y29uc3QgSW50U2l6ZSYgbmV3Q29udGV4dFNpemUpCiAgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVi
dWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2ZyYW1lQnVmZmVyKTsKICAg
ICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBt
X2Rlc3RUZXh0dXJlKTsKICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gY2xlYXIgdGhlIG91dHB1dCBi
dWZmZXIgYW55d2F5LCBzbyB3ZSBjYW4gc2FmZWx5IGluaXRpYWxpemUgdGhlIGRlc3RpbmF0aW9u
IHRleHR1cmUgd2l0aCBnYXJiYWdlIGRhdGEuCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAg
Ly8gRklYTUU6IEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJERGlyZWN0IGlzIG5vdCBpbXBs
ZW1lbnRlZCBvbiBDaHJvbWl1bS4KLSAgICBtX2NvbnRleHQtPnRleEltYWdlMkQoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBuZXdDb250
ZXh0U2l6ZS53aWR0aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCAwKTsKLSNlbHNl
CiAgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgbmV3Q29udGV4dFNpemUud2lkdGgo
KSwgbmV3Q29udGV4dFNpemUuaGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBH
cmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgMCk7Ci0jZW5kaWYKICAgICBtX2NvbnRl
eHQtPmZyYW1lYnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwg
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwLCBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgbV9kZXN0VGV4dHVyZSwgMCk7CiAKICAgICAvLyBXZSBkb24ndCBuZWVkIHRo
ZSBkZXB0aCBidWZmZXIgZm9yIHRoZSB0ZXh0dXJlIGZyYW1lYnVmZmVyLCBpZiB3ZSBhbHJlYWR5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2lu
Z0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdC
dWZmZXIuaAppbmRleCBiNDQ2MTAxMjA2NzcxM2Q1MWE1YTFiNzBmZDAxMTFjNjJmZjIxZjc2Li5j
ODI3YTBlZmE0ODU1MDUxMDEwMDJkZGZjOWRiMzY4N2M5NWM4N2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmgKQEAgLTQ2
LDkgKzQ2LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNE
OwogY2xhc3MgSW1hZ2VEYXRhOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotY2xhc3MgRHJhd2lu
Z0J1ZmZlclByaXZhdGU7Ci0jZW5kaWYKIAogLy8gTWFuYWdlcyBhIHJlbmRlcmluZyB0YXJnZXQg
KGZyYW1lYnVmZmVyICsgYXR0YWNobWVudCkgZm9yIGEgY2FudmFzLiAgQ2FuIHB1Ymxpc2ggaXRz
IHJlbmRlcmluZwogLy8gcmVzdWx0cyB0byBhIFBsYXRmb3JtTGF5ZXIgZm9yIGNvbXBvc2l0aW5n
LgpAQCAtMTcyLDEwICsxNjksNiBAQCBwcml2YXRlOgogICAgIC8vIFRydWUgaWYgb3VyIGNvbnRl
bnRzIGhhdmUgYmVlbiBtb2RpZmllZCBzaW5jZSB0aGUgbGFzdCBwcmVzZW50YXRpb24gb2YgdGhp
cyBidWZmZXIuCiAgICAgYm9vbCBtX2NvbnRlbnRzQ2hhbmdlZDsKIAotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotICAgIE93blB0cjxEcmF3aW5nQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwotI2Vu
ZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fcGxh
dGZvcm1MYXllcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXgg
MWI0MGEyOTU5NDc4MjM4NzY0ODVkZTUzNGE5NWQxMzZiZGYzYTg2Ny4uOGI5OGU3ODA1MTA0MDll
YWIwNDExYjAwZTVlMzY2OWI1NzZjYzQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCkBAIC0yOSwxMSArMjksNiBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
LmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKLSNpZiBQTEFURk9STShDSFJPTUlVTSkK
LSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKLSNpbmNsdWRlIDxwdWJsaWMv
UGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KLSNl
bmRpZgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2Fj
aGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hl
TWFjLm1tCmluZGV4IDE1YTMyYmRjZWY4MDNlZDY4NTM2YTA3OWNjOWQxMjkwNGNjZDJmNGEuLmJm
OWY4YWUzNzg5MGZhNGM2N2ZjMGZhMjUyZWUyMDIwMTk3YTdhMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMTAy
LDEyICsxMDIsNiBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldEZv
bnREYXRhRm9yQ2hhcmFjdGVycyhjb25zdCBGb250JiBmb250LAogICAgIGlmICghc3Vic3RpdHV0
ZUZvbnQpCiAgICAgICAgIHJldHVybiAwOwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAg
Ly8gQ2hyb21pdW0gY2FuJ3QgcmVuZGVyIEFwcGxlQ29sb3JFbW9qaS4KLSAgICBpZiAoW1tzdWJz
dGl0dXRlRm9udCBmYW1pbHlOYW1lXSBpc0VxdWFsOkAiQXBwbGUgQ29sb3IgRW1vamkiXSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0jZW5kaWYKLQogICAgIC8vIFVzZSB0aGUgZmFtaWx5IG5hbWUgZnJv
bSB0aGUgQXBwS2l0LXN1cHBsaWVkIHN1YnN0aXR1dGUgZm9udCwgcmVxdWVzdGluZyB0aGUKICAg
ICAvLyB0cmFpdHMsIHdlaWdodCwgYW5kIHNpemUgd2Ugd2FudC4gT25lIHdheSB0aGlzIGRvZXMg
YmV0dGVyIHRoYW4gdGhlIG9yaWdpbmFsCiAgICAgLy8gQXBwS2l0IHJlcXVlc3QgaXMgdGhhdCBp
dCB0YWtlcyBzeW50aGV0aWMgYm9sZCBhbmQgb2JsaXF1ZSBpbnRvIGFjY291bnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxl
eFRleHRNYWMuY3BwCmluZGV4IGI2ZmRjNzNiZGNlYjcxNzY1N2Q5NjVjZDAyZjY1YmI2MDBmZWUx
N2QuLmVmNTE3YzYwZTQ1N2M0MzljNWZiNjIzZjI0ZmYzNjJjOWI3NThlOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxl
eFRleHRNYWMuY3BwCkBAIC0zNCwzMiArMzQsMTMgQEAKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2lu
Y2x1ZGUgIkhhcmZCdXp6U2hhcGVyLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1zdGF0aWMg
Ym9vbCBwcmVmZXJIYXJmQnV6eihjb25zdCBGb250KiBmb250KQotewotICAgIGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24gPSBmb250LT5mb250RGVzY3JpcHRpb24oKTsKLSAgICBy
ZXR1cm4gZGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCkgJiYgZGVzY3JpcHRpb24uZmVhdHVy
ZVNldHRpbmdzKCktPnNpemUoKSA+IDA7Ci19Ci0jZW5kaWYKLQogRmxvYXRSZWN0IEZvbnQ6OnNl
bGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50LCBpbnQgaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGZyb20sIGludCB0bykgY29uc3QKIHsKLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSAgICBpZiAocHJlZmVySGFyZkJ1enoodGhpcykpIHsKLSAgICAgICAgSGFyZkJ1enpTaGFw
ZXIgc2hhcGVyKHRoaXMsIHJ1bik7Ci0gICAgICAgIGlmIChzaGFwZXIuc2hhcGUoKSkKLSAgICAg
ICAgICAgIHJldHVybiBzaGFwZXIuc2VsZWN0aW9uUmVjdChwb2ludCwgaCwgZnJvbSwgdG8pOwot
ICAgIH0KLSNlbmRpZgogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRoaXMs
IHJ1bik7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdp
ZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCk7CkBAIC0xMDAsMTcgKzgxLDYgQEAgZmxv
YXQgRm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiBydW4sIGludCBmcm9tLCBpbnQKIAogdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAogewotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgIGlmIChwcmVmZXJIYXJmQnV6eih0aGlzKSkgewotICAgICAgICBHbHlwaEJ1ZmZlciBn
bHlwaEJ1ZmZlcjsKLSAgICAgICAgSGFyZkJ1enpTaGFwZXIgc2hhcGVyKHRoaXMsIHJ1bik7Ci0g
ICAgICAgIHNoYXBlci5zZXREcmF3UmFuZ2UoZnJvbSwgdG8pOwotICAgICAgICBpZiAoc2hhcGVy
LnNoYXBlKCZnbHlwaEJ1ZmZlcikpIHsKLSAgICAgICAgICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250
ZXh0LCBydW4sIGdseXBoQnVmZmVyLCBwb2ludCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0jZW5kaWYKICAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xkcyBvdXIg
Z2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCiAgICAgR2x5cGhC
dWZmZXIgZ2x5cGhCdWZmZXI7CiAKQEAgLTEzOCwxMyArMTA4LDYgQEAgdm9pZCBGb250OjpkcmF3
RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgVGV4dFIKIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotICAgIGlmIChwcmVmZXJIYXJmQnV6eih0aGlzKSkgewotICAgICAgICBIYXJmQnV6
elNoYXBlciBzaGFwZXIodGhpcywgcnVuKTsKLSAgICAgICAgaWYgKHNoYXBlci5zaGFwZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIHNoYXBlci50b3RhbFdpZHRoKCk7Ci0gICAgfQotI2VuZGlmCiAg
ICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCB0cnVlLCBmYWxs
YmFja0ZvbnRzKTsKICAgICBpZiAoZ2x5cGhPdmVyZmxvdykgewogICAgICAgICBnbHlwaE92ZXJm
bG93LT50b3AgPSBtYXg8aW50PihnbHlwaE92ZXJmbG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVy
Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gKGdseXBoT3ZlcmZsb3ctPmNvbXB1dGVCb3VuZHMg
PyAwIDogZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkpOwpAQCAtMTU3LDEzICsxMjAsNiBAQCBmbG9h
dCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbgogCiBpbnQgRm9udDo6b2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGZsb2F0IHgsIGJvb2wgaW5jbHVkZVBhcnRpYWxH
bHlwaHMpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgaWYgKHByZWZlckhh
cmZCdXp6KHRoaXMpKSB7Ci0gICAgICAgIEhhcmZCdXp6U2hhcGVyIHNoYXBlcih0aGlzLCBydW4p
OwotICAgICAgICBpZiAoc2hhcGVyLnNoYXBlKCkpCi0gICAgICAgICAgICByZXR1cm4gc2hhcGVy
Lm9mZnNldEZvclBvc2l0aW9uKHgpOwotICAgIH0KLSNlbmRpZgogICAgIENvbXBsZXhUZXh0Q29u
dHJvbGxlciBjb250cm9sbGVyKHRoaXMsIHJ1bik7CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIub2Zm
c2V0Rm9yUG9zaXRpb24oeCwgaW5jbHVkZVBhcnRpYWxHbHlwaHMpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQppbmRleCBiOTY1ODU1NDZh
M2UxODNmNThjMjA2YWE5OTk5Mzc3ZjQ1NWYwMWU0Li5kZjZlMDY0MjdhYTViYjllN2MyYTE4ZmI4
NmM1YTM4YjdhODQzODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udE1hYy5tbQpAQCAtNTcsMjEgKzU3LDcgQEAgYm9vbCBGb250OjpjYW5FeHBhbmRB
cm91bmRJZGVvZ3JhcGhzSW5Db21wbGV4VGV4dCgpCiAvLyBkaXZpZGVzIGJ5IHVuaXRzUGVyRW0u
CiBzdGF0aWMgYm9vbCBoYXNCcm9rZW5DVEZvbnRHZXRWZXJ0aWNhbFRyYW5zbGF0aW9uc0Zvckds
eXBocygpCiB7Ci0vLyBDaHJvbWl1bSBydW5zIHRoZSBzYW1lIGJpbmFyeSBvbiBib3RoIExlb3Bh
cmQgYW5kIFNub3cgTGVvcGFyZCwgc28gdGhlIGNoZWNrIGhhcyB0byBoYXBwZW4gYXQgcnVudGlt
ZS4KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBzdGF0aWMgYm9vbCBpc0NhY2hlZCA9IGZh
bHNlOwotICAgIHN0YXRpYyBib29sIHJlc3VsdDsKLSAgICAKLSAgICBpZiAoIWlzQ2FjaGVkKSB7
Ci0gICAgICAgIFNJbnQzMiBtYWpvclZlcnNpb24gPSAwOwotICAgICAgICBTSW50MzIgbWlub3JW
ZXJzaW9uID0gMDsKLSAgICAgICAgR2VzdGFsdChnZXN0YWx0U3lzdGVtVmVyc2lvbk1ham9yLCAm
bWFqb3JWZXJzaW9uKTsKLSAgICAgICAgR2VzdGFsdChnZXN0YWx0U3lzdGVtVmVyc2lvbk1pbm9y
LCAmbWlub3JWZXJzaW9uKTsKLSAgICAgICAgcmVzdWx0ID0gbWFqb3JWZXJzaW9uID09IDEwICYm
IG1pbm9yVmVyc2lvbiA9PSA2OwotICAgICAgICBpc0NhY2hlZCA9IHRydWU7Ci0gICAgfQotICAg
IHJldHVybiByZXN1bHQ7Ci0jZWxpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID09IDEwNjAKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwNjAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcApp
bmRleCA1Yjg3YzU2OGNhNTM1NzE3NTVmMjlhZDFkMjE4NGJkNTJkNWEzZjc0Li40MDFhMTU2OTU3
ZjllZjVhYmM1NDQ3ODkyY2Y4YzA2ZGI1MGYwMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMQ29tbW9uLmNwcApAQCAtMTcwLDE3ICsxNzAsMTEgQEAgU3RyaW5nIEV4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbjo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RP
YmplY3QKIAogICAgIFN0cmluZyB0cmFuc2xhdGVkU2hhZGVyU291cmNlOwogICAgIFN0cmluZyBz
aGFkZXJJbmZvTG9nOwotICAgIGludCBleHRyYUNvbXBpbGVPcHRpb25zID0gU0hfTUFQX0xPTkdf
VkFSSUFCTEVfTkFNRVM7CisgICAgaW50IGV4dHJhQ29tcGlsZU9wdGlvbnMgPSBTSF9NQVBfTE9O
R19WQVJJQUJMRV9OQU1FUyB8IFNIX0NMQU1QX0lORElSRUNUX0FSUkFZX0JPVU5EUzsKIAogICAg
IGlmIChtX3JlcXVpcmVzQnVpbHRJbkZ1bmN0aW9uRW11bGF0aW9uKQogICAgICAgICBleHRyYUNv
bXBpbGVPcHRpb25zIHw9IFNIX0VNVUxBVEVfQlVJTFRfSU5fRlVOQ1RJT05TOwogCi0jaWYgIVBM
QVRGT1JNKENIUk9NSVVNKQotICAgIC8vIENocm9taXVtIGRvZXMgbm90IHVzZSB0aGUgQU5HTEUg
YnVuZGxlZCBpbiBXZWJLaXQgc291cmNlLCBhbmQgdGh1cwotICAgIC8vIGRvZXMgbm90IHlldCBo
YXZlIHRoZSBzeW1ib2wgU0hfQ0xBTVBfSU5ESVJFQ1RfQVJSQVlfQk9VTkRTLgotICAgIGV4dHJh
Q29tcGlsZU9wdGlvbnMgfD0gU0hfQ0xBTVBfSU5ESVJFQ1RfQVJSQVlfQk9VTkRTOwotI2VuZGlm
Ci0KICAgICBWZWN0b3I8QU5HTEVTaGFkZXJTeW1ib2w+IHN5bWJvbHM7CiAgICAgYm9vbCBpc1Zh
bGlkID0gY29tcGlsZXIuY29tcGlsZVNoYWRlclNvdXJjZShlbnRyeS5zb3VyY2UudXRmOCgpLmRh
dGEoKSwgc2hhZGVyVHlwZSwgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSwgc2hhZGVySW5mb0xvZywg
c3ltYm9scywgZXh0cmFDb21waWxlT3B0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3Bw
CmluZGV4IDZhNTZjY2I1ZTIzMDM3Mzc5NzEwYzc2YjYwZjU4OGExZGRjYzJhNjYuLjIzY2I3ZDk5
ZjczMzRiYTQxYmJkYTE2NjY0OWU1ODQ3OGE2MTUzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lh
LmNwcApAQCAtNTksMTAgKzU5LDYgQEAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KERBUldJTikKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vydmlj
ZXMuaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00OTUsMzMgKzQ5MSwxOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3Vz
UmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbgogCiBzdGF0
aWMgaW5saW5lIHZvaWQgZHJhd091dGVyUGF0aChQbGF0Zm9ybUNvbnRleHRTa2lhKiBjb250ZXh0
LCBjb25zdCBTa1BhdGgmIHBhdGgsIFNrUGFpbnQmIHBhaW50LCBpbnQgd2lkdGgpCiB7Ci0jaWYg
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICBwYWludC5zZXRBbHBoYSg2NCk7
Ci0gICAgcGFpbnQuc2V0U3Ryb2tlV2lkdGgod2lkdGgpOwotICAgIHBhaW50LnNldFBhdGhFZmZl
Y3QobmV3IFNrQ29ybmVyUGF0aEVmZmVjdCgod2lkdGggLSAxKSAqIDAuNWYpKS0+dW5yZWYoKTsK
LSNlbHNlCiAgICAgcGFpbnQuc2V0U3Ryb2tlV2lkdGgoMSk7CiAgICAgcGFpbnQuc2V0UGF0aEVm
ZmVjdChuZXcgU2tDb3JuZXJQYXRoRWZmZWN0KDEpKS0+dW5yZWYoKTsKLSNlbmRpZgogICAgIGNv
bnRleHQtPmRyYXdQYXRoKHBhdGgsIHBhaW50KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGRy
YXdJbm5lclBhdGgoUGxhdGZvcm1Db250ZXh0U2tpYSogY29udGV4dCwgY29uc3QgU2tQYXRoJiBw
YXRoLCBTa1BhaW50JiBwYWludCwgaW50IHdpZHRoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KSAmJiBPUyhEQVJXSU4pCi0gICAgcGFpbnQuc2V0QWxwaGEoMTI4KTsKLSAgICBwYWludC5zZXRT
dHJva2VXaWR0aCh3aWR0aCAqIDAuNWYpOwotICAgIGNvbnRleHQtPmRyYXdQYXRoKHBhdGgsIHBh
aW50KTsKLSNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIGludCBnZXRGb2N1c1JpbmdPdXRzZXQo
aW50IG9mZnNldCkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAg
IHJldHVybiBvZmZzZXQgKyAyOwotI2Vsc2UKICAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4m
IHJlY3RzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTYx
Niw2MiArNTk3LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcHQsIGZsb2F0IHdpZHQKICAgICBzdGF0aWMgU2tCaXRt
YXAqIG1pc3NwZWxsQml0bWFwMnhbMl0gPSB7IDAsIDAgfTsKICAgICBTa0JpdG1hcCoqIG1pc3Nw
ZWxsQml0bWFwID0gZGV2aWNlU2NhbGVGYWN0b3IgPT0gMiA/IG1pc3NwZWxsQml0bWFwMnggOiBt
aXNzcGVsbEJpdG1hcDF4OwogICAgIGlmICghbWlzc3BlbGxCaXRtYXBbaW5kZXhdKSB7Ci0jaWYg
UExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICAgICAgLy8gTWF0Y2ggdGhlIGFy
dHdvcmsgdXNlZCBieSB0aGUgTWFjLgotICAgICAgICBjb25zdCBpbnQgcm93UGl4ZWxzID0gNCAq
IGRldmljZVNjYWxlRmFjdG9yOwotICAgICAgICBjb25zdCBpbnQgY29sUGl4ZWxzID0gMyAqIGRl
dmljZVNjYWxlRmFjdG9yOwotICAgICAgICBtaXNzcGVsbEJpdG1hcFtpbmRleF0gPSBuZXcgU2tC
aXRtYXA7Ci0gICAgICAgIG1pc3NwZWxsQml0bWFwW2luZGV4XS0+c2V0Q29uZmlnKFNrQml0bWFw
OjprQVJHQl84ODg4X0NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcm93UGl4ZWxzLCBjb2xQaXhlbHMpOwotICAgICAgICBtaXNzcGVsbEJpdG1hcFtpbmRl
eF0tPmFsbG9jUGl4ZWxzKCk7Ci0KLSAgICAgICAgbWlzc3BlbGxCaXRtYXBbaW5kZXhdLT5lcmFz
ZUFSR0IoMCwgMCwgMCwgMCk7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IHRyYW5zcGFyZW50Q29s
b3IgPSAweDAwMDAwMDAwOwotCi0gICAgICAgIGlmIChkZXZpY2VTY2FsZUZhY3RvciA9PSAxKSB7
Ci0gICAgICAgICAgICBjb25zdCB1aW50MzJfdCBjb2xvcnNbMl1bNl0gPSB7Ci0gICAgICAgICAg
ICAgICAgeyAweDJBMkEwNjAwLCAweDU3NTcxMDAwLCAgMHhBOEE4MUIwMCwgMHhCRkJGMUYwMCwg
IDB4NzA3MDEyMDAsIDB4RTBFMDI0MDAgfSwKLSAgICAgICAgICAgICAgICB7IDB4MkEwMDE1MDMs
IDB4NTcwMDJBMDgsICAweEE4MDA1NDBELCAweEJGMDA1RjBGLCAgMHg3MDAwMzgwOSwgMHhFMDAw
NzAxMiB9Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICAvLyBQYXR0ZXJuOiBhIGIgYSAg
IGEgYiBhCi0gICAgICAgICAgICAvLyAgICAgICAgICBjIGQgYyAgIGMgZCBjCi0gICAgICAgICAg
ICAvLyAgICAgICAgICBlIGYgZSAgIGUgZiBlCi0gICAgICAgICAgICBmb3IgKGludCB4ID0gMDsg
eCA8IGNvbFBpeGVsczsgKyt4KSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QqIHJvdyA9IG1p
c3NwZWxsQml0bWFwW2luZGV4XS0+Z2V0QWRkcjMyKDAsIHgpOwotICAgICAgICAgICAgICAgIHJv
d1swXSA9IGNvbG9yc1tpbmRleF1beCAqIDJdOwotICAgICAgICAgICAgICAgIHJvd1sxXSA9IGNv
bG9yc1tpbmRleF1beCAqIDIgKyAxXTsKLSAgICAgICAgICAgICAgICByb3dbMl0gPSBjb2xvcnNb
aW5kZXhdW3ggKiAyXTsKLSAgICAgICAgICAgICAgICByb3dbM10gPSB0cmFuc3BhcmVudENvbG9y
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGRldmljZVNjYWxlRmFjdG9yID09
IDIpIHsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGNvbG9yc1syXVsxOF0gPSB7Ci0gICAg
ICAgICAgICAgICAgeyAweDBhMDkwMTAxLCAweDMzMzIwODA2LCAweDU1NTQwZjBhLCAgMHgzNzM2
MDkwNiwgMHg2ZTZjMTIwYywgMHg2ZTZjMTIwYywgIDB4NzY3NDE0MGQsIDB4OGQ4YjE4MTAsIDB4
OGQ4YjE4MTAsCi0gICAgICAgICAgICAgICAgICAweDk2OTQxYTExLCAweGIzYjAxZjE1LCAweGIz
YjAxZjE1LCAgMHg2ZDZiMTMwYywgMHhkOWQ2MjYxOSwgMHhkOWQ2MjYxOSwgIDB4MTkxODA0MDIs
IDB4N2M3YTE1MGUsIDB4Y2VjYjI0MTggfSwKLSAgICAgICAgICAgICAgICB7IDB4MGEwMDA0MDAs
IDB4MzMwMzFiMDYsIDB4NTUwNjJmMGIsICAweDM3MDQxZTA2LCAweDZlMDgzZDBkLCAweDZlMDgz
ZDBkLCAgMHg3NjA4NDEwZSwgMHg4ZDA5NGUxMSwgMHg4ZDA5NGUxMSwKLSAgICAgICAgICAgICAg
ICAgIDB4OTYwYTUzMTMsIDB4YjMwZDY0MTcsIDB4YjMwZDY0MTcsICAweDZkMDczYzBkLCAweGQ5
MGY3ODFjLCAweGQ5MGY3ODFjLCAgMHgxOTAxMGQwMywgMHg3YzA5NDUxMCwgMHhjZTBmNzMxYSB9
Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICAvLyBQYXR0ZXJuOiBhIGIgYyBjIGIgYQot
ICAgICAgICAgICAgLy8gICAgICAgICAgZCBlIGYgZiBlIGQKLSAgICAgICAgICAgIC8vICAgICAg
ICAgIGcgaCBqIGogaCBnCi0gICAgICAgICAgICAvLyAgICAgICAgICBrIGwgbSBtIGwgawotICAg
ICAgICAgICAgLy8gICAgICAgICAgbiBvIHAgcCBvIG4KLSAgICAgICAgICAgIC8vICAgICAgICAg
IHEgciBzIHMgciBxCi0gICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGNvbFBpeGVsczsg
Kyt4KSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QqIHJvdyA9IG1pc3NwZWxsQml0bWFwW2lu
ZGV4XS0+Z2V0QWRkcjMyKDAsIHgpOwotICAgICAgICAgICAgICAgIHJvd1swXSA9IGNvbG9yc1tp
bmRleF1beCAqIDNdOwotICAgICAgICAgICAgICAgIHJvd1sxXSA9IGNvbG9yc1tpbmRleF1beCAq
IDMgKyAxXTsKLSAgICAgICAgICAgICAgICByb3dbMl0gPSBjb2xvcnNbaW5kZXhdW3ggKiAzICsg
Ml07Ci0gICAgICAgICAgICAgICAgcm93WzNdID0gY29sb3JzW2luZGV4XVt4ICogMyArIDJdOwot
ICAgICAgICAgICAgICAgIHJvd1s0XSA9IGNvbG9yc1tpbmRleF1beCAqIDMgKyAxXTsKLSAgICAg
ICAgICAgICAgICByb3dbNV0gPSBjb2xvcnNbaW5kZXhdW3ggKiAzXTsKLSAgICAgICAgICAgICAg
ICByb3dbNl0gPSB0cmFuc3BhcmVudENvbG9yOwotICAgICAgICAgICAgICAgIHJvd1s3XSA9IHRy
YW5zcGFyZW50Q29sb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZWxzZQogICAgICAgICAvLyBXZSB1c2UgYSAyLXBp
eGVsLWhpZ2ggbWlzc3BlbGxpbmcgaW5kaWNhdG9yIGJlY2F1c2UgdGhhdCBzZWVtcyB0byBiZQog
ICAgICAgICAvLyB3aGF0IFdlYktpdCBpcyBkZXNpZ25lZCBmb3IsIGFuZCBob3cgbXVjaCByb29t
IHRoZXJlIGlzIGluIGEgdHlwaWNhbAogICAgICAgICAvLyBwYWdlIGZvciBpdC4KQEAgLTY4OCwy
NiArNjEzLDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFy
a2VyKGNvbnN0IEZsb2F0UG9pbnQmIHB0LCBmbG9hdCB3aWR0CiAgICAgICAgICAgICBkcmF3MnhN
YXJrZXIobWlzc3BlbGxCaXRtYXBbaW5kZXhdLCBpbmRleCk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCiAgICAgfQogCi0jaWYgUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICBTa1NjYWxhciBvcmlnaW5YID0gV2ViQ29y
ZUZsb2F0VG9Ta1NjYWxhcihwdC54KCkpICogZGV2aWNlU2NhbGVGYWN0b3I7Ci0gICAgU2tTY2Fs
YXIgb3JpZ2luWSA9IFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIocHQueSgpKSAqIGRldmljZVNjYWxl
RmFjdG9yOwotCi0gICAgLy8gTWFrZSBzdXJlIHRvIGRyYXcgb25seSBjb21wbGV0ZSBkb3RzLgot
ICAgIGludCByb3dQaXhlbHMgPSBtaXNzcGVsbEJpdG1hcFtpbmRleF0tPndpZHRoKCk7Ci0gICAg
ZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3aWR0aCAqIGRldmljZVNjYWxlRmFjdG9yLCByb3dQaXhl
bHMpOwotICAgIGlmIChyb3dQaXhlbHMgLSB3aWR0aE1vZCA+IGRldmljZVNjYWxlRmFjdG9yKQot
ICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZCAvIGRldmljZVNjYWxlRmFjdG9yOwotI2Vsc2UKICAg
ICBTa1NjYWxhciBvcmlnaW5YID0gV2ViQ29yZUZsb2F0VG9Ta1NjYWxhcihwdC54KCkpOwogCiAg
ICAgLy8gT2Zmc2V0IGl0IHZlcnRpY2FsbHkgYnkgMSBzbyB0aGF0IHRoZXJlJ3Mgc29tZSBzcGFj
ZSB1bmRlciB0aGUgdGV4dC4KICAgICBTa1NjYWxhciBvcmlnaW5ZID0gV2ViQ29yZUZsb2F0VG9T
a1NjYWxhcihwdC55KCkpICsgMTsKICAgICBvcmlnaW5YICo9IGRldmljZVNjYWxlRmFjdG9yOwog
ICAgIG9yaWdpblkgKj0gZGV2aWNlU2NhbGVGYWN0b3I7Ci0jZW5kaWYKIAogICAgIC8vIE1ha2Ug
YSBzaGFkZXIgZm9yIHRoZSBiaXRtYXAgd2l0aCBhbiBvcmlnaW4gb2YgdGhlIGJveCB3ZSdsbCBk
cmF3LiBUaGlzCiAgICAgLy8gc2hhZGVyIGlzIHJlZmNvdW50ZWQgYW5kIHdpbGwgaGF2ZSBhbiBp
bml0aWFsIHJlZmNvdW50IG9mIDEuCkBAIC0xMjAwLDE0ICsxMTEzLDYgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQ6OmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZv
cm1Db250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKTsKIH0KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KSAmJiBPUyhEQVJXSU4pCi1DR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigp
Ci17Ci0gICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBkZXZpY2VTcGFjZSA9IENHQ29sb3JTcGFj
ZUNyZWF0ZURldmljZVJHQigpOwotICAgIHJldHVybiBkZXZpY2VTcGFjZTsKLX0KLSNlbmRpZgot
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1GaWxsRWxsaXBzZShjb25zdCBGbG9hdFJl
Y3QmIGVsbGlwc2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAppbmRleCAx
M2NjZjExZWY4YzE0M2UwMTQ4NWIwNjNlZTk3MzNjZmYyZjVlYTQzLi4zOWMxMDYyMjk5NTRhODQz
MjNhNTU0MWFmNTlmNDUyOTYwOGM4NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCkBAIC01MywxMCArNTMsNiBAQAogI2lu
Y2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBVc2VkIGJ5IGNvbXB1dGVSZXNhbXBsaW5nTW9kZSB0byB0ZWxsIGhvdyBiaXRtYXBz
IHNob3VsZCBiZSByZXNhbXBsZWQuCkBAIC0yOTYsOSArMjkyLDYgQEAgc3RhdGljIFNrQml0bWFw
IGV4dHJhY3RTY2FsZWRJbWFnZUZyYWdtZW50KGNvbnN0IE5hdGl2ZUltYWdlU2tpYSYgYml0bWFw
LCBjb25zdAogLy8gc2NhbGluZyBvciB0cmFuc2xhdGlvbi4KIHN0YXRpYyB2b2lkIGRyYXdSZXNh
bXBsZWRCaXRtYXAoUGxhdGZvcm1Db250ZXh0U2tpYSogY29udGV4dCwgU2tQYWludCYgcGFpbnQs
IGNvbnN0IE5hdGl2ZUltYWdlU2tpYSYgYml0bWFwLCBjb25zdCBTa1JlY3QmIHNyY1JlY3QsIGNv
bnN0IFNrUmVjdCYgZGVzdFJlY3QpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJB
Q0VfRVZFTlQwKCJza2lhIiwgImRyYXdSZXNhbXBsZWRCaXRtYXAiKTsKLSNlbmRpZgogICAgIC8v
IFdlIHdhbnQgdG8gc2NhbGUgfGRlc3RSZWN0fCB3aXRoIHRyYW5zZm9ybWF0aW9uIGluIHRoZSBj
YW52YXMgdG8gb2J0YWluCiAgICAgLy8gdGhlIGZpbmFsIHNjYWxlLiBUaGUgZmluYWwgc2NhbGUg
aXMgYSBjb21iaW5hdGlvbiBvZiBzY2FsZSB0cmFuc2Zvcm0KICAgICAvLyBpbiBjYW52YXMgYW5k
IGV4cGxpY2l0IHNjYWxpbmcgKHNyY1JlY3QgYW5kIGRlc3RSZWN0KS4KQEAgLTM1OSw5ICszNTIs
NiBAQCBzdGF0aWMgYm9vbCBoYXNOb245MHJvdGF0aW9uKFBsYXRmb3JtQ29udGV4dFNraWEqIGNv
bnRleHQpCiAKIHN0YXRpYyB2b2lkIHBhaW50U2tCaXRtYXAoUGxhdGZvcm1Db250ZXh0U2tpYSog
cGxhdGZvcm1Db250ZXh0LCBjb25zdCBOYXRpdmVJbWFnZVNraWEmIGJpdG1hcCwgY29uc3QgU2tS
ZWN0JiBzcmNSZWN0LCBjb25zdCBTa1JlY3QmIGRlc3RSZWN0LCBjb25zdCBTa1hmZXJtb2RlOjpN
b2RlJiBjb21wT3ApCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQw
KCJza2lhIiwgInBhaW50U2tCaXRtYXAiKTsKLSNlbmRpZgogICAgIFNrUGFpbnQgcGFpbnQ7CiAg
ICAgcGFpbnQuc2V0WGZlcm1vZGVNb2RlKGNvbXBPcCk7CiAgICAgcGFpbnQuc2V0QWxwaGEocGxh
dGZvcm1Db250ZXh0LT5nZXROb3JtYWxpemVkQWxwaGEoKSk7CkBAIC00NjUsOSArNDU1LDYgQEAg
dm9pZCBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIEJsZW5kTW9kZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBU
UkFDRV9FVkVOVDAoInNraWEiLCAiSW1hZ2U6OmRyYXdQYXR0ZXJuIik7Ci0jZW5kaWYKICAgICBS
ZWZQdHI8TmF0aXZlSW1hZ2VTa2lhPiBiaXRtYXAgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpOwogICAgIGlmICghYml0bWFwKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5jcHAK
aW5kZXggZTY4OWQwN2ZlMTQ2YmI3MDQ3N2E0ZDAxMzIwMWYxYzdmNTg0NWJkNy4uZGQzZGRkZTY4
OWM1OWNiNmQ3MGE4Yjc4OTczYzc0MWJjYWJjMDdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcApAQCAt
NDAsMTEgKzQwLDYgQEAKICNpbmNsdWRlICJTa1BpeGVsUmVmLmgiCiAjaW5jbHVkZSAiU2tpYVV0
aWxzLmgiCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJEZWZlcnJlZEltYWdl
RGVjb2Rlci5oIgotI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIE5hdGl2ZUltYWdlU2tpYTo6TmF0aXZlSW1hZ2VTa2lhKCkKQEAgLTg3LDEx
ICs4Miw2IEBAIGJvb2wgTmF0aXZlSW1hZ2VTa2lhOjpoYXNSZXNpemVkQml0bWFwKGNvbnN0IFNr
SVNpemUmIHNjYWxlZEltYWdlU2l6ZSwgY29uc3QgU2tJCiAKIFNrQml0bWFwIE5hdGl2ZUltYWdl
U2tpYTo6cmVzaXplZEJpdG1hcChjb25zdCBTa0lTaXplJiBzY2FsZWRJbWFnZVNpemUsIGNvbnN0
IFNrSVJlY3QmIHNjYWxlZEltYWdlU3Vic2V0KSBjb25zdAogewotI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQotICAgIGlmIChEZWZlcnJlZEltYWdlRGVjb2Rlcjo6aXNMYXp5RGVjb2RlZChtX2ltYWdl
KSkKLSAgICAgICAgcmV0dXJuIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpjcmVhdGVSZXNpemVkTGF6
eURlY29kaW5nQml0bWFwKG1faW1hZ2UsIHNjYWxlZEltYWdlU2l6ZSwgc2NhbGVkSW1hZ2VTdWJz
ZXQpOwotI2VuZGlmCi0KICAgICBpZiAoIWhhc1Jlc2l6ZWRCaXRtYXAoc2NhbGVkSW1hZ2VTaXpl
LCBzY2FsZWRJbWFnZVN1YnNldCkpIHsKICAgICAgICAgYm9vbCBzaG91bGRDYWNoZSA9IGlzRGF0
YUNvbXBsZXRlKCkKICAgICAgICAgICAgICYmIHNob3VsZENhY2hlUmVzYW1wbGluZyhzY2FsZWRJ
bWFnZVNpemUsIHNjYWxlZEltYWdlU3Vic2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCmlu
ZGV4IDZiYjg4MmFkOWFlOWEwODQ3MzVmNzI5YTFiN2ExMTI1NmRhN2JiNzQuLjZlNGRhOTNkNTA2
MDg2MjBiMmFmY2JiNjM0NTQxOTg2MGQzZjcxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNw
cApAQCAtNTIsMTAgKzUyLDYgQEAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlRy
YWNlRXZlbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQbGF0
Zm9ybUNvbnRleHRTa2lhOjpEZWZlcnJlZFNhdmVTdGF0ZSB7CkBAIC01NzAsOSArNTY2LDYgQEAg
dm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXREYXNoUGF0aEVmZmVjdChTa0Rhc2hQYXRoRWZm
ZWN0KiBkYXNoKQogCiBjb25zdCBTa0JpdG1hcCogUGxhdGZvcm1Db250ZXh0U2tpYTo6Yml0bWFw
KCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVDAoInNr
aWEiLCAiUGxhdGZvcm1Db250ZXh0U2tpYTo6Yml0bWFwIik7Ci0jZW5kaWYKICAgICByZXR1cm4g
Jm1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNzQml0bWFwKGZhbHNlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIu
aAppbmRleCBhNGU3MDY2NGQxZTZiYTdjMWU0NmFjZDgzYTE2MDMzNjBjN2YwN2ZjLi40YTY1OWEx
ZjY4MzEyOTk4ZmQyYTZhY2YyNmNhZmQ0MmQ5MzljNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtMTQ3LDI1
ICsxNDcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAgICAgICAgfQogCi0jaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHZvaWQgc2V0U2tCaXRtYXAoY29uc3QgU2tCaXRt
YXAmIGJpdG1hcCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9iaXRtYXAgPSBOYXRpdmVJbWFn
ZVNraWE6OmNyZWF0ZShiaXRtYXApOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgU2tCaXRt
YXAmIGdldFNrQml0bWFwKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1f
Yml0bWFwLT5iaXRtYXAoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgc2V0TWVtb3J5QWxs
b2NhdG9yKFNrQml0bWFwOjpBbGxvY2F0b3IqIGFsbG9jYXRvcikKLSAgICAgICAgewotICAgICAg
ICAgICAgbV9hbGxvY2F0b3IgPSBhbGxvY2F0b3I7Ci0gICAgICAgIH0KLQotICAgICAgICBTa0Jp
dG1hcDo6QWxsb2NhdG9yKiBhbGxvY2F0b3IoKSBjb25zdCB7IHJldHVybiBtX2FsbG9jYXRvcjsg
fQotI2VuZGlmCi0KICAgICAgICAgLy8gVXNlIGZpeCBwb2ludCBtdWx0aXBsaWVyIGluc3RlYWQg
b2YgaW50ZWdlciBkaXZpc2lvbiBvciBmbG9hdGluZyBwb2ludCBtYXRoLgogICAgICAgICAvLyBU
aGlzIG11bHRpcGxlciBwcm9kdWNlcyBleGFjdGx5IHRoZSBzYW1lIHJlc3VsdCBmb3IgYWxsIHZh
bHVlcyBpbiByYW5nZSAwIC0gMjU1LgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZml4
UG9pbnRTaGlmdCA9IDI0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2
ZWxkYi9MZXZlbERCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxk
Yi9MZXZlbERCRGF0YWJhc2UuY3BwCmluZGV4IGU0ZmJiNTJmZGFmNmJmZTYxYjFhZDVmNjdlZjI3
MjM5MjZjZGYwMjYuLjQ1NDU1MjUzY2UyNjIzODM1OWY2MjExZWVmYjc2ZjM0MDc5MGQwZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFz
ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMZXZlbERCU2xpY2UuaCIKICNpbmNs
dWRlICJMZXZlbERCV3JpdGVCYXRjaC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPGhlbHBlcnMvbWVtZW52L21lbWVudi5oPgog
I2luY2x1ZGUgPGxldmVsZGIvY29tcGFyYXRvci5oPgogI2luY2x1ZGUgPGxldmVsZGIvZGIuaD4K
QEAgLTQ0LDEyICs0NSw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5j
bHVkZSA8ZW52X2lkYi5oPgotI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2VuZGlmCi0K
LSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBuYW1lc3BhY2UgbGV2ZWxkYiB7CiAKIHN0YXRpYyBF
bnYqIElEQkVudigpCkBAIC01OCw3ICs1Myw2IEBAIHN0YXRpYyBFbnYqIElEQkVudigpCiB9CiAK
IH0KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0NSwxOCArMTM5LDcgQEAg
Ym9vbCBMZXZlbERCRGF0YWJhc2U6OmRlc3Ryb3koY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIAog
c3RhdGljIHZvaWQgaGlzdG9ncmFtRnJlZVNwYWNlKGNvbnN0IGNoYXIqIHR5cGUsIFN0cmluZyBm
aWxlTmFtZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBTdHJpbmcgbmFtZSA9ICJX
ZWJDb3JlLkluZGV4ZWREQi5MZXZlbERCLk9wZW4iICsgU3RyaW5nKHR5cGUpICsgIkZyZWVEaXNr
U3BhY2UiOwotICAgIGxvbmcgbG9uZyBmcmVlRGlza1NwYWNlSW5LQnl0ZXMgPSBXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmF2YWlsYWJsZURpc2tTcGFjZUluQnl0ZXMoZmlsZU5hbWUpIC8g
MTAyNDsKLSAgICBpZiAoZnJlZURpc2tTcGFjZUluS0J5dGVzIDwgMCkgewotICAgICAgICBIaXN0
b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5JbmRleGVkREIuTGV2
ZWxEQi5GcmVlRGlza1NwYWNlRmFpbHVyZSIsIDEvKnNhbXBsZSovLCAyLypib3VuZGFyeSovKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpbnQgY2xhbXBlZERpc2tTcGFjZUtCeXRlcyA9
IGZyZWVEaXNrU3BhY2VJbktCeXRlcyA+IElOVF9NQVggPyBJTlRfTUFYIDogZnJlZURpc2tTcGFj
ZUluS0J5dGVzOwotICAgIGNvbnN0IHVpbnQ2NF90IGhpc3RvZ3JhbU1heCA9IHN0YXRpY19jYXN0
PHVpbnQ2NF90PigxZTkpOwotICAgIENPTVBJTEVfQVNTRVJUKGhpc3RvZ3JhbU1heCA8PSBJTlRf
TUFYLCBoaXN0b2dyYW1NYXhUb29CaWcpOwotICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3Jh
bUN1c3RvbUNvdW50cyhuYW1lLnV0ZjgoKS5kYXRhKCksIGNsYW1wZWREaXNrU3BhY2VLQnl0ZXMs
IDEsIGhpc3RvZ3JhbU1heCwgMTEvKmJ1Y2tldHMqLyk7Ci0jZW5kaWYKKyAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCiBzdGF0aWMgdm9pZCBoaXN0b2dyYW1MZXZlbERCRXJyb3IoY29uc3QgY2hh
ciogaGlzdG9ncmFtTmFtZSwgY29uc3QgbGV2ZWxkYjo6U3RhdHVzJiBzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAppbmRleCBhZDQ5
MWIyYjM1ZWU5MThmYjVhYzVjMjk1Yzk5MjU1Zjg4ZGU5ZTFmLi5mYzlkOGM4YTU1YzZmYzkyNTlj
NDM4YmViNzI0ZmQ4NjM5MGI5N2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaApAQCAtMTEwLDkgKzExMCw2IEBAIHR5cGVkZWYg
TlNJbnRlZ2VyIE5TU2Nyb2xsZXJLbm9iU3R5bGU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotYm9vbCBpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFi
bGUoKTsKLSNlbHNlCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZh
aWxhYmxlKCkKIHsKICNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCkBAIC0xMjEsNyArMTE4LDYg
QEAgc3RhdGljIGlubGluZSBib29sIGlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpCiAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9Ci0jZW5kaWYKIAogTlNTY3JvbGxlclN0eWxlIHJl
Y29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW0KaW5kZXggMDU2ODE0NmU2MmUwODY4Mjg2
MTI2NmFkYWRhZGFjNDZjNTJkOTlmYS4uODJiMTM1ZmQyMzJlNGEzOWY5OWQzNmQ2OGE2ZmYwMGQ4
NmQ5ZjM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xs
ZXJJbXBEZXRhaWxzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9s
bGVySW1wRGV0YWlscy5tbQpAQCAtMzEsMjIgKzMxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1ib29sIGlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2
YWlsYWJsZSgpCi17Ci0gICAgc3RhdGljIGJvb2wgYXBpQXZhaWxhYmxlOwotICAgIHN0YXRpYyBi
b29sIHNob3VsZEluaXRpYWxpemUgPSB0cnVlOwotICAgIGlmIChzaG91bGRJbml0aWFsaXplKSB7
Ci0gICAgICAgIHNob3VsZEluaXRpYWxpemUgPSBmYWxzZTsKLSAgICAgICAgQ2xhc3Mgc2Nyb2xs
ZXJJbXBDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpOwotICAgICAg
ICBDbGFzcyBzY3JvbGxlckltcFBhaXJDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3Jv
bGxlckltcFBhaXIiKTsKLSAgICAgICAgYXBpQXZhaWxhYmxlID0gW3Njcm9sbGVySW1wQ2xhc3Mg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzY3JvbGxlckltcFdpdGhTdHlsZTpjb250cm9s
U2l6ZTpob3Jpem9udGFsOnJlcGxhY2luZ1Njcm9sbGVySW1wOildCi0gICAgICAgICAgICAgICAg
ICAgICAgICYmIFtzY3JvbGxlckltcFBhaXJDbGFzcyBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2Nyb2xsZXJTdHlsZSldOwotICAgIH0KLSAgICByZXR1cm4gYXBpQXZhaWxh
YmxlOwotfQotI2VuZGlmCi0KIE5TU2Nyb2xsZXJTdHlsZSByZWNvbW1lbmRlZFNjcm9sbGVyU3R5
bGUoKSB7CiAgICAgaWYgKFNldHRpbmdzOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSkKICAgICAg
ICAgcmV0dXJuIE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggNDI2MTg4NjE0YTgxMmQ5ODJh
ZTRkYzYxZWExNTIwZTBjMTQ2NDVkMC4uYzBiYTg3NDY4NzMxODYwYmEwMWE0MDRiMTZiODY5MTYx
N2I3YjllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQpAQCAtNDMyLDcgKzQzMiw2IEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiAg
ICAgcmV0dXJuIGFSZWN0OwogfQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogLSAoQ0FMYXll
ciAqKWxheWVyCiB7CiAgICAgaWYgKCFfc2Nyb2xsYmFyKQpAQCAtNDQ1LDcgKzQ0NCw2IEBAIGVu
dW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiAgICAgc3RhdGljIENBTGF5ZXIgKmR1bW15TGF5ZXIgPSBb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdOwogICAgIHJldHVybiBkdW1teUxheWVyOwogfQotI2VuZGlm
CiAKIC0gKE5TUG9pbnQpbW91c2VMb2NhdGlvbkluU2Nyb2xsZXJGb3JTY3JvbGxlckltcDooaWQp
c2Nyb2xsZXJJbXAKIHsKQEAgLTY0Miw3ICs2NDAsNyBAQCBTY3JvbGxBbmltYXRvck1hYzo6flNj
cm9sbEFuaW1hdG9yTWFjKCkKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JT
eXN0ZW0oKQogewogICAgIE5TU3RyaW5nKiBzY3JvbGxBbmltYXRpb25EZWZhdWx0c0tleSA9IAot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA3MCB8fCBQTEFURk9STShD
SFJPTUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKICAg
ICAgICAgQCJBcHBsZVNjcm9sbEFuaW1hdGlvbkVuYWJsZWQiOwogI2Vsc2UKICAgICAgICAgQCJO
U1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tCmluZGV4IDkxOThlMThj
MzZhYmQ3MjcwNGI3Y2Q2NzRkOTZkM2U3MjgzMTFlOTEuLjU0M2UzYTU0OTUzNDlhZTM2MGI5ZmZk
ODE5MTg3MGM1ODI5M2I0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0KQEAgLTYzLDcgKzYzLDcgQEAg
c3RhdGljIGNvbnN0IGZsb2F0IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1RpbWVvdXQgPSAwLjEwZjsK
IHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kRGlyZWN0aW9uTG9ja1N0cmV0Y2hSYXRpbyA9
IDE7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZE1pbmltdW1SZXF1aXJlZERlbHRhQmVm
b3JlU3RyZXRjaCA9IDEwOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDcwIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPD0gMTA3MAogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRTdGlmZm5lc3Mg
PSAyMDsKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kQW1wbGl0dWRlID0gMC4zMWY7CiBz
dGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZFBlcmlvZCA9IDEuNmY7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmluZGV4IGE3OGNkNjYwNWM5
NzA5NzM5ZGE0ZTBiNzg3MDU3ZjU4MzA0MjUyNTcuLjY5N2I0YTg4NmUwYTIwMjkwODVjZGM2YjM2
YWY4OGM3Y2EyYmQzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5oCkBAIC00MSw5ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVFbmFibGVkU3RhdGUoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKTsKIAotI2lmICFQ
TEFURk9STShDSFJPTUlVTSkKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoU2Nyb2xsYmFyVGhlbWVD
bGllbnQqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KTsKLSNl
bmRpZgogCiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplID0gUmVndWxhclNjcm9sbGJhcik7CiAgICAgCkBAIC04MSw3ICs3OSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHJhZ0RvY3VtZW50SW5zdGVhZE9mVGh1bWIo
U2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBp
bnQgc2Nyb2xsYmFyUGFydFRvSElQcmVzc2VkU3RhdGUoU2Nyb2xsYmFyUGFydCk7CiAKLSNpZiAh
UExBVEZPUk0oQ0hST01JVU0pICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJl
YXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBDb2xvciYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFwaGljc0xheWVyKikg
T1ZFUlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5tbQppbmRleCA2Yjg0ODNiYjkwYjk0OGNjNDIwMWYyYTUzN2M2NjY2Y2I0
NDAyNGU3Li5mMjc0YjkxYWEzYTRhYzZjNGU3NTJkNDM5NzAzMjgzNmU5NTZkMGE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0x
MTMsMTMgKzExMywxMSBAQCBzdGF0aWMgU2Nyb2xsYmFyUGFpbnRlck1hcCogc2Nyb2xsYmFyTWFw
KCkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogU2Ny
b2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCiB7CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZU1hYywgdGhlbWUsICgpKTsKICAgICByZXR1cm4g
JnRoZW1lOwogfQotI2VuZGlmCiAKIC8vIEZJWE1FOiBHZXQgdGhlc2UgbnVtYmVycyBmcm9tIENv
cmVVSS4KIHN0YXRpYyBpbnQgY1JlYWxCdXR0b25MZW5ndGhbXSA9IHsgMjgsIDIxIH07CkBAIC00
NzgsNyArNDc2LDYgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRl
KFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCiAgICAgICAgIFtzY3JvbGxiYXJNYXAo
KS0+Z2V0KHNjcm9sbGJhcikuZ2V0KCkgc2V0RW5hYmxlZDpzY3JvbGxiYXItPmVuYWJsZWQoKV07
CiB9CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBzdGF0aWMgdm9pZCBzY3JvbGxiYXJQYWlu
dGVyUGFpbnQoU2Nyb2xsYmFyUGFpbnRlciBzY3JvbGxiYXJQYWludGVyLCBib29sIGVuYWJsZWQs
IGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0KQogewog
ICAgIFtzY3JvbGxiYXJQYWludGVyIHNldEVuYWJsZWQ6ZW5hYmxlZF07CkBAIC01OTcsOSArNTk0
LDggQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xsYmFyVGhlbWVDbGllbnQq
IHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0KgogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5k
aWYKIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBzdGF0aWMgUmV0YWluUHRyPENHQ29s
b3JSZWY+IGxpbmVuQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBOU0ltYWdlICppbWFnZSA9IFtO
U0NvbG9yIF9saW5lblBhdHRlcm5JbWFnZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0KaW5kZXggMjM0MDU4NDY2NGMyNDNjY2E5ODk5YzA2ZTI5NmNmZDliZTViNmU1NS4u
ZGY0OGU4ZGU0N2RhZDdmYTI2ZTVjNmM0ZTVjYTA4N2IyNDdjZTgwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtNTcyLDEwICs1NzIsOCBAQCBzdGF0aWMgdm9p
ZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0YXRlcyBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSQogLy8gSWYgdGhlIFNjcm9sbFZpZXcgZG9lc24ndCBoYXZlIGFuIE5TVmll
dywgd2Ugd2lsbCByZXR1cm4gYSBmYWtlIE5TVmlldyB3aG9zZSBzb2xlIHB1cnBvc2UgaXMgdG8g
dGVsbCBBcHBLaXQgdGhhdCBpdCdzIGZsaXBwZWQuCiBOU1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVk
VmlldyhTY3JvbGxWaWV3KiBzY3JvbGxWaWV3KQogewotI2lmICFQTEFURk9STShDSFJPTUlVTSkK
ICAgICBpZiAoTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBzY3JvbGxWaWV3LT5kb2N1bWVudFZpZXco
KSkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50VmlldzsKLSNlbmRpZgogICAgIAogICAgIC8vIFVz
ZSBhIGZha2UgZmxpcHBlZCB2aWV3LgogICAgIHN0YXRpYyBOU1ZpZXcgKmZsaXBwZWRWaWV3ID0g
W1tXZWJDb3JlRmxpcHBlZFZpZXcgYWxsb2NdIGluaXRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVOU0NlbGxFeHRyYXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmgKaW5kZXggNzg5NGQzZGU4YjNmYmUz
MzcwOWMxZTUyMTUzYTkyYWQyYWY3MzBlOC4uMDA1MzM0YzkxMGNjNzM1OTFlZjE3YWI2Yjg5MWU3
Nzc3MTJhMjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVOU0NlbGxFeHRyYXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZU5TQ2VsbEV4dHJhcy5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPEFwcEtpdC9BcHBL
aXQuaD4KIAotI2RlZmluZSBCVVRUT05fQ0VMTF9EUkFXX1dJVEhfRlJBTUVfRFJBV1NfRk9DVVNf
UklORyAoX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDcwIHx8IFBMQVRGT1JN
KENIUk9NSVVNKSkKKyNkZWZpbmUgQlVUVE9OX0NFTExfRFJBV19XSVRIX0ZSQU1FX0RSQVdTX0ZP
Q1VTX1JJTkcgKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA3MCkKIAogI2lm
ICFCVVRUT05fQ0VMTF9EUkFXX1dJVEhfRlJBTUVfRFJBV1NfRk9DVVNfUklORwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5jcHAKaW5kZXggZGUz
ZWU1YWFmZGFhYWVjNWQwMDc0NTI0NTQwYWYyOGU2MDg2OTdmYS4uOWNiMTM3YjQ0NjQ4MzJjYWE5
MGEyNjY0NmExMDUzMmRmNTEwNTEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcApAQCAtMzUsNyArMzUsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBCbG9iUmVnaXN0cnkmIGJsb2JS
ZWdpc3RyeSgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTQ3LDcgKzQ2LDYg
QEAgQmxvYlJlZ2lzdHJ5JiBibG9iUmVnaXN0cnkoKQogI2VuZGlmCiAgICAgcmV0dXJuIGluc3Rh
bmNlOwogfQotI2VuZGlmCiAKIEJsb2JSZWdpc3RyeTo6fkJsb2JSZWdpc3RyeSgpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNw
cAppbmRleCBiYzEyODQ5OTQ0YTNkZjE3Y2ViMDM0N2U3Mzg0Y2EyZDRhYWUyMjNiLi42MWNmMzlh
YTY3MDRiYmNiNjJkNjRmMmYxZmI2ZGUxNTZmNWY3YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTQ5LDcgKzQ5
LDYgQEAgQmxvYlJlZ2lzdHJ5SW1wbDo6fkJsb2JSZWdpc3RyeUltcGwoKQogewogfQogCi0jaWYg
IVBMQVRGT1JNKENIUk9NSVVNKQogc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNy
ZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QmxvYlJl
Z2lzdHJ5SW1wbCY+KGJsb2JSZWdpc3RyeSgpKS5jcmVhdGVSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCBjbGllbnQpOwpAQCAtNzEsMTMgKzcwLDYgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iUmVz
b3VyY2VIYW5kbGVDb25zdHJ1Y3RvcigpCiAgICAgfQogfQogCi0jZWxzZQotCi1zdGF0aWMgdm9p
ZCByZWdpc3RlckJsb2JSZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yKCkKLXsKLX0KLSNlbmRpZgot
CiBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBCbG9iUmVnaXN0cnlJbXBsOjpjcmVhdGVSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQpCiB7CiAgICAgUmVmUHRyPEJsb2JSZXNvdXJjZUhhbmRsZT4gaGFuZGxl
ID0gQmxvYlJlc291cmNlSGFuZGxlOjpjcmVhdGVBc3luYyhnZXRCbG9iRGF0YUZyb21VUkwocmVx
dWVzdC51cmwoKSksIHJlcXVlc3QsIGNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCmluZGV4IDZjODVm
ZDlmODY4YmUwYWUwZDg2ZWJhNDIzZDRjZmZlNWZjMTNjNDUuLjZiYzkzZTgzNWMwNjA5YmM2ZDQ4
NDNmMmU2MjRkY2QwMmEwN2VkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC00NiwxNyArNDYsNCBA
QCB2b2lkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzZXROZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rp
b24odm9pZCgqZnVuY3Rpb24pKCkpCiAgICAgbV9uZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24g
PSBmdW5jdGlvbjsKIH0KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotdm9pZCBOZXR3b3JrU3Rh
dGVOb3RpZmllcjo6c2V0T25MaW5lKGJvb2wgb25MaW5lKQotewotICAgIGlmIChtX2lzT25MaW5l
ID09IG9uTGluZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc09uTGluZSA9IG9uTGluZTsK
LQotICAgIGlmIChtX25ldHdvcmtTdGF0ZUNoYW5nZWRGdW5jdGlvbikKLSAgICAgICAgbV9uZXR3
b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24oKTsKLX0KLSNlbmRpZiAvLyBQTEFURk9STShDSFJPTUlV
TSkgfHwgUExBVEZPUk0oRUZMKQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgKaW5kZXggZDEyZDRiNTFlMjg2MzU5
MGFmZDVjZDI4MmU3NmQ3ZDgyZjYwN2Y2Ni4uNjFkZWNmNWZkZTAyYmYzYzJiMGFjMWM2ZjNmMjkx
MTI3NjhlYzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RhdGVOb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaApAQCAtNzEsOCArNzEsNiBAQCBwdWJsaWM6CiAKICNp
ZiAoUExBVEZPUk0oUVQpICYmICFkZWZpbmVkKFFUX05PX0JFQVJFUk1BTkFHRU1FTlQpKQogICAg
IHZvaWQgc2V0TmV0d29ya0FjY2Vzc0FsbG93ZWQoYm9vbCk7Ci0jZWxpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICB2b2lkIHNldE9uTGluZShib29sKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
QkxBQ0tCRVJSWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaAppbmRleCAyOTIzMGRiMGIxMzViNTQwYzk0N2M5N2RiYTg4OTY0ZmMz
ZGQ2MWYzLi43M2E2NmM5YWVhZDEyY2Q4MjU0OGEwMGY0MGQxNWYyYjdiYTk4NGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0yOCwxMiArMjgsNiBAQAogI2luY2x1ZGUgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdl
YkNvb2tpZUphcjsKLX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8cWds
b2JhbC5oPgogI2VuZGlmCkBAIC02NywxMSArNjEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0ID0g
MDsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIC8vIEZJWE1FOiBXcmFwIFdlYkNvb2tp
ZUphciBpbnRvIGEgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIHRvIG1ha2UgdGhlIGNvZGUgY3Jvc3Mt
cGxhdGZvcm0uCi0gICAgdmlydHVhbCBXZWJLaXQ6OldlYkNvb2tpZUphciogY29va2llSmFyKCkg
Y29uc3QgPSAwOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCBib29s
IG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBs
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgPSAwOyAvLyBGSVhNRTogUmVj
b25jaWxlIHdpdGggUmVzb3VyY2VIYW5kbGU6OmZvcmNlQ29udGVudFNuaWZmaW5nKCkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xp
ZW50LmgKaW5kZXggZGYzYTI5ZGIxYWQ3MjNjZjdkMWU4N2U0ODg1MDYyNzYwMDAwYjBkNS4uZTI1
YjZmODA4NzE3MDI5ZGVkNDllNjU5ZWQ5M2RiOTFhY2Y4ZWNlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaApAQCAt
MTE3LDkgKzExNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDRk5FVFdPUkspCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1ZTsg
fQogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBk
aWREb3dubG9hZERhdGEoUmVzb3VyY2VIYW5kbGUqLCBpbnQgLypkYXRhTGVuZ3RoKi8pIHsgfQot
I2VuZGlmCiAKICNpZiBVU0UoU09VUCkKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCA1ZWM5
NGE0MDRkYjA4ZmY5MTQ0NWRjZDcwNGE1MzUzNmEwYzJmNzc3Li4wMTkwMjU5OWFlY2E5ZDM2NGNk
M2Q1MWU2ZjA3NjY2ZDVjZmMzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTUyNiw3ICs1MjYsNyBA
QCB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnVwZGF0ZVJlc291cmNlUmVxdWVzdChIVFRQQm9k
eVVwZGF0ZVBvbGljeSBib2R5UG9saWN5KQogICAgIH0KIH0KIAotI2lmICFQTEFURk9STShNQUMp
ICYmICFVU0UoQ0ZORVRXT1JLKSAmJiAhVVNFKFNPVVApICYmICFQTEFURk9STShDSFJPTUlVTSkg
JiYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiAhUExBVEZPUk0o
TUFDKSAmJiAhVVNFKENGTkVUV09SSykgJiYgIVVTRShTT1VQKSAmJiAhUExBVEZPUk0oUVQpICYm
ICFQTEFURk9STShCTEFDS0JFUlJZKQogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29u
bmVjdGlvbkNvdW50UGVySG9zdCgpCiB7CiAgICAgLy8gVGhpcyBpcyB1c2VkIGJ5IHRoZSBsb2Fk
ZXIgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIGlzc3VlZCBwYXJhbGxlbCBsb2FkIHJlcXVlc3Rz
LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRp
b25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0Yu
Y3BwCmluZGV4IDFiNjE2ZWI2MGJlOTZmYTUxYmVjZjgxNjgxZDVmZmVmYTljNWI5NGMuLjZkMTll
ZDFkOGVhYTBiNzNiNDg1ODliNTNmZDJjOWJlNDQ1MjQ0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkh5cGhlbmF0aW9uLmgiCiAKLSNpZiAo
IVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKSkgfHwgUExBVEZPUk0oSU9TKSB8
fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKKyNpZiAhUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIgogI2luY2x1
ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKQEAgLTc2LDQgKzc2LDQgQEAgc2l6
ZV90IGxhc3RIeXBoZW5Mb2NhdGlvbihjb25zdCBVQ2hhciogY2hhcmFjdGVycywgc2l6ZV90IGxl
bmd0aCwgc2l6ZV90IGJlZm9yZUkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYg
Ly8gKCFQTEFURk9STShNQUMpICYmICFQTEFURk9STShDSFJPTUlVTSkpIHx8IFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjZW5kaWYgLy8g
IVBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlld05vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5j
cHAKaW5kZXggZWQ4Zjg5MDM1YzQzMTAzZTdiNmJjOGIwOWMxM2QwNjdhM2Q0OTI4Zi4uMGM5NDVm
YjY0YmJhNmRlNDJiYTg5N2QzMjc1ZmVmZjRkNWYyYmFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUZvY3VzT3V0RXZlbnQoKQogLy8gcG9ydHMgdXNpbmcgUGx1Z2luVmlldywgYnV0
IHVudGlsIHRoZW4sIGlmIG5ldyBmdW5jdGlvbnMgbGlrZSB0aGlzIGFyZSAKIC8vIGFkZGVkLCBw
bGVhc2UgbWFrZSBzdXJlIHRoZXkgaGF2ZSB0aGUgcHJvcGVyIHBsYXRmb3JtICNpZnMgc28gdGhh
dCBjaGFuZ2VzCiAvLyBkbyBub3QgYnJlYWsgcG9ydHMgd2hvIGNvbXBpbGUgYm90aCB0aGlzIGZp
bGUgYW5kIFBsdWdpblZpZXcuY3BwLiAgIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
Q0hST01JVU0pIHx8IFBMQVRGT1JNKEVGTCkgfHwgKE9TKFdJTkNFKSAmJiAhUExBVEZPUk0oUVQp
KSB8fCAoUExBVEZPUk0oUVQpICYmICFPUyhXSU5DRSkpCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShFRkwpIHx8IChPUyhXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKSkgfHwgKFBMQVRGT1JN
KFFUKSAmJiAhT1MoV0lOQ0UpKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogdm9p
ZCBQbHVnaW5WaWV3OjprZWVwQWxpdmUoTlBQKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IGJiYTA5ODM2YTFlYmE4NGU1OTRhMjNhOTRmMjYxNTM2ZWU1MDcyNDQuLmQ0
YjlkZTE2MzExYWYxOWYyOTE5YjkxZWQ4YjYzZWViMjQ5MzE1NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTEyNiwxNCArMTI2LDYgQEAKICNpbmNsdWRlIDx3dGYvZHRv
YS5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJGaWx0ZXJP
cGVyYXRpb24uaCIKLSNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiR3Jh
cGhpY3NMYXllci5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgotI2luY2x1
ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBX1YyKQogI2luY2x1ZGUgIkNETS5oIgogI2luY2x1ZGUgIk1vY2tDRE0uaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDc3OTU0NGY2Mjk5MjgwZGFjMjhkYjg3
YzI4M2U5OTVhNTE2ZDk5NjYuLjg5YjUzNWQyZTY5N2IxYzE3MzlhMWFkN2Y4ZDBiMTNkMTRjMzVj
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNzY1LDcgKzc2NSw3
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMp
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybCk7CiAgICAgcmVxdWVzdC5zZXRI
VFRQTWV0aG9kKG1fbWV0aG9kKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0o
QkxBQ0tCRVJSWSkKKyNpZiBQTEFURk9STShCTEFDS0JFUlJZKQogICAgIHJlcXVlc3Quc2V0VGFy
Z2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzWEhSKTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196726</attachid>
            <date>2013-04-06 02:06:36 -0700</date>
            <delta_ts>2013-04-07 12:31:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114081-20130406110622.patch</filename>
            <type>text/plain</type>
            <size>121010</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3ODMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmMWY5NGFkMjZkNGMz
NTQ4MjZiZTdjMzc4YjQ0ZjU4MGRhYzNiMi4uMWZkYTk4ZjkxNmE2NjM2OTI4NjE5Yjc3MWQ5OTcz
YjIwZjRkNzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyNSBAQAorMjAxMy0wNC0wNiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFp
bmluZyBQTEFURk9STShDSFJPTUlVTSktZ3VhcmRlZCBjb2RlIGluIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDA4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWlu
aW5nIFBMQVRGT1JNKENIUk9NSVVNKSBidWlsZCBndWFyZHMuIFRoZXJlIGFyZSBzdGlsbCBhIGNv
dXBsZSBvZiBndWFyZHMKKyAgICAgICAgdGhhdCBtb3N0IGxpa2VseSBhcHBseSBvbmx5IHRvIENo
cm9taXVtLCBsaWtlIE9TKEFORFJPSUQpIG9yIFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSksCisg
ICAgICAgIGJ1dCByZW1vdmFsIG9mIHRoZXNlIHNob3VsZCBnbyBpbnRvIHNlcGFyYXRlIHBhdGNo
ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2Fu
Q2FjaGVQYWdlRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpjYW5DYWNo
ZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50
SGFuZGxlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdC
dWZmZXJzOjpzYXRpc2ZpZXNXZWJHTFJlcXVpcmVtZW50cyk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bm90aWZ5RmluaXNoZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICAoQ29udGV4
dE1lbnUpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAq
IHBsYXRmb3JtL0N1cnNvci5oOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6CisgICAgICAg
ICogcGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oOgorICAgICAgICAoUGFzdGVib2FyZCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246OndpbGxEZWNv
ZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6ZGlk
RGVjb2RlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbnN0cnVtZW50YXRpb246
OndpbGxSZXNpemVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6ZGlkUmVzaXplSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmg6CisgICAgICAgIChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAg
ICAgKFBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25l
OjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJlYXMpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGJhci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmVuYWJsZVNlY3VyZVRleHRJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpk
aXNhYmxlU2VjdXJlVGV4dElucHV0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZWN1cmVUZXh0SW5w
dXQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1N1ZGRlblRlcm1p
bmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQu
aDoKKyAgICAgICAgKFdpZGdldCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVX
ZWJLaXRCcmlkZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaDoKKyAgICAgICAgKEZs
b2F0UG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oOgorICAg
ICAgICAoRmxvYXRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUu
aDoKKyAgICAgICAgKEZsb2F0U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OndpZHRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChGb250KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAg
IChGb250Q2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6R2x5cGhCdWZmZXI6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
OgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnN1
cHBvcnRzQmFja2dyb3VuZENvbG9yQ29udGVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSWNvbi5oOgorICAgICAgICAoSWNvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0Lmg6CisgICAgICAgIChJbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2lt
cGxlRm9udERhdGEuaDoKKyAgICAgICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKERlcml2
ZWRGb250RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VD
Ry5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4
ZWxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGVDRy5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL1BhdHRlcm5DRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6cGxhdGZvcm1EYXRhSW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpwbGF0Zm9ybURhdGFBc3NpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0
YTo6c2V0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpjdEZvbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVDdXN0b21GaWx0ZXI6OnJlc2l6ZUNvbnRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKERyYXdpbmdCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpk
cmF3Q29tcGxleFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZvckNv
bXBsZXhUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6Om9mZnNldEZvclBvc2l0aW9uRm9y
Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6aGFzQnJva2VuQ1RGb250R2V0VmVydGljYWxUcmFuc2xhdGlv
bnNGb3JHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zM0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkcmF3T3V0ZXJQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdJbm5lclBhdGgp
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0Rm9jdXNSaW5nT3V0c2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZHJhd1Jlc2FtcGxlZEJpdG1hcCk6CisgICAgICAgIChXZWJDb3JlOjpwYWludFNrQml0bWFw
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmF0aXZlSW1hZ2VTa2lhOjpyZXNpemVkQml0bWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1Db250ZXh0U2tpYTo6Yml0bWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVs
REJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoaXN0b2dyYW1GcmVlU3BhY2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oOgorICAgICAgICAo
V2ViQ29yZTo6aXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQYWludGVyRGVs
ZWdhdGUgbGF5ZXJdKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbEFuaW1hdGlvbkVuYWJsZWRG
b3JTeXN0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJv
bGxlci5tbToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAoU2Nyb2xsYmFyVGhlbWVNYWMpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZU1hYzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OmVuc3VyZWRWaWV3
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJsb2JSZWdpc3RyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmg6
CisgICAgICAgIChOZXR3b3JrU3RhdGVOb3RpZmllcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOgorCiAyMDEzLTA0LTA1ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBQcmVmZXIgcHJlZml4ICsrLy0tIG9wZXJhdG9ycyBmb3Igbm9uLXByaW1p
dGl2ZSB0eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXggYzdjMTliZmVkNDFlNzY5ZGUzYmRj
M2QwNDVkMDgzNjRiODczYzFmZC4uMzk5YmM3NDk0NjdlOWUyZGZkNDRiOWZjZWQyZjlhZjdjN2Q5
MWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjppc01lZGlhU291cmNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFU
Rk9STShXSU4pCiAgICAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1ZpZGVvVHJhY2tF
bmFibGVkID0gdHJ1ZTsKICNlbHNlCiAgICAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
c1ZpZGVvVHJhY2tFbmFibGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b25maWcuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCmluZGV4IGNhMzFmODg3YTg3MGMyNjEz
MWZmZTI2NDY4MTRiYmRlMzIyYzNmMTIuLmFkMzdlMjg1ZTkzNWZhMDkxZGE5ODdjZjY4OTg1ZTll
ZGRjYWY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NvbmZpZy5oCkBAIC0xMjAsMTUgKzEyMCw2IEBACiAjZGVmaW5lIFdURl9VU0Vf
TkVXX1RIRU1FIDEKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLQotLy8gQ2hyb21pdW0gdXNlcyB0aGlzIGZpbGUgaW5zdGVhZCBvZiBKYXZhU2NyaXB0
Q29yZS9jb25maWcuaCB0byBjb21waWxlCi0vLyBKYXZhU2NyaXB0Q29yZS93dGYgKGNocm9taXVt
IGRvZXNuJ3QgY29tcGlsZSB0aGUgcmVzdCBvZiBKU0MpLiBUaGVyZWZvcmUsCi0vLyB0aGlzIGRl
ZmluZSBpcyByZXF1aXJlZC4KLSNkZWZpbmUgV1RGX0NIQU5HRVMgMQotCi0jZW5kaWYgLyogUExB
VEZPUk0oQ0hST01JVU0pICovCi0KICNpZiBVU0UoQ0cpCiAjaWZuZGVmIENHRkxPQVRfREVGSU5F
RAogI2lmZGVmIF9fTFA2NF9fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXgg
ZDY2NzUwMDEyZTZmYjRmOWE3YTRjNDIwOTVmZTNiYWY2NDIwOGJhYi4uMzViYzUyZDY2ZGViNjE1
YjlhMzRmNzkxNWU4Y2EzNWUwOGE4NzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hl
LmNwcApAQCAtNTcsNyArNTcsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgIWRlZmluZWQoTkRFQlVHKQor
I2lmICFkZWZpbmVkKE5ERUJVRykKIAogI2RlZmluZSBQQ0xPRyguLi4pIExPRyhQYWdlQ2FjaGUs
ICIlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBtYWtlU3RyaW5nKF9fVkFfQVJHU19fKS51dGY4
KCkuZGF0YSgpKQogICAgIApAQCAtODMsMjkgKzgzLDggQEAgZW51bSBSZWFzb25GcmFtZUNhbm5v
dEJlSW5QYWdlQ2FjaGUgewogfTsKIENPTVBJTEVfQVNTRVJUKE51bWJlck9mUmVhc29uc0ZyYW1l
c0Nhbm5vdEJlSW5QYWdlQ2FjaGUgPD0gc2l6ZW9mKHVuc2lnbmVkKSo4LCBSZWFzb25GcmFtZUNh
bm5vdEJlSW5QYWdlQ2FjaGVEb2VzTm90Rml0SW5CaXRtYXApOwogCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi1zdGF0aWMgaW50IGluZGV4T2ZTaW5nbGVCaXQoaW50MzJfdCB2KQotewotICAgIGlu
dCBpbmRleCA9IDA7Ci0gICAgaWYgKHYgJiAweEZGRkYwMDAwKQotICAgICAgICBpbmRleCA9IDE2
OwotICAgIGlmICh2ICYgMHhGRjAwRkYwMCkKLSAgICAgICAgaW5kZXggKz0gODsKLSAgICBpZiAo
diAmIDB4RjBGMEYwRjApCi0gICAgICAgIGluZGV4ICs9IDQ7Ci0gICAgaWYgKHYgJiAweENDQ0ND
Q0NDKQotICAgICAgICBpbmRleCArPSAyOwotICAgIGlmICh2ICYgMHhBQUFBQUFBQSkKLSAgICAg
ICAgaW5kZXggKz0gMTsKLSAgICByZXR1cm4gaW5kZXg7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0o
Q0hST01JVU0pCi0KIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24oRnJh
bWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiB7Ci0jaWZkZWYgTkRFQlVHCi0gICAgVU5VU0VE
X1BBUkFNKGluZGVudExldmVsKTsKLSNlbmRpZgogICAgIFBDTE9HKCIrLS0tIik7CiAgICAgaWYg
KCFmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgUENMT0coIiAg
IC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsKQEAgLTI5NiwyNCArMjc1LDEx
IEBAIHN0YXRpYyB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAgICAg
ICAgICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiUGFnZUNhY2hl
LkZyYW1lUmVqZWN0UmVhc29uQnlQYWdlIiwgaSwgTnVtYmVyT2ZSZWFzb25zRnJhbWVzQ2Fubm90
QmVJblBhZ2VDYWNoZSk7CiAgICAgICAgIH0KICAgICB9Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgLy8gVGhpcyBzdHJhbmdlbHkgc3BlY2lmaWMgaGlzdG9ncmFtIGlzIHBhcnRpY3VsYXIg
dG8gY2hyb21pdW06IGFzIG9mIDIwMTItMDMtMTYsIHRoZSBGcmFtZUNsaWVudEltcGwgYWx3YXlz
IGRlbmllcyBjYWNoaW5nLCBzbwotICAgIC8vIG9mIHBhcnRpY3VsYXIgaW50ZXJlc3QgYXJlIHNv
bGl0YXJ5IHJlYXNvbnMgb3RoZXIgdGhhbiB0aGUgZnJhbWVSZWplY3RSZWFzb25zLiBJZiB3ZSBk
aWRuJ3QgZ2V0IHRvIHRoZSBDbGllbnREZW5pZXNDYWNoaW5nLCB3ZQotICAgIC8vIHRvb2sgdGhl
IGVhcmx5IGV4aXQgZm9yIHRoZSBib3JpbmcgcmVhc29uIE5vRG9jdW1lbnRMb2FkZXIsIHNvIHdl
IHNob3VsZCBoYXZlIG9ubHkgb25lIHJlYXNvbiwgYW5kIG5vdCB0d28uCi0gICAgLy8gRklYTUU6
IHJlbW92ZSB0aGlzIGhpc3RvZ3JhbSBhZnRlciBkYXRhIGlzIGdhdGhlcmVkLgotICAgIGlmIChm
cmFtZVJlYXNvbkNvdW50ID09IDIpIHsKLSAgICAgICAgQVNTRVJUKGZyYW1lUmVqZWN0UmVhc29u
cyAmICgxIDw8IENsaWVudERlbmllc0NhY2hpbmcpKTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
c2luZ2xlUmVhc29uRm9yUmVqZWN0aW5nRnJhbWVPdGhlclRoYW5DbGllbnREZW5pZXNDYWNoaW5n
ID0gZnJhbWVSZWplY3RSZWFzb25zICYgfigxIDw8IENsaWVudERlbmllc0NhY2hpbmcpOwotICAg
ICAgICBDT01QSUxFX0FTU0VSVChOdW1iZXJPZlJlYXNvbnNQYWdlc0Nhbm5vdEJlSW5QYWdlQ2Fj
aGUgPD0gMzIsIFJlYXNvblBhZ2VDYW5ub3RCZUluUGFnZUNhY2hlRG9lc05vdEZpdEluSW50MzIp
OwotICAgICAgICBjb25zdCBpbnQgaW5kZXggPSBpbmRleE9mU2luZ2xlQml0KHN0YXRpY19jYXN0
PGludDMyX3Q+KHNpbmdsZVJlYXNvbkZvclJlamVjdGluZ0ZyYW1lT3RoZXJUaGFuQ2xpZW50RGVu
aWVzQ2FjaGluZykpOwotICAgICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJh
dGlvbigiUGFnZUNhY2hlLkZyYW1lUmVqZWN0UmVhc29uQnlQYWdlV2hlblNpbmdsZUV4Y2x1ZGlu
Z0ZyYW1lQ2xpZW50IiwgaW5kZXgsIE51bWJlck9mUmVhc29uc1BhZ2VzQ2Fubm90QmVJblBhZ2VD
YWNoZSk7Ci0gICAgfQotI2VuZGlmCiAKICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1F
bnVtZXJhdGlvbigiUGFnZUNhY2hlLkZyYW1lUmVqZWN0UmVhc29uQ291bnRCeVBhZ2UiLCBmcmFt
ZVJlYXNvbkNvdW50LCAxICsgTnVtYmVyT2ZSZWFzb25zRnJhbWVzQ2Fubm90QmVJblBhZ2VDYWNo
ZSk7CiB9CiAKLSNlbmRpZiAKKyNlbmRpZiAvLyAhZGVmaW5lZChOREVCVUcpCiAKIFBhZ2VDYWNo
ZSogcGFnZUNhY2hlKCkKIHsKQEAgLTM3Miw3ICszMzgsNyBAQCBib29sIFBhZ2VDYWNoZTo6Y2Fu
Q2FjaGUoUGFnZSogcGFnZSkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgIWRlZmluZWQoTkRFQlVHKQor
I2lmICFkZWZpbmVkKE5ERUJVRykKICAgICBsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbihwYWdlKTsK
ICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCBmYWI4NzVlOGI5MmU1ZjhmOGFiZmQ0YTcxOTY1NjUxZWYwOTJhN2UzLi4xYzE2MDVhZTVl
ZmJjYzU1NmU0Njc4NzdiZjA0OWRmMmI5ZGQyMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtNTgsMTAgKzU4LDYgQEAKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5j
bHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMTg3LDcgKzE4Myw3IEBAIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmlu
ZyYgdHlwZSwgQ2FudmFzCiAjaWYgRU5BQkxFKFdFQkdMKSAgICAKICAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwogICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0
aW5ncy0+d2ViR0xFbmFibGVkKCkKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9S
TShHVEspICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShRVCkKKyNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oUVQpCiAgICAgICAgICYmIHNldHRp
bmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiAjZW5kaWYKICAgICAgICAgKSB7
CkBAIC0xOTUsMTEgKzE5MSw2IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNF
bGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgQ2FudmFzCiAgICAgICAgIC8v
IEFjY2VwdCB0aGUgbGVnYWN5ICJ3ZWJraXQtM2QiIG5hbWUgYXMgd2VsbCBhcyB0aGUgcHJvdmlz
aW9uYWwgImV4cGVyaW1lbnRhbC13ZWJnbCIgbmFtZS4KICAgICAgICAgYm9vbCBpczNkQ29udGV4
dCA9ICh0eXBlID09ICJ3ZWJraXQtM2QiKSB8fCAodHlwZSA9PSAiZXhwZXJpbWVudGFsLXdlYmds
Iik7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCi0gICAgICAgIC8v
IE5vdyB0aGF0IFdlYkdMIGlzIHJhdGlmaWVkLCB3ZSB3aWxsIGFsc28gYWNjZXB0ICJ3ZWJnbCIg
YXMgdGhlIGNvbnRleHQgbmFtZSBpbiBDaHJvbWUuCi0gICAgICAgIGlzM2RDb250ZXh0IHw9ICh0
eXBlID09ICJ3ZWJnbCIpOwotI2VuZGlmCi0KICAgICAgICAgaWYgKGlzM2RDb250ZXh0KSB7CiAg
ICAgICAgICAgICBpZiAobV9jb250ZXh0ICYmICFtX2NvbnRleHQtPmlzM2QoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKQEAgLTUxMiwxMSArNTAzLDYgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6c2hvdWxkQWNjZWxlcmF0ZShjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogICAgIGlm
IChzaXplLndpZHRoKCkgKiBzaXplLmhlaWdodCgpIDwgc2V0dGluZ3MtPm1pbmltdW1BY2NlbGVy
YXRlZDJkQ2FudmFzU2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICBpZiAoIVdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y2FuQWNj
ZWxlcmF0ZTJkQ2FudmFzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCiAgICAg
cmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBiZjcxM2QzMTFkN2RhZjQ4MWRhYjk2OTk5
ZDA0OWMwM2U0ZDBhNWNiLi41NTAwNzA3NzNhOTE2N2ZmMTFjZjdhZmI1ZmVmNDcxNTk2ZWYxODY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpCiAj
ZGVmaW5lIERlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbnRlcnBvbGF0aW9uTWVkaXVtCiAj
ZWxpZiBVU0UoQ0cpCiAjZGVmaW5lIERlZmF1bHRJbnRlcnBvbGF0aW9uUXVhbGl0eSBJbnRlcnBv
bGF0aW9uTG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAz
YTg3NmNkYTZiZTc0NmJjZmI1NTQyYzlhOWFjZjU2OTJiNTRlNzNhLi4yNjBkMGE2NzU5ZjUyYTY1
MzZkMDYwMzQwNzIyZWY1YTlhNGQ5M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTk0Miw3ICs5NDIsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Omxv
YWROZXh0U291cmNlQ2hpbGQoKQogICAgIGxvYWRSZXNvdXJjZShtZWRpYVVSTCwgY29udGVudFR5
cGUsIGtleVN5c3RlbSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBzdGF0aWMgS1VS
TCBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKICAgICAvLyBLVVJMIHNob3VsZCBoYXZlIGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEg
dXJsIGZyb20gYSBwYXRoLCBidXQgaXQgZG9lcyBub3QuIFRoaXMgZnVuY3Rpb24KQEAgLTk2MSw3
ICs5NjAsNiBAQCBzdGF0aWMgS1VSTCBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJl
c291cmNlKGNvbnN0IFN0cmluZyYgcGF0aCkKICNlbmRpZgogICAgIHJldHVybiB1cmw7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYg
aW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSkKIHsKQEAgLTk4NCw3ICs5ODIsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRS
ZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudAogICAg
IC8vIFRoZSByZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0gCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBO
RVRXT1JLX0xPQURJTkc7CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gSWYgdGhl
IHVybCBzaG91bGQgYmUgbG9hZGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGNhY2hlLCBwYXNzIHRo
ZSB1cmwgb2YgdGhlIGNhY2hlZCBmaWxlCiAgICAgLy8gdG8gdGhlIG1lZGlhIGVuZ2luZS4KICAg
ICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogY2FjaGVIb3N0ID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1
bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpOwpAQCAtOTk3LDE4ICs5OTQsMTUg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYgaW5pdGlh
bFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnQKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KLSNlbmRpZgogCiAgICAgLy8gU2V0IG1fY3VycmVudFNyYyAqYmVmb3JlKiBjaGFu
Z2luZyB0byB0aGUgY2FjaGUgdXJsLCB0aGUgZmFjdCB0aGF0IHdlIGFyZSBsb2FkaW5nIGZyb20g
dGhlIGFwcAogICAgIC8vIGNhY2hlIGlzIGFuIGludGVybmFsIGRldGFpbCBub3QgZXhwb3NlZCB0
aHJvdWdoIHRoZSBtZWRpYSBlbGVtZW50IEFQSS4KICAgICBtX2N1cnJlbnRTcmMgPSB1cmw7CiAK
LSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgIHVy
bCA9IGNyZWF0ZUZpbGVVUkxGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UocmVzb3VyY2UtPnBh
dGgoKSk7CiAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJj
ZSAtIHdpbGwgbG9hZCBmcm9tIGFwcCBjYWNoZSAtPiAlcyIsIHVybEZvckxvZ2dpbmdNZWRpYSh1
cmwpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlIC0gbV9jdXJyZW50U3JjIC0+ICVzIiwgdXJsRm9y
TG9nZ2luZ01lZGlhKG1fY3VycmVudFNyYykudXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZjY1MTFlYTk5ZTU1OTIwNGE3MWM2
N2UzYWE0YzdjYzFjZjZkY2QyZS4uMWU3MWNmNmM2NGM0YTI4ZmI4NDBiM2Y0NDkyYjU4M2ExMzJh
ZDhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTEw
NjIsNyArMTA2Miw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKICAgICBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAotI2lmICghUExBVEZPUk0oV0lOKSAmJiAhKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSkpIHx8IE9TKFdJTkNFKQorI2lmICFQTEFURk9S
TShXSU4pIHx8IE9TKFdJTkNFKQogYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6cGxhdGZvcm1IYW5k
bGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgY29uc3QgUGFnZSog
cGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsKQEAgLTEyOTksNyArMTI5OSw3IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
ICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlz
dEluZGV4QXRPZmZzZXQodG9JbnRTaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0
SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkg
ewotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4p
KQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRl
KGxpc3RJbmRleCwgbW91c2VFdmVudC0+bWV0YUtleSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgp
KTsKICNlbHNlCiAgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZShsaXN0SW5kZXgs
IG1vdXNlRXZlbnQtPmN0cmxLZXkoKSwgbW91c2VFdmVudC0+c2hpZnRLZXkoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAppbmRleCBjZmRmNTBiMWQxMjViYTQ0YWVhYzc4Yzhj
ODdlMWQyMTdhZDhlYjA2Li5iNDQ2NGMzMWU4Yjc4YWJjMDMyMWE4ZjU4MDc3M2Y3MWJiOGIwYTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTE2Niw3ICsxNjYsNiBA
QCB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ICAgIGlmICghdGFyZ2V0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgIVBMQVRGT1JNKENI
Uk9NSVVNKQogICAgIGlmIChIVE1MVmlkZW9FbGVtZW50KiB2aWRlbyA9IGFuY2VzdG9yVmlkZW9F
bGVtZW50KHRhcmdldE5vZGUpKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50KSB7CiAgICAgICAgICAgICBpZiAoIXZpZGVvLT5jYW5QbGF5KCkp
IHsKQEAgLTE4MCw3ICsxNzksNiBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotI2Vu
ZGlmCiAKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50
ICYmIGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkgewogICAgICAgICBIVE1MVmlkZW9FbGVtZW50
KiB2aWRlbyA9IGRlc2NlbmRlbnRWaWRlb0VsZW1lbnQodGFyZ2V0Tm9kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKaW5kZXggNTliMmY2YzYyNzQz
NDk4YzQ2ZmQ0YWZkZGE4NGMxYmQzMjU2YmNiNi4uM2IyYTAwZTM2YzFhNzQ3YzBjMDlkZWM1NTc0
MDk3MDZiMjcwZWE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmNwcApAQCAtMTE0LDExICsxMTQsNyBAQCBib29sIEVYVERyYXdCdWZmZXJzOjpzYXRp
c2ZpZXNXZWJHTFJlcXVpcmVtZW50cyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIHdlYmdsQ29udAog
ICAgIFBsYXRmb3JtM0RPYmplY3QgZmJvID0gY29udGV4dC0+Y3JlYXRlRnJhbWVidWZmZXIoKTsK
ICAgICBjb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBmYm8pOwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgY29uc3QgdW5zaWduZWQg
Y2hhciogYnVmZmVyID0gMDsgLy8gQ2hyb21pdW0gZG9lc24ndCBhbGxvdyBpbml0IGRhdGEgZm9y
IGRlcHRoL3N0ZW5jaWwgdGV0eHVyZXMuCi0jZWxzZQogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg
YnVmZmVyWzRdID0geyAwLCAwLCAwLCAwIH07IC8vIHRleHR1cmVzIGFyZSByZXF1aXJlZCB0byBi
ZSBpbml0aWFsaXplZCBmb3Igb3RoZXIgcG9ydHMuCi0jZW5kaWYKICAgICBib29sIHN1cHBvcnRz
RGVwdGggPSAoY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQ0hST01JVU1f
ZGVwdGhfdGV4dHVyZSIpCiAgICAgICAgIHx8IGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3Vw
cG9ydHMoIkdMX09FU19kZXB0aF90ZXh0dXJlIikKICAgICAgICAgfHwgY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQVJCX2RlcHRoX3RleHR1cmUiKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCAzN2QwYjQ5MWQ5NTA1NDQ2OWIzZTQwYjBhOGU2Yjg5NzI5N2UxZDVlLi45YTI4ODBlOGViYjNj
Y2NkZjE0NmUzMGNmOGQyMmM4MzY3ZTdlNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQyOCwxMSArNDI4LDcg
QEAgUGFzc093blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlKEhUTUxDYW52YXNFbGVtZW4KICAgICB9CiAKICAgICBhdHRyaWJ1dGVzLm5vRXh0
ZW5zaW9ucyA9IHRydWU7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgYXR0cmlidXRlcy5z
aGFyZVJlc291cmNlcyA9IHRydWU7Ci0jZWxzZQogICAgIGF0dHJpYnV0ZXMuc2hhcmVSZXNvdXJj
ZXMgPSBmYWxzZTsKLSNlbmRpZgogICAgIGF0dHJpYnV0ZXMucHJlZmVyRGlzY3JldGVHUFUgPSB0
cnVlOwogICAgIGF0dHJpYnV0ZXMudG9wRG9jdW1lbnRVUkwgPSBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS0+dXJsKCk7CiAKQEAgLTQ1MCwxMyArNDQ2LDYgQEAgUGFzc093blB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKEhUTUxDYW52YXNFbGVt
ZW4KICAgICBPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiByZW5kZXJpbmdDb250ZXh0ID0g
YWRvcHRQdHIobmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dChjYW52YXMsIGNvbnRleHQsIGF0dHJp
YnV0ZXMpKTsKICAgICByZW5kZXJpbmdDb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGlmICghcmVuZGVyaW5nQ29udGV4dC0+bV9kcmF3aW5n
QnVmZmVyKSB7Ci0gICAgICAgIGNhbnZhcy0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yRXZlbnQsIGZh
bHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdlYkdMIGNvbnRleHQuIikpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIHJldHVybiByZW5kZXJpbmdD
b250ZXh0LnJlbGVhc2UoKTsKIH0KIApAQCAtNDgzLDEzICs0NzIsNiBAQCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCogcGFzc2Vk
Q2FudmFzLCBQYQogICAgIG1fbWF4Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNb
MV0gPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WF9WSUVXUE9SVF9ESU1TLCBtX21heFZpZXdwb3J0RGltcyk7CiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSAgICAvLyBDcmVhdGUgdGhlIERyYXdpbmdCdWZmZXIgYW5kIGluaXRpYWxpemUgdGhl
IHBsYXRmb3JtIGxheWVyLgotICAgIERyYXdpbmdCdWZmZXI6OlByZXNlcnZlRHJhd2luZ0J1ZmZl
ciBwcmVzZXJ2ZSA9IG1fYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPyBEcmF3aW5n
QnVmZmVyOjpQcmVzZXJ2ZSA6IERyYXdpbmdCdWZmZXI6OkRpc2NhcmQ7Ci0gICAgRHJhd2luZ0J1
ZmZlcjo6QWxwaGFSZXF1aXJlbWVudCBhbHBoYSA9IG1fYXR0cmlidXRlcy5hbHBoYSA/IERyYXdp
bmdCdWZmZXI6OkFscGhhIDogRHJhd2luZ0J1ZmZlcjo6T3BhcXVlOwotICAgIG1fZHJhd2luZ0J1
ZmZlciA9IERyYXdpbmdCdWZmZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIGNsYW1wZWRDYW52
YXNTaXplKCksIHByZXNlcnZlLCBhbHBoYSk7Ci0jZW5kaWYKLQogICAgIGlmIChtX2RyYXdpbmdC
dWZmZXIpCiAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+YmluZCgpOwogCkBAIC03NjQsMTEgKzc0
Niw2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0NhbnZhcygpCiAgICAgaWYgKG1fY29udGV4dC0+bGF5ZXJDb21wb3NpdGVkKCkgJiYgIW1fYXR0
cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5wYWlu
dENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoY2FudmFzKCktPmJ1ZmZlcigpKTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAg
IGlmIChtX2RyYXdpbmdCdWZmZXIpCi0gICAgICAgICAgICBtX2RyYXdpbmdCdWZmZXItPnBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhjYW52YXMoKS0+YnVmZmVyKCkpOwotI2VuZGlmCi0K
ICAgICAgICAgY2FudmFzKCktPm1ha2VQcmVzZW50YXRpb25Db3B5KCk7CiAgICAgfSBlbHNlCiAg
ICAgICAgIGNhbnZhcygpLT5jbGVhclByZXNlbnRhdGlvbkNvcHkoKTsKQEAgLTQ2OTIsMTEgKzQ2
NjksNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Zm9yY2VSZXN0b3JlQ29udGV4dCgp
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICBpZiAobV9kcmF3aW5nQnVmZmVyKQotICAgICAgICByZXR1cm4gbV9kcmF3
aW5nQnVmZmVyLT5wbGF0Zm9ybUxheWVyKCk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBtX2NvbnRl
eHQtPnBsYXRmb3JtTGF5ZXIoKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAwNTc0OTU4ZGJj
MDRlZWQ1MmY2ZDc5M2RiNDVkYzA3MzBmNWY5NTBhLi40OTY3MjllNTAyZTQ5ZDA0ZDM4N2RjMzk4
OGFhMTc1MjY1YjIyZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzksMTAgKzc5LDYgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0j
aWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAicGxhdGZvcm0vY2hyb21pdW0vVHJhY2VF
dmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IHJlcXVlc3RBbmltYXRpb25GcmFtZUV2ZW50TmFtZSA9ICJyZXF1ZXN0QW5pbWF0
aW9uRnJhbWUiOwpAQCAtNTI4LDEwICs1MjQsNiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRGlzcGF0Y2hYSFJMb2FkRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydQog
CiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQxKCJpbnN0
cnVtZW50YXRpb24iLCBJbnN0cnVtZW50YXRpb25FdmVudHM6OlBhaW50LCBJbnN0cnVtZW50YXRp
b25FdmVudEFyZ3VtZW50czo6UGFnZUlkLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcg
bG9uZz4ocmVuZGVyZXItPmZyYW1lKCktPnBhZ2UoKSkpOwotI2VuZGlmCi0KICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFBh
aW50KHJlbmRlcmVyLT5mcmFtZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBkMDM5ZTg2OTUwZDFlZjc2M2Zi
OWRkNGQxZjYxZmZmZjBmMjJjOTI1Li4wNzI4YWFlZTlmN2FiNWQ3YjA1YTA0ZjVkYjNiNjcxZDky
MTZhNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCkBAIC0yMjUsOSArMjI1LDYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpzdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCog
cmUKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRCZWdpbkZyYW1lKCkKIHsKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgid2Via2l0Iiwg
SW5zdHJ1bWVudGF0aW9uRXZlbnRzOjpCZWdpbkZyYW1lKTsKLSNlbmRpZgogICAgIG1fcGVuZGlu
Z0ZyYW1lUmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3Jk
KHRpbWVzdGFtcCgpLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKaW5kZXggMTc1YTVjNWE2N2RmMzE3YzA2ZmMzMDI0OGJjODk1YTIyODVhYzE3ZS4uMDNk
NzBkNDEzNTNkMjhmMjIzMzdiNjNhODQ2ZDQyNzhjYmIyYWY1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zNDUsMTMgKzM0NSwxMCBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGZpeCB0aGUgZGVz
aWduIHRvIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgYSBwbGF0Zm9ybSBpZmRlZiBoZXJlCi0jaWYg
IVBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmIChtX3JlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBS
ZXR1cm5DYWNoZURhdGFEb250TG9hZCAmJiAhbV9tYWluUmVzb3VyY2UtPndhc0NhbmNlbGVkKCkp
IHsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5S
ZXNvdXJjZUxvYWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgbWFp
blJlY2VpdmVkRXJyb3IobV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAppbmRleCAxODY2NDJmODU2
Y2YwN2E5Njg4N2IwZTg3OTIwNTg1MjM0MmQ5NmM2Li5iZmY0ZjkyMzliNTA0NWViMzg5MWVlMzBm
MDE0ZTExMjA0NjE5NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3lu
Y0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYg
IVBMQVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQkxBQ0tC
RVJSWSkgJiYgIVBMQVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
QkxBQ0tCRVJSWSkgJiYgIVBMQVRGT1JNKEVGTCkKIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2
YWlsYWJsZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5oCmluZGV4IGVlNzk5ZGNkZDc5ZGM1MDkyYjFkMDgwYzdlOTg4M2ZiNzkyNjg3
YjkuLmVmMmRiYmJkZjJmYTA4ZWY3NzY2OGE1OWM5ODY4YjEzZTk4MjgwYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaApAQCAtOTUsOCArOTUsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAvLyBLZWVwIHRoaXMgaW4gc3luYyB3
aXRoIHRoZSBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiB0eXBlZGVmCiAgICAgICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwotI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CiAjZWxz
ZQogICAgICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247
CiAjaWYgT1MoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5o
CmluZGV4IDQ4Nzg2NjNiNTZkYzk1NzdmYzc1YTE0MWVmNzYxODE2NGExMjMwNDYuLjJlM2NhZWFl
ZDA3YTMxZmI4Yjg3NTA5ZWI5M2M5NjU1YWE1ZGNiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xOTksMjAgKzE5OSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBjaGVja2VkOwogICAgICAgICBib29sIGVuYWJsZWQ7CiAgICAg
fTsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHN0cnVjdCBQbGF0Zm9ybU1lbnVJdGVt
RGVzY3JpcHRpb24gewotICAgICAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24oKQotICAg
ICAgICAgICAgOiB0eXBlKEFjdGlvblR5cGUpCi0gICAgICAgICAgICAsIGFjdGlvbihDb250ZXh0
TWVudUl0ZW1UYWdOb0FjdGlvbikKLSAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAgICAg
ICAgICAgICwgZW5hYmxlZCh0cnVlKSB7IH0KLSAgICAgICAgQ29udGV4dE1lbnVJdGVtVHlwZSB0
eXBlOwotICAgICAgICBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247Ci0gICAgICAgIFN0cmluZyB0
aXRsZTsKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4gc3ViTWVudUl0ZW1zOwotICAg
ICAgICBib29sIGNoZWNrZWQ7Ci0gICAgICAgIGJvb2wgZW5hYmxlZDsKLSAgICB9OwogI2Vsc2UK
ICAgICB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA2NTUxMjUyNzYyMGUyNThhYTVjNjA5NWI1NWU2
Zjg2MGFiYTU4NTEzLi44OWE4ZTE3MjQ0NzBlYjM0NjA0Mzg3NzhkMDExMzVhNDk3NTY0MDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIEhJQ09O
IEhDVVJTT1I7CiAjZW5kaWYKIAogLy8gTG9va3MgbGlrZSBpdCdzIGp1c3QgUExBVEZPUk0oV1gp
IGFuZCBQTEFURk9STShCTEFDS0JFUlJZKSBzdGlsbCBub3QgdXNpbmcgdGhpcz8KLSNpZiBQTEFU
Rk9STShXSU4pIHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShX
SU4pIHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwg
UExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0xBWllfTkFUSVZFX0NVUlNPUiAxCiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCmluZGV4IDRkMzAyZWI4YmFkODk5
Njc3NDlkZDVlY2VmYzBkNzY0NWNjMjY4NzQuLjk3NmI5MDgxNmRkYmFkYjg3MmM3YmIxOTI0Njhl
YjE5ZGRlYmY0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAKQEAgLTUzLDcg
KzUzLDYgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50
JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRG
T1JNKENIUk9NSVVNKQogaW50IERyYWdEYXRhOjptb2RpZmllcktleVN0YXRlKCkgY29uc3QKIHsK
ICAgICBib29sIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXk7CkBAIC03Nyw3ICs3
Niw2IEBAIFN0cmluZyBEcmFnRGF0YTo6ZHJvcHBlZEZpbGVTeXN0ZW1JZCgpIGNvbnN0CiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogI2VuZGlmCi0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCBkNjM5NjkzMThiMGE3YWNh
OTUzNWE0NWFiNWRmODU3ZGFlNDMzM2JjLi5mZThjZGJjODk2ZTAxNTlkMDMwZDU2OWU5MzQ1Yjg5
YzU0YmZhYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAgLTYxLDggKzYxLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGF0YU9iamVjdEd0azsKIH0KIHR5cGVkZWYg
V2ViQ29yZTo6RGF0YU9iamVjdEd0ayogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQTEFURk9STShDSFJP
TUlVTSkKLSNpbmNsdWRlICJEcmFnRGF0YVJlZi5oIgogI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQ
TEFURk9STShCTEFDS0JFUlJZKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBkZDk3MGQyOTM2OTJlOTkzODlhYmZk
MWEzZmZmODc0YzQ2NTBhODNhLi41ODFhYjI0MzhhZjk0ZDkyYmNlZTQ3OTg5Y2IwODA5NTAxZWFm
ZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNDIsOCArNDIsNiBAQCBR
VF9FTkRfTkFNRVNQQUNFCiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7CiAjZWxp
ZiBQTEFURk9STShXWCkKIGNsYXNzIHd4RHJhZ0ltYWdlOwotI2VsaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBl
ZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAxODIzZmFiYmViNmQw
YWVmZjE4MDBlNDQxMmI5YjMyZTUyZjRiNDQ2Li40M2UwMWYxNGQxNzY0NDRiOTk3NWJiMmYwZjJk
NDA3MTEwNGM5OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCkBAIC0yODIsMTIgKzI4MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5n
IHNuYXBzaG90dGVkUGx1Z0luTGFiZWxUaXRsZSgpOwogICAgIFN0cmluZyBzbmFwc2hvdHRlZFBs
dWdJbkxhYmVsU3VidGl0bGUoKTsKIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKICNkZWZpbmUg
V0VCX1VJX1NUUklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJp
bmcoc3RyaW5nKQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3Jp
cHRpb24pIFdlYkNvcmU6OmxvY2FsaXplZFN0cmluZyhrZXkpCiAKICAgICBTdHJpbmcgbG9jYWxp
emVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSk7Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggMDhiNjg2NWM5YjM3
MDdmZGFlMTE3MGQ4N2FmZWY4NTQ1Zjg1ODNlNy4uZGI2ZjJlZjQ4MzhiOGY5MjMyNDdlNDYyMWFl
MTU0ZjQ4ZWNjYjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTAy
LDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRv
Y3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCBhbGxvd1BsYWlu
VGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogICAgIFN0cmluZyBwbGFpblRleHQoRnJhbWUq
ID0gMCk7CiAgICAgCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKICAgICBib29s
IGlzU2VsZWN0aW9uTW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uTW9kZShib29s
KTsKICNlbHNlCkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKICAgICBIV05EIG1fb3duZXI7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQ
TEFURk9STShRVCkKICAgICBib29sIG1fc2VsZWN0aW9uTW9kZTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FeHBvcnRNYWNyb3MuaAppbmRleCA5YzI2NGMy
MDlmZjkxNzEwOTQ2M2Q3OWUzMDA5ZWY5ZDEzZDI5Y2MyLi44YjNjODliNTc5MmIxNzg1ZTk1MzU2
NDkyYzMzYzVhNGE1YzNlZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXhwb3J0TWFjcm9zLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogI2Vsc2UgLy8gIVVTRShFWFBP
UlRfTUFDUk9TKQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19XWF9fKSAmJiAhQ09NUElMRVIoR0NDKQorI2lmIE9TKFdJTkRPV1Mp
ICYmICFkZWZpbmVkKEJVSUxESU5HX1dYX18pICYmICFDT01QSUxFUihHQ0MpCiAKICNpZiBkZWZp
bmVkKFdFQkNPUkVfSVNfTElOS0VEX0lOX1NBTUVfQklOQVJZKQogI2RlZmluZSBXRUJLSVRfRVhQ
T1JUREFUQSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDZiYWFkOWE2NDYzOTc5MWFhMzIw
MGQ4MzI3MjE3MDFmMjEyMDQ3YTMuLjMwYjU5ZmVmOWFlZmRjYWY2NzY2OGJmZjI1YzkzMTA0MTRi
N2ZkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1
bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb24uaApAQCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQgewpAQCAtNzYsMzYgKzcy
LDI0IEBAIHByaXZhdGU6CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3
aWxsRGVjb2RlSW1hZ2UoY29uc3QgU3RyaW5nJiBpbWFnZVR5cGUpCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfQkVHSU4xKENhdGVnb3J5TmFtZSwgSW1hZ2VEZWNv
ZGVFdmVudCwgSW1hZ2VUeXBlQXJndW1lbnQsIFRSQUNFX1NUUl9DT1BZKGltYWdlVHlwZS5hc2Np
aSgpLmRhdGEoKSkpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fQ0xJRU5UX09SX05P
VF9NQUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsRGVjb2RlSW1hZ2UoaW1hZ2VUeXBl
KTsKIH0KIAogaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZERlY29kZUlt
YWdlKCkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9FTkQwKENh
dGVnb3J5TmFtZSwgSW1hZ2VEZWNvZGVFdmVudCk7Ci0jZW5kaWYKICAgICBGQVNUX1JFVFVSTl9J
Rl9OT19DTElFTlRfT1JfTk9UX01BSU5fVEhSRUFEKCk7CiAgICAgbV9jbGllbnQtPmRpZERlY29k
ZUltYWdlKCk7CiB9CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxs
UmVzaXplSW1hZ2UoYm9vbCBzaG91bGRDYWNoZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkK
LSAgICBUUkFDRV9FVkVOVF9CRUdJTjEoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50LCBD
YWNoZWRBcmd1bWVudCwgc2hvdWxkQ2FjaGUpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fQ0xJRU5UX09SX05PVF9NQUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsUmVzaXpl
SW1hZ2Uoc2hvdWxkQ2FjaGUpOwogfQogCiBpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbjo6ZGlkUmVzaXplSW1hZ2UoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRS
QUNFX0VWRU5UX0VORDAoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50KTsKLSNlbmRpZgog
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVF9PUl9OT1RfTUFJTl9USFJFQUQoKTsKICAgICBt
X2NsaWVudC0+ZGlkUmVzaXplSW1hZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oCmluZGV4IDc3MjYxNGUzMmJjNzNiZWY2MThj
YTA1NTBmYzg1YjE0ZTAyMWFiOGIuLmJhZTMzOWFkMWE3NGU3Y2E4ZDhlYTQ2ODRiNTQzMGI4ZDk3
MzdkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24uaApAQCAtMzQsOCArMzQsNiBAQCBPQkpDX0NMQVNTIE5TTXV0YWJsZUFycmF5Owog
dHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xh
c3Mgd3hNZW51OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDkgKzQ4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgR3RrTWVudSogUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb247CiAjZWxpZiBQTEFURk9STShXWCkKICAgICB0eXBlZGVmIHd4TWVudSogUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb247Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBjbGFzcyBDb250
ZXh0TWVudUl0ZW07Ci0gICAgdHlwZWRlZiBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiog
UGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZv
cm1NZW51RGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAppbmRleCBmMGQ2ODkzYTIxYzU2ODNmODFl
NWE4MmRhNWFiNjhmNTIxM2QxYzlhLi5kMjFiODRiZDE4NTlkOTFiMWQ4ZDZhNDgxOWYwY2NmOTJi
Y2E2MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5oCkBAIC0zNywxMyArMzcsNiBAQAogT0JKQ19DTEFTUyBXZWJTcGVlY2hT
eW50aGVzaXNXcmFwcGVyOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLW5hbWVz
cGFjZSBXZWJLaXQgewotY2xhc3MgV2ViU3BlZWNoU3ludGhlc2l6ZXI7Ci1jbGFzcyBXZWJTcGVl
Y2hTeW50aGVzaXplckNsaWVudDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGVudW0gU3BlZWNoQm91bmRhcnkgewpAQCAtOTMsMTAgKzg2LDYgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXI+IG1f
cGxhdGZvcm1TcGVlY2hXcmFwcGVyOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0g
ICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXI+IG1fd2ViU3BlZWNoU3ludGhl
c2l6ZXI7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ+IG1f
d2ViU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7Ci0jZW5kaWYKIH07CiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVu
dC5oCmluZGV4IDk0ZGI5ZjcwMDk5OGQ2NzlhODM3Y2E3MzIxM2FkMTFlMDA1MGViOTcuLjUzZGNl
YTRiMjQ4YzFkYTFmY2Q5MmFjNzY2N2ZlOThmZDU2NmVjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgfTsKIAot
I2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBlbnVtIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHsKICAg
ICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lICAgICAgICA9IDAsCiAgICAgICAgIFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCkBAIC04MiwxMCArODIs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1koMCkK
ICAgICAgICAgICAgICwgbV9ncmFudWxhcml0eShTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkKICAg
ICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCi0jaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhmYWxzZSkKLSNlbmRpZgotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAg
ICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAg
ICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAg
ICAgICAgICwgbV9zY3JvbGxDb3VudCgwKQpAQCAtMTA1LDEwICsxMDMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1kod2hlZWxUaWNrc1kpCiAgICAg
ICAgICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiAgICAgICAgICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oQ0hST01JVU0pCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgLCBtX2hhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMoZmFsc2UpCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICAgICAgICAgICAgICwgbV9waGFz
ZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fbW9tZW50dW1Q
aGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fc2Nyb2xs
Q291bnQoMCkKQEAgLTE1MSwxMSArMTQ3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBleHBsaWNpdCBQbGF0Zm9ybVdoZWVsRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVl
bCopOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAgICAgICAg
IHZvaWQgc2V0SGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhib29sIGIpIHsgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzID0gYjsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9waGFzZTsgfQogICAgICAgICBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1
bVBoYXNlOyB9CiAgICAgICAgIHVuc2lnbmVkIHNjcm9sbENvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxDb3VudDsgfQpAQCAtMTg0LDEwICsxNzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGZsb2F0IG1fd2hlZWxUaWNrc1k7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IG1fZ3JhbnVsYXJpdHk7CiAgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2U7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fcGhhc2U7CiAg
ICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9tZW50dW1QaGFzZTsKICAgICAgICAg
dW5zaWduZWQgbV9zY3JvbGxDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAppbmRleCA1Nzc0MmU2ZmIwYjQzMzlmYzI0MzQxMWEyMDI1NGFkMzIxMzQ0YjFk
Li43MjlhZjc1NzJmODc5NGE1OTdmZDk0MGMwOTA1Y2Y2NDQyNDVkNzZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFFTkFCTEUoU01P
T1RIX1NDUk9MTElORykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyNp
ZiAhRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiBQYXNzT3duUHRyPFNjcm9sbEFuaW1hdG9yPiBT
Y3JvbGxBbmltYXRvcjo6Y3JlYXRlKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKSk7
CkBAIC05MywxMiArOTMsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNl
OwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhEQVJXSU4pCi0gICAgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSA/IFNj
cm9sbEJ5UHJlY2lzZVBpeGVsIDogU2Nyb2xsQnlQaXhlbDsKLSNlbHNlCiAgICAgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVsOwotI2VuZGlmCi0KICAgICBJbnRT
aXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1TY3Jv
bGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICBJ
bnRTaXplIG1heEJhY2t3YXJkU2Nyb2xsRGVsdGEgPSBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQ
b3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+bWluaW11bVNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgaWYgKChkZWx0YVggPCAwICYmIG1heEZvcndhcmRTY3JvbGxEZWx0YS53aWR0aCgpID4gMCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDI4ODlmNDIwNDY0
OGQxYzkwZWQzZTAzOTQwOThjMmQxYmIxNjYzMDguLmYzMTU2MTg3NmI0M2FlZjVkZTgxMjhkN2Mz
YTU5NGZjYmYxNTA3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykg
fHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlKSB7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmNwcAppbmRleCAyNDQyYTk2MmFiMjUxMDFkOTAyMDVmNGU0ZGI4NmRmZDVl
YmJjZDg5Li41NjA3NTI0NDIyMTg1ZmEzZWVhYjlmNDc5MmIxZjVlMWRiOTBlZWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTQzLDEw
ICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogI2luY2x1ZGUgIlBs
YXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAjZW5kaWYKQEAgLTQzNiwxMCArNDMyLDYgQEAgYm9vbCBT
Y3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXIKICAgICBpZiAoIW1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1h
dG9yRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmll
bnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogCi0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsQW5pbWF0b3JOb25l
OjpzY3JvbGwiKTsKLSNlbmRpZgotCiAgICAgLy8gRklYTUU6IGdldCB0aGUgdHlwZSBwYXNzZWQg
aW4uIE1vdXNlV2hlZWwgY291bGQgYWxzbyBiZSBieSBsaW5lLCBidXQgc2hvdWxkIHN0aWxsIGhh
dmUgZGlmZmVyZW50CiAgICAgLy8gYW5pbWF0aW9uIHBhcmFtZXRlcnMgdGhhbiB0aGUga2V5Ym9h
cmQuCiAgICAgUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwpAQCAtNTMxLDEwICs1MjMsNiBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmlt
YXRvck5vbmU+KiB0aW1lcikKIAogdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRp
bWVyRmlyZWQoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgi
d2Via2l0IiwgIlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCIpOwotI2Vu
ZGlmCi0KICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwogICAgIGRvdWJsZSBkZWx0YVRvTmV4dEZyYW1lID0gY2VpbCgoY3VycmVudFRp
bWUgLSBtX3N0YXJ0VGltZSkgKiBrRnJhbWVSYXRlKSAvIGtGcmFtZVJhdGUgLSAoY3VycmVudFRp
bWUgLSBtX3N0YXJ0VGltZSk7CiAgICAgY3VycmVudFRpbWUgKz0gZGVsdGFUb05leHRGcmFtZTsK
QEAgLTU1NCw5ICs1NDIsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGlt
ZXJGaXJlZCgpCiAgICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gZmFsc2U7CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIlNjcm9s
bEFuaW1hdG9yTm9uZTo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkIik7Ci0jZW5kaWYKICAgICBub3Rp
ZnlQb3NpdGlvbkNoYW5nZWQoRmxvYXRTaXplKCkpOwogCiAgICAgaWYgKCFjb250aW51ZUFuaW1h
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMGJhMDZkMTY0
Y2JkZGE1YmRlZDMwMWQ0MzQ4NTg5YjEzMDFmYWIyOS4uOTliZTRlMDMyMzVhODk2YzA2NTRlODE2
MjZmOTViNzQ2NDQ4NmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
QEAgLTExNTYsMTQgKzExNTYsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJl
YXMoKQogICAgIEludFJlY3QgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdDsKICAgICBJbnRSZWN0IHZl
cnRpY2FsT3ZlcmhhbmdSZWN0OwogICAgIGNhbGN1bGF0ZU92ZXJoYW5nQXJlYXNGb3JQYWludGlu
Zyhob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShDSFJPTUlVTSkgJiYgRU5BQkxF
KFJVQkJFUl9CQU5ESU5HKQotICAgIGlmIChHcmFwaGljc0xheWVyKiBvdmVyaGFuZ0xheWVyID0g
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCkpIHsKLSAgICAgICAgYm9vbCBoYXNPdmVyaGFuZ0FyZWEg
PSAhaG9yaXpvbnRhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkgfHwgIXZlcnRpY2FsT3ZlcmhhbmdS
ZWN0LmlzRW1wdHkoKTsKLSAgICAgICAgb3ZlcmhhbmdMYXllci0+c2V0RHJhd3NDb250ZW50KGhh
c092ZXJoYW5nQXJlYSk7Ci0gICAgICAgIGlmIChoYXNPdmVyaGFuZ0FyZWEpCi0gICAgICAgICAg
ICBvdmVyaGFuZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICB9Ci0jZW5kaWYKICAgICBp
ZiAoIWhvcml6b250YWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgpKQogICAgICAgICBob3N0V2luZG93
KCktPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGhvcml6b250YWxPdmVyaGFuZ1JlY3Qs
IGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogICAgIGlmICghdmVydGljYWxPdmVyaGFuZ1JlY3QuaXNF
bXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IGIwMzUyNWY1YWEyZTY3NzBiZTA5ODZhNjlmYjgzMzBhNWM5ZTRjZDkuLjA4YTYyNmI3Y2M2OGRl
NmNiMDkxOGYxM2NlYWY4ZGFkOTdiNGNjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTQxLDEwICs0MSw2IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNTY3JvbGxhYmxlQXJlYSB7CkBAIC0xNDUsMTAgKzE0
MSw2IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6Om5vdGlmeVNjcm9sbFBvc2l0aW9uQ2hhbmdlZChj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uQ2hhbmdlZCIpOwotI2VuZGlmCi0KICAgICBJbnRQb2ludCBvbGRQb3NpdGlv
biA9IHNjcm9sbFBvc2l0aW9uKCk7CiAgICAgLy8gVGVsbCB0aGUgZGVyaXZlZCBjbGFzcyB0byBz
Y3JvbGwgaXRzIGNvbnRlbnRzLgogICAgIHNldFNjcm9sbE9mZnNldChwb3NpdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRleCBiYjFjZTU3OTQyMGU3NjMyZGNhMjM5
NjU4OWI2OTZiYzM4ZWIxNzE4Li5kYjkyNTUyYzYzYjFiMDY4MDhlMjk3ZWNiM2ZmOTkzZmVjMzY5
Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmIChQTEFURk9STShDSFJPTUlVTSkgJiYg
KE9TKFVOSVgpICYmICFPUyhEQVJXSU4pKSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JN
KEdUSykKIC8vIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iIGFmZmVjdHMgdGhl
IGFwcGVhcmFuY2Ugb2YgdGhlIHN0ZXBwZXJzLCBzbwogLy8gd2hlbiB0aGUgdGh1bWIgbW92ZXMs
IHdlIGhhdmUgdG8gaW52YWxpZGF0ZSB0aGVtIGZvciBwYWludGluZy4KICNkZWZpbmUgVEhVTUJf
UE9TSVRJT05fQUZGRUNUU19CVVRUT05TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJl
VGV4dElucHV0LmNwcAppbmRleCAwNmUxYzg2NzAxMmU4MGFhZmIyNWUxMjkxZWIyZDVjZDFiMGI0
MGVmLi44ZjQzM2Q2ZjNlY2ZlYzBiNTI4MDk4MGY2ZWNhM2VlZmViYzBmMzA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAKQEAgLTI0LDI5ICsyNCwyMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IG1vdmVkIHRvIFdlYktpdCwgYmVjYXVzZSBicm93c2VyIHByb2Nlc3MgbmVlZHMgdG8gdHJhY2sg
c2VjdXJlIGlucHV0IHN0YXRlIGFueXdheSB0byBtYW5pcHVsYXRlIGlucHV0IGNvbnRleHRzLgot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiU2VjdXJlVGV4
dElucHV0LmgiCiAKLSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgZW5hYmxlU2VjdXJlVGV4
dElucHV0KCkKIHsKLSAgICBpZiAoSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0gICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKIHZvaWQgZGlzYWJsZVNlY3VyZVRleHRJbnB1dCgpCiB7Ci0gICAgaWYgKCFJ
c1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBEaXNhYmxl
U2VjdXJlRXZlbnRJbnB1dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oCmluZGV4IDYwOGFh
NjM4ZTRkMzM5MmUyMTE1NjRjNmYzMDRmNDdjOGRiYWQzNTkuLjgzOWFiYWM5ZWIyODJmYWZiZmQ2
YWE0MGYzZTIzYWE1N2U0YmQyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyZVRleHRJbnB1dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRl
eHRJbnB1dC5oCkBAIC0zOCwxMSArMzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGVu
YWJsZVNlY3VyZVRleHRJbnB1dCgpOwogdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElucHV0KCk7CiAK
LSNpZiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQotaW5saW5lIHZvaWQgZW5h
YmxlU2VjdXJlVGV4dElucHV0KCkgeyB9Ci1pbmxpbmUgdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElu
cHV0KCkgeyB9Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
U2VjdXJlVGV4dElucHV0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1
ZGRlblRlcm1pbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5h
dGlvbi5oCmluZGV4IGI2NmFlMWFiYzdkODAwM2M3MDNkZWMwNGFjYzMzOWUwMjY1ZTY5YWQuLjcy
NTIxNDkwNjJmNDMzYWIzM2M2ODgwYzk1NTRiOWIzYmRmYWRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2
b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKE1BQykKICAgICBpbmxpbmUgdm9pZCBk
aXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSB7IH0KICAgICBpbmxpbmUgdm9pZCBlbmFibGVTdWRk
ZW5UZXJtaW5hdGlvbigpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4
IDc3Y2NmOTFkNzBhMDQ2ZWFhZmE1ZmYxODFkOTIyZjIwNTAyMjAwZmEuLmU3ZjFlNTlkZDQzMWE3
NjhkMThlMjFhZWQxZTdiMzBhNjAwYmI4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBA
IC0zMSwxMSArMzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlBhZ2VD
bGllbnRDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2lkZ2V0LmgiCi0jZW5kaWYKLQog
I2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKQEAg
LTk2LDggKzkxLDYgQEAgdHlwZWRlZiBQYWdlQ2xpZW50QmxhY2tCZXJyeSogUGxhdGZvcm1QYWdl
Q2xpZW50OwogI2VsaWYgUExBVEZPUk0oRUZMKQogY2xhc3MgUGFnZUNsaWVudEVmbDsKIHR5cGVk
ZWYgUGFnZUNsaWVudEVmbCogUGxhdGZvcm1QYWdlQ2xpZW50OwotI2VsaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi10eXBlZGVmIFdlYkNvcmU6OlBhZ2VDbGllbnRDaHJvbWl1bSogUGxhdGZvcm1QYWdl
Q2xpZW50OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1QYWdlQ2xpZW50
OwogI2VuZGlmCkBAIC0yMjcsMTAgKzIyMCw2IEBAIHB1YmxpYzoKICAgICBFdmFzX09iamVjdCog
ZXZhc09iamVjdCgpIHsgcmV0dXJuIG1fZXZhc09iamVjdDsgfQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5Db250YWluZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICNpZiBQTEFURk9STShRVCkKICAgICBRT2Jq
ZWN0KiBiaW5kaW5nT2JqZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRCaW5kaW5nT2JqZWN0KFFP
YmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FO
R0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdM
RVdlYktpdEJyaWRnZS5oCmluZGV4IDUyZjcxZGQzZjkwOTc2YjI4Y2Q5Y2VjNGJjMWE2Mzk1MWY5
NjM5ZjcuLjNkZTdmYTM0NjllYTYyYjFiN2RmNTFhNzhlZTA0ZTcwNzY1Mzg1MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShFRkwpICYmICFQTEFURk9STShCTEFDS0JFUlJZKSAmJiAhUExBVEZPUk0oQ0hST01JVU0p
ICYmICFQTEFURk9STShRVCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSAm
JiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIVBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkFOR0xF
L1NoYWRlckxhbmcuaCIKICNlbHNlCiAjaW5jbHVkZSAiU2hhZGVyTGFuZy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTYzNmEwZTYx
MzlhMzdmZTQ5NTY4ZDAyZGM2MzY4NjA5YTJhMzRkYy4uYjdkNWY5MjdlNjA1Y2ViODljY2QxNGI0
NjVhY2FkMDRlOGY2OTE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCkBAIC0yMDUsNyArMjA1LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlmCiAgICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKLSNpZiBVU0UoQ0cpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKSB8fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgVVNFKENHKSB8
fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pIE9WRVJSSURFOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQu
aAppbmRleCAxMTFlMjMxODI2M2RhODJhNTlkMzVmNzNiOTJlZDdjNzRiMDNiMjExLi5lYTE0OTBk
MjJhNTFiOTMyYWY2ODI3MTc0YTIwZTQwY2ZkMmY2YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEZs
b2F0UG9pbnQ7CiB0eXBlZGVmIHN0cnVjdCBDR1BvaW50IENHUG9pbnQ7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lm
IFBMQVRGT1JNKE1BQykKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBOU1BvaW50OwogI2Vsc2UKQEAgLTE1NSw4
ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0OwogI2VuZGlm
CiAKLSNpZiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJ
TikpKSBcCi0gICAgICAgICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCiAgICAgRmxvYXRQb2ludChjb25zdCBOU1Bv
aW50Jik7CiAgICAgb3BlcmF0b3IgTlNQb2ludCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCmluZGV4IGZjZWY5NGEyOTVkOTYw
NzJkMmY1YjhlMGU3ZjIyYzI0NTVmZWEzNzMuLjBjNDU2Y2YzMWM5MDQ5ZGY3MzliMGQ0YjRkNWQx
YjgyNmE2NjIxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UmVjdC5oCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0Owog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1Mo
REFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxz
ZQpAQCAtMjAwLDggKzIwMCw3IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25z
dDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAm
JiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5T
R0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKQogICAgIEZsb2F0UmVjdChj
b25zdCBOU1JlY3QmKTsKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAppbmRleCA2MDEwMjEx
M2NlOTAyYTIxMWJmZjdlMTAzMjhiMTZlYzBiMmNmMTU1Li5kM2M2MGFjMzQ0N2M0YWQyZDM3NTlm
ODQ3OTkwYTgxYjhkM2ZmOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFNpemUuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBGbG9hdFNpemU7CiB0eXBlZGVm
IHN0cnVjdCBDR1NpemUgQ0dTaXplOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQ
TEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0Uo
UVRLSVQpKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQp
KQogI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBl
ZGVmIHN0cnVjdCBDR1NpemUgTlNTaXplOwogI2Vsc2UKQEAgLTEzNSw5ICsxMzUsNyBAQCBwdWJs
aWM6CiAgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIChQTEFURk9S
TShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkpIFwKLSAgICAgICAg
JiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpIFwK
LSAgICAgICAgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQorI2lmIChQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVT
KSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIGV4cGxpY2l0IEZsb2F0U2l6
ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdz
IGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNzYzN2E4ZWVhOTVmNjMyMzAwNmFl
OGUxNDJhN2VkNGU2OTU3MWIzNi4uZTE4YWM1Y2UyYzM3NjM1NTBkODYyODU0NzcxOGU3NzgyZGM3
MzQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTIz
Nyw4ICsyMzcsNyBAQCBmbG9hdCBGb250Ojp3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCYg
Y2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbgogICAgIHJldHVybiB3aWR0aChy
dW4pOwogfQogCi0jaWYgIShQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYg
T1MoREFSV0lOKSkpCi0KKyNpZiAhUExBVEZPUk0oTUFDKQogUGFzc093blB0cjxUZXh0TGF5b3V0
PiBGb250OjpjcmVhdGVMYXlvdXQoUmVuZGVyVGV4dCosIGZsb2F0LCBib29sKSBjb25zdAogewog
ICAgIHJldHVybiBudWxscHRyOwpAQCAtMjUzLDcgKzI1Miw2IEBAIGZsb2F0IEZvbnQ6OndpZHRo
KFRleHRMYXlvdXQmLCB1bnNpZ25lZCwgdW5zaWduZWQsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9Ci0KICNl
bmRpZgogCiBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvclRleHQoY29uc3QgVGV4dFJ1
biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8p
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggZDZkMzkz
YTE2Mjc0NTNjN2RkZWEyNDIzYWU4YTlmYTRiYzU4NDdmYy4uZTA5M2M2NGNkYzZhODRlMDA0ZTgy
ZTMwYTliZmZkMWI5ZmQ3NjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBn
bHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKGMsIG1pcnJvciwgdmFyaWFudCkuZmlyc3Q7CiAg
ICAgfQotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJX
SU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERh
dGFGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5n
dGgsIEZvbnREYXRhVmFyaWFudCkgY29uc3Q7CiAjZW5kaWYKICAgICBzdGQ6OnBhaXI8R2x5cGhE
YXRhLCBHbHlwaFBhZ2UqPiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJv
b2wgbWlycm9yLCBGb250RGF0YVZhcmlhbnQgPSBBdXRvVmFyaWFudCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBiZDdiZWFj
MjRlMWU1ODE2YjVjZGQ2MTJhMWIzZGJjYzRmYWI4NGY1Li44MmIwYjYxMTk1NDcyNDJlYTJkMmE5
YWI4MWJkNWU4YjFjOTlhZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTI4OCwxMyArMjg4LDggQEAgdHlwZWRlZiBIYXNoTWFwPEZv
bnRQbGF0Zm9ybURhdGEsIHBhaXI8UmVmUHRyPFNpbXBsZUZvbnREYXRhPiwgdW5zaWduZWQ+LCBG
b250RGEKIAogc3RhdGljIEZvbnREYXRhQ2FjaGUqIGdGb250RGF0YUNhY2hlID0gMDsKIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKSAmJiAhT1MoQU5EUk9JRCkKLWNvbnN0IGludCBjTWF4SW5hY3Rp
dmVGb250RGF0YSA9IDI1MDsKLWNvbnN0IGludCBjVGFyZ2V0SW5hY3RpdmVGb250RGF0YSA9IDIw
MDsKLSNlbHNlCiBjb25zdCBpbnQgY01heEluYWN0aXZlRm9udERhdGEgPSAyMjU7CiBjb25zdCBp
bnQgY1RhcmdldEluYWN0aXZlRm9udERhdGEgPSAyMDA7Ci0jZW5kaWYKIHN0YXRpYyBMaXN0SGFz
aFNldDxSZWZQdHI8U2ltcGxlRm9udERhdGE+ID4qIGdJbmFjdGl2ZUZvbnREYXRhID0gMDsKIAog
UGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRDYWNoZWRGb250RGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5n
JiBmYW1pbHksIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lLCBTaG91bGRSZXRhaW4gc2hvdWxk
UmV0YWluKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApp
bmRleCAzZDRiNDdiMzA4ZTAwODVhYzBkM2ExNzE3OGM1ZmEwYjdjYmFlZjI1Li5mOTA4ZThjNDAw
Y2MyNjE0ZDRkMWQ3NzA1MjNlNGE3NWU2YzAwZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtMTA3LDggKzEwNyw2IEBAIHB1YmxpYzoKIAog
I2lmIFBMQVRGT1JNKFdJTikKICAgICBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBmb250RGF0
YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxk
UmV0YWluLCBjb25zdCBMT0dGT05UJiwgQXRvbWljU3RyaW5nJiBvdXRGb250RmFtaWx5TmFtZSk7
Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoV0lORE9XUykKLSAgICBQYXNzUmVmUHRy
PFNpbXBsZUZvbnREYXRhPiBmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWluLCBjb25zdCBMT0dGT05UJiwgd2NoYXJfdCog
b3V0Rm9udEZhbWlseU5hbWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElD
QUwpCkBAIC0xNTcsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEb24ndCBwdXJnZSBpZiB0
aGlzIGNvdW50IGlzID4gMDsKICAgICBpbnQgbV9wdXJnZVByZXZlbnRDb3VudDsKIAotI2lmIFBM
QVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCBPUyhB
TkRST0lEKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgT1MoQU5EUk9JRCkKICAgICBmcmllbmQgY2xh
c3MgQ29tcGxleFRleHRDb250cm9sbGVyOwogI2VuZGlmCiAgICAgZnJpZW5kIGNsYXNzIFNpbXBs
ZUZvbnREYXRhOyAvLyBGb3IgZ2V0Q2FjaGVkRm9udERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0
YSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5oCmluZGV4IDZjZmI4NWNkMmJhOGZhYmYzZTc5MjljMzlmMTE5ODQzMGExZTk4OTAuLjE3
YzAwZDRlZjA0MzhhNzNlMDE3YTAxNGFlNjgzMGY0ZjY1MWQ3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC0xNDcsMTEg
KzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzQWJzb2x1dGVTaXplKGJvb2wgcykgeyBt
X2lzQWJzb2x1dGVTaXplID0gczsgfQogICAgIHZvaWQgc2V0V2VpZ2h0KEZvbnRXZWlnaHQgdykg
eyBtX3dlaWdodCA9IHc7IH0KICAgICB2b2lkIHNldEdlbmVyaWNGYW1pbHkoR2VuZXJpY0ZhbWls
eVR5cGUgZ2VuZXJpY0ZhbWlseSkgeyBtX2dlbmVyaWNGYW1pbHkgPSBnZW5lcmljRmFtaWx5OyB9
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICB2b2lkIHNldFVzZVBy
aW50ZXJGb250KGJvb2wpIHsgfQotI2Vsc2UKICAgICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJv
b2wgcCkgeyBtX3VzZVByaW50ZXJGb250ID0gcDsgfQotI2VuZGlmCiAgICAgdm9pZCBzZXRSZW5k
ZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1vZGUpIHsgbV9yZW5kZXJpbmdNb2RlID0gbW9k
ZTsgfQogICAgIHZvaWQgc2V0S2VybmluZyhLZXJuaW5nIGtlcm5pbmcpIHsgbV9rZXJuaW5nID0g
a2VybmluZzsgfQogICAgIHZvaWQgc2V0Q29tbW9uTGlnYXR1cmVzU3RhdGUoTGlnYXR1cmVzU3Rh
dGUgY29tbW9uTGlnYXR1cmVzU3RhdGUpIHsgbV9jb21tb25MaWdhdHVyZXNTdGF0ZSA9IGNvbW1v
bkxpZ2F0dXJlc1N0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDk1YWJkYWQ1MmRkZDY1ZGE5NTliYzhi
NjJjZDg1NGQ1NzFmMWQxOWUuLjI4Yjc4Y2IzYWRiMmE1ZTZiYjM3N2QyY2FkZDllZDY0MzEyYWJj
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCkBAIC0yNywxMCArMjcsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSAiSGFyZkJ1enpGYWNlLmgiCi0j
ZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
CmluZGV4IGJhNjRiOTU0ZDY5NGQxYWM2YjhiNWZkZDkyYmI1MGQzYzFhMDJkMjQuLjU4OWY5MTBk
YmUzOWQ2ZTY4ZTE4YTZiOWE2ZGNhZTViMjVhMTZhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTYzLDEwICs2Myw2
IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RGb250KiBDVEZvbnRSZWY7CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSAiQ3Jvc3NQcm9jZXNz
Rm9udExvYWRpbmcuaCIgIAotI2VuZGlmCi0KICNpZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIHN0
cnVjdCBIRk9OVF9fKiBIRk9OVDsKICNlbmRpZgpAQCAtODYsMTAgKzgyLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU2hhcmVkQnVmZmVyOwog
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLWNsYXNzIEhhcmZCdXp6RmFj
ZTsKLSNlbmRpZgotCiAjaWYgT1MoREFSV0lOKQogaW5saW5lIENURm9udFJlZiB0b0NURm9udFJl
ZihOU0ZvbnQgKm5zRm9udCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KG5z
Rm9udCk7IH0KICNlbmRpZgpAQCAtMTYwLDEwICsxNTIsNiBAQCBwdWJsaWM6CiAgICAgY2Fpcm9f
c2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udDsg
fQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIEhh
cmZCdXp6RmFjZSogaGFyZkJ1enpGYWNlKCk7Ci0jZW5kaWYKLQogICAgIHVuc2lnbmVkIGhhc2go
KSBjb25zdAogICAgIHsKICNpZiBQTEFURk9STShXSU4pICYmICFVU0UoQ0FJUk8pCkBAIC0yNjMs
MTEgKzI1MSw2IEBAIHByaXZhdGU6CiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogbV9zY2FsZWRG
b250OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAg
IFJlZlB0cjxNZW1vcnlBY3RpdmF0ZWRGb250PiBtX2luTWVtb3J5Rm9udDsKLSAgICBSZWZQdHI8
SGFyZkJ1enpGYWNlPiBtX2hhcmZCdXp6RmFjZTsKLSNlbmRpZgotCiAgICAgYm9vbCBtX2lzQ29s
b3JCaXRtYXBGb250OwogICAgIGJvb2wgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVuY2U7CiAjaWYg
T1MoREFSV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKaW5kZXggM2FlYzA4ZTY1ZTBiZjkxZDUyMDE2ZjU1OTBlZWEzNWIzODM3YTJkMy4uODgy
ZjJhMDJhYWEzNDg1NmUxYzQzYzc0ODBlMzQzNjgwNTVlZTczOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCkBAIC0zOSw3ICszOSw3IEBACiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHR2VvbWV0cnkuaD4KICNlbmRpZgogCi0jaWYgT1MoREFS
V0lOKSAmJiAoUExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSkKKyNpZiBPUyhEQVJX
SU4pICYmIFBMQVRGT1JNKFdYKQogI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGlj
YXRpb25TZXJ2aWNlcy5oPgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBHbHlw
aCBHbHlwaEJ1ZmZlckdseXBoOwogCiAvLyBDRyB1c2VzIENHU2l6ZSBpbnN0ZWFkIG9mIEZsb2F0
U2l6ZSBzbyB0aGF0IHRoZSByZXN1bHQgb2YgYWR2YW5jZXMoKQogLy8gY2FuIGJlIHBhc3NlZCBk
aXJlY3RseSB0byBDR0NvbnRleHRTaG93R2x5cGhzV2l0aEFkdmFuY2VzIGluIEZvbnRNYWMubW0K
LSNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIChQTEFURk9STShXWCkgfHwgUExBVEZPUk0o
Q0hST01JVU0pKSkKKyNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIFBMQVRGT1JNKFdYKSkK
IHN0cnVjdCBHbHlwaEJ1ZmZlckFkdmFuY2UgOiBDR1NpemUgewogcHVibGljOgogICAgIEdseXBo
QnVmZmVyQWR2YW5jZShDR1NpemUgc2l6ZSkgOiBDR1NpemUoc2l6ZSkKQEAgLTE2NSw3ICsxNjUs
NyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZ2x5cGhzLmFwcGVuZChnbHlwaCk7CiAjZW5kaWYKIAot
I2lmIFVTRShDRykgfHwgKE9TKERBUldJTikgJiYgKFBMQVRGT1JNKFdYKSB8fCBQTEFURk9STShD
SFJPTUlVTSkpKQorI2lmIFVTRShDRykgfHwgKE9TKERBUldJTikgJiYgUExBVEZPUk0oV1gpKQog
ICAgICAgICBDR1NpemUgYWR2YW5jZSA9IHsgd2lkdGgsIDAgfTsKICAgICAgICAgbV9hZHZhbmNl
cy5hcHBlbmQoYWR2YW5jZSk7CiAjZWxpZiBPUyhXSU5DRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDI3YmMzYTkz
NjQ0MGY5ZmQ2MjNmYmEzZjUwNTBhNDhlNzQ2MWU2ZjQuLjc2MmM2MGJlZDEyMDM5YjVjMzYyNzhh
YjU5ZjU2MTYwMDJmMTFhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNTA4LDEyICs1MDgsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKSB7CiAgICAgICAg
IHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5
KCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7Ci0jZWxzZQogICAgICAgICAvLyBGSVhNRSAoNDkw
MDIpOiBTaG91bGQgYmUgSW50ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKLSNlbmRpZgogICAgIH0KIAogICAgIGlt
YWdlLT5kcmF3KHRoaXMsIGRlc3QsIHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2Rl
LCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CkBAIC01OTUsMTIgKzU5MSw4IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTCiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKSB7CiAg
ICAgICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkg
PSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0g
ICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7Ci0j
ZWxzZQogICAgICAgICAvLyBGSVhNRSAoNDkwMDIpOiBTaG91bGQgYmUgSW50ZXJwb2xhdGlvbkxv
dwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25l
KTsKLSNlbmRpZgogICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRl
c3QsIHNyYywgb3AsIGJsZW5kTW9kZSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsK
ICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDNhMzg0YjM1MDlkYjg1NjAyYTE4YjVhOGFmZGRhNWMw
YmNlMzUwM2QuLjZhMDQ0OTg0MmFkZTdjODllN2I1NWE1ZGQ5NzViYTM3YjE0OWU3MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiAvLyBGSVhNRTogRmluZCBhIGJldHRlciB3YXkgdG8gYXZvaWQgdGhlIG5hbWUgY29uZmxpY3Rp
b24gZm9yIE5PX0VSUk9SLgotI2lmICgoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKFdJTkRPV1Mp
KSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lORE9XUykpKQorI2lm
IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkKICN1bmRlZiBO
T19FUlJPUgogI2VsaWYgUExBVEZPUk0oR1RLKQogLy8gVGhpcyBkZWZpbmUgaXMgZnJvbSB0aGUg
WDExIGhlYWRlcnMsIGJ1dCBpdCdzIHVzZWQgYmVsb3csIHNvIHdlIG11c3QgdW5kZWZpbmUgaXQu
CkBAIC04MCw3ICs4MCw3IEBAIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RDsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UzRDsKICNlbmRpZgogCi0j
aWYgKFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKSkgJiYgVVNFKFNL
SUEpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgVVNFKFNLSUEpCiBjbGFzcyBHckNvbnRl
eHQ7CiAjZW5kaWYKIApAQCAtNDkyLDcgKzQ5Miw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHRPYmo7IH0KICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRvclRleHR1cmU7IH0KICAgICBDQUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93
ZWJHTExheWVyLmdldCgpKTsgfQotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpCisjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKQogICAgIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0OwogICAgIFBs
YXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Q7CiAjaWYgVVNFKFNLSUEpCkBA
IC01MjgsNyArNTI4LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
QkxBQ0tCRVJSWSkKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICAvLyBX
aXRoIG11bHRpc2FtcGxpbmcgb24sIGJsaXQgZnJvbSBtdWx0aXNhbXBsZUZCTyB0byByZWd1bGFy
IEZCTy4KICAgICB2b2lkIHByZXBhcmVUZXh0dXJlKCk7CiAjZW5kaWYKQEAgLTEwNTYsNyArMTA1
Niw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgKFBMQVRGT1JNKFFU
KSAmJiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKSkgfHwgKChQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKEVGTCkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lv
bnMzRE9wZW5HTEVTOwogICAgIE93blB0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9leHRlbnNp
b25zOwotI2VsaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2Vsc2UKICAgICBmcmllbmQgY2xhc3Mg
RXh0ZW5zaW9uczNET3BlbkdMOwogICAgIE93blB0cjxFeHRlbnNpb25zM0RPcGVuR0w+IG1fZXh0
ZW5zaW9uczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCmluZGV4IDJmMGUzZDExYmQ2OTJmNjc4MDc4MjIzZGJlNWEwOGZhY2M5
ODNiM2MuLjEyNjc1YmEzZDQ3NjQ3NTZmYTJkMjY4MWM4M2E1YTkwNmRjZjU4MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQy
OCw3ICs0MjgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0JhY2tncm91
bmRDb2xvckNvbnRlbnQoKQogICAgIHsKLSNpZiBVU0UoQ0EpIHx8IFVTRShURVhUVVJFX01BUFBF
UikgfHwgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgVVNFKENBKSB8fCBVU0UoVEVYVFVSRV9NQVBQ
RVIpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGM1ODU4MDdiZDUzZjc2
Y2MwZTk4ZGFjYjMxZGQ1MmM5NmZiMmVlYzkuLmE3OGIyNjVjOGFmYWFiNTQ3MTBiOGM3NzA0ZTM3
MzRlZDI1ZjBiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ljb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKQEAg
LTM1LDkgKzM1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgSElDT05fXyogSElDT047CiAjaW5jbHVkZSA8
UUljb24+CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfR2RrUGl4YnVmIEdk
a1BpeGJ1ZjsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIkltYWdlLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1JY29uLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTUsOCArNTIsNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SWNvbj4gY3JlYXRlKEhJQ09OIGhJY29uKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgSWNvbihoSWNvbikpOyB9Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJY29uPiBjcmVhdGUoUGFzc1JlZlB0cjxQbGF0Zm9ybUljb24+IGljb24pIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGljb24pKTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBA
IC03NSw5ICs3MCw2IEBAIHByaXZhdGU6CiAjZWxpZiBQTEFURk9STShFRkwpCiAgICAgSWNvbigp
OwogICAgIEV2YXNfT2JqZWN0KiBtX2ljb247Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAg
ICBJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPik7Ci0gICAgUmVmUHRyPFBsYXRmb3JtSWNv
bj4gbV9pY29uOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggYzA2NmNlNzExZWRlMmYzNGY1NDg0MzgxZjZh
YmRlNjk4ZGQ5MTNiOS4uNWRiMWE0ZjZiMTFlNDA3OTZkODZhMWE3MjgzMWUwYjhkYjJiMTEyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cApAQCAtMzUsMTAgKzM1LDYgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKLSNpZiBQTEFURk9STShDSFJP
TUlVTSkKLSNpbmNsdWRlICJEZWZlcnJlZEltYWdlRGVjb2Rlci5oIgotI2VuZGlmCi0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRl
eCBjYTk5NzcwM2I1OTkwY2RlODg1YjcxYzdkYjE3YzlhNGM0N2VlMGI0Li5lMzA1M2Q2NTdmNTRi
ODk5OTUxNjRkZTM5ZTFjZmQyODgwMzE4MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTQ4LDE2ICs0OCwxMiBAQCBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiAKICNpZiBVU0UoQ0cpCiB0eXBlZGVmIENHSW1hZ2VTb3VyY2VSZWYgTmF0aXZl
SW1hZ2VEZWNvZGVyUHRyOwotI2VsaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2Vsc2UKIGNsYXNz
IEltYWdlRGVjb2RlcjsKIHR5cGVkZWYgSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZURlY29kZXJQ
dHI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotY2xhc3MgRGVmZXJyZWRJbWFn
ZURlY29kZXI7Ci10eXBlZGVmIERlZmVycmVkSW1hZ2VEZWNvZGVyIE5hdGl2ZUltYWdlRGVjb2Rl
cjsKLXR5cGVkZWYgRGVmZXJyZWRJbWFnZURlY29kZXIqIE5hdGl2ZUltYWdlRGVjb2RlclB0cjsK
LSNlbGlmIFVTRShDRykKKyNpZiBVU0UoQ0cpCiAjZGVmaW5lIE5hdGl2ZUltYWdlRGVjb2RlciBJ
bWFnZURlY29kZXIKICNlbHNlCiB0eXBlZGVmIEltYWdlRGVjb2RlciBOYXRpdmVJbWFnZURlY29k
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKaW5kZXggNzBm
MmNjM2QwMzdhOTc1ZmMwNjQ0NmU0NWFjZDA0MDM1ZjYwNzRhNS4uNGU0YzE5MTk2YTRmNTViMjNm
ZDk1YThlZWM3YjUyMjRiZDA1N2UzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuaApAQCAtMzMsNyArMzMsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENH
UmVjdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0p
ICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKKyNpZiBQTEFU
Rk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNpZmRlZiBOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0
IE5TUmVjdDsKICNlbHNlCkBAIC0yMzAsOSArMjMwLDcgQEAgcHVibGljOgogICAgIG9wZXJhdG9y
IFNrSVJlY3QoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAhZGVmaW5lZChOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykgXAotICAgICAgICB8fCAoUExB
VEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSB8fCAoUExBVEZPUk0o
UVQpICYmIFVTRShRVEtJVCkpCiAgICAgb3BlcmF0b3IgTlNSZWN0KCkgY29uc3Q7CiAjZW5kaWYK
IApAQCAtMjgzLDggKzI4MSw3IEBAIGlubGluZSBJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29u
c3QgSW50UmVjdCYgcmVjdCkKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBDR1JlY3Qm
KTsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSBcCi0gICAgICAgIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQor
I2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19D
R0dFT01FVFJZX1RZUEVTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogSW50UmVj
dCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IE5TUmVjdCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAxMjU3NmZi
YTIwYjMwZDJlMmEzNzNjYmU5OWE2Zjc4ZDExOTcyNTk0Li4xYmYwNjE4NDE3Yzg3NjQzNzZkNDA4
MjEzNDg1ZWUzYjVjMTQ5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC03Niw5ICs3Niw2IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlUXQuaCIKICNkZWZpbmUgUGxhdGZvcm1NZWRpYUVuZ2luZUNsYXNzTmFtZSBN
ZWRpYVBsYXllclByaXZhdGVRdAogI2VuZGlmCi0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVDaHJvbWl1bS5oIgotI2RlZmluZSBQbGF0Zm9ybU1l
ZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZQogI2VsaWYgUExBVEZPUk0oQkxB
Q0tCRVJSWSkKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgiCiAjZGVm
aW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKaW5kZXgg
MzA0MDdjZDdhZGJjNTg2YTllZDFiZDI5NTVkZTNhMjc5OGNhOGI2Yy4uMTgzNjczYjEzZGU2ZThj
NjdlZDljMjJmYTllNDNlZGNkMTU0OWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaApAQCAtMzgsMTMgKzM4LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI7CiB0eXBlZGVmIFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7CiB9OwotI2VsaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkxheWVyOwotfQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotdHlwZWRlZiBXZWJLaXQ6OldlYkxheWVyIFBsYXRmb3JtTGF5ZXI7
Ci19CiAjZWxpZiBQTEFURk9STShHVEspCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0NBSVJPKSB8
fCBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCBlOWVk
NDhmNDg1ZDRhMmM2OGUyOGFhODhkMDdkMzBhZGNkOTc1YzUyLi4xNzJlMTE3MDEyOGJmMDM2YjBj
OTQyZDU4OTUwZWI4MjAxZjEzMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oV1gpICYmIE9T
KERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJ
TikpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKQEAgLTE4NSw3ICsxODUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsKICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERB
UldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBnZXRD
b21wb3NpdGVGb250UmVmZXJlbmNlRm9udERhdGEoTlNGb250ICprZXkpIGNvbnN0OwogICAgIE5T
Rm9udCogZ2V0TlNGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURhdGEuZm9udCgpOyB9
CiAjZWxpZiAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIApAQCAtMTkzLDExICsxOTMsMTEg
QEAgcHVibGljOgogICAgIE5TRm9udCogZ2V0TlNGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybURhdGEubnNGb250KCk7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFS
V0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkK
ICAgICBDRkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0aW5nRmVh
dHVyZXMsIEZvbnRPcmllbnRhdGlvbikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oV1gp
ICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikKKyNpZiBQTEFURk9STShNQUMpIHx8IChQ
TEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkgfHwgVVNFKEhBUkZCVVpaKQogICAgIGJvb2wgY2Fu
UmVuZGVyQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqLCBzaXplX3QpIGNv
bnN0OwogI2VuZGlmCiAKQEAgLTMwMCw3ICszMDAsNyBAQCBwcml2YXRlOgogICAgICAgICBSZWZQ
dHI8U2ltcGxlRm9udERhdGE+IGJyb2tlbklkZW9ncmFwaDsKICAgICAgICAgUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiB2ZXJ0aWNhbFJpZ2h0T3JpZW50YXRpb247CiAgICAgICAgIFJlZlB0cjxTaW1w
bGVGb250RGF0YT4gdXByaWdodE9yaWVudGF0aW9uOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBM
QVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgbXV0YWJsZSBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gY29tcG9zaXRlRm9u
dFJlZmVyZW5jZXM7CiAjZW5kaWYKICAgICAgICAgCkBAIC0zMTcsMTEgKzMxNywxMSBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fc3ludGhldGljQm9sZE9mZnNldDsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFU
Rk9STShXWCkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShX
WCkgJiYgT1MoREFSV0lOKSkKICAgICBtdXRhYmxlIEhhc2hNYXA8dW5zaWduZWQsIFJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+ID4gbV9DRlN0cmluZ0F0dHJpYnV0ZXM7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAo
UExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikKKyNpZiBQTEFURk9S
TShNQUMpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkgfHwgVVNFKEhBUkZCVVpaKQog
ICAgIG11dGFibGUgT3duUHRyPEhhc2hNYXA8U3RyaW5nLCBib29sPiA+IG1fY29tYmluaW5nQ2hh
cmFjdGVyU2VxdWVuY2VTdXBwb3J0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKaW5kZXggODRlNGExNTQ1
MTMxNzlmZTlkNjY2MGJlOTg4M2E3ZDhkNjI1YmM1Mi4uNTFjMGNmODQ0M2U3Y2U1ZDBhNjJhZWZj
NDBmNTkxNjdmODJiZmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRl
IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVN
KQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgi
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGY3MTMwNzRmYzY5M2U3YTA4MjNiMDVh
N2FjNTA1NmYyZjI5MzE5M2YuLmE3NWE1NzMyMDUxODVjYjRiZDRmODY0NTRmMGU0NjU4Nzc2NTkw
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKLSNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIApAQCAtNTMsNyArNTMsNyBAQAog
I2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTA2MAogLy8gQnVpbGRpbmcgb24gMTAuNiBv
ciBsYXRlcjoga0NHSW50ZXJwb2xhdGlvbk1lZGl1bSBpcyBkZWZpbmVkIGluIHRoZSBDR0ludGVy
cG9sYXRpb25RdWFsaXR5IGVudW0uCkBAIC0xMjk3LDkgKzEyOTcsNiBAQCBBZmZpbmVUcmFuc2Zv
cm0gR3JhcGhpY3NDb250ZXh0OjpnZXRDVE0oSW5jbHVkZURldmljZVNjYWxlIGluY2x1ZGVTY2Fs
ZSkgY29uc3QKIAogRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVs
cyhjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFJvdW5kaW5nTW9kZSByb3VuZGluZ01vZGUpCiB7Ci0j
aWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgcmV0dXJuIHJlY3Q7Ci0jZWxzZQogICAgIC8vIEl0
IGlzIG5vdCBlbm91Z2gganVzdCB0byByb3VuZCB0byBwaXhlbHMgaW4gZGV2aWNlIHNwYWNlLiBU
aGUgcm90YXRpb24gcGFydCBvZiB0aGUKICAgICAvLyBhZmZpbmUgdHJhbnNmb3JtIG1hdHJpeCB0
byBkZXZpY2Ugc3BhY2UgY2FuIG1lc3Mgd2l0aCB0aGlzIGNvbnZlcnNpb24gaWYgd2UgaGF2ZSBh
CiAgICAgLy8gcm90YXRpbmcgaW1hZ2UgbGlrZSB0aGUgaGFuZHMgb2YgdGhlIHdvcmxkIGNsb2Nr
IHdpZGdldC4gV2UganVzdCBuZWVkIHRoZSBzY2FsZSwgc28KQEAgLTEzNDAsNyArMTMzNyw2IEBA
IEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBSb3VuZGluZ01vCiAgICAgRmxvYXRQb2ludCByb3VuZGVkT3JpZ2luID0g
RmxvYXRQb2ludChkZXZpY2VPcmlnaW4ueCAvIGRldmljZVNjYWxlWCwgZGV2aWNlT3JpZ2luLnkg
LyBkZXZpY2VTY2FsZVkpOwogICAgIEZsb2F0UG9pbnQgcm91bmRlZExvd2VyUmlnaHQgPSBGbG9h
dFBvaW50KGRldmljZUxvd2VyUmlnaHQueCAvIGRldmljZVNjYWxlWCwgZGV2aWNlTG93ZXJSaWdo
dC55IC8gZGV2aWNlU2NhbGVZKTsKICAgICByZXR1cm4gRmxvYXRSZWN0KHJvdW5kZWRPcmlnaW4s
IHJvdW5kZWRMb3dlclJpZ2h0IC0gcm91bmRlZE9yaWdpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwg
ZmxvYXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlQ0cuaAppbmRleCA1YzAwMzA4MzYwNWQwYjg4OGRjOTYyYTQzY2EyY2U3Yzk3OTI3
ZDQ4Li5mY2M5ZDAxNTI0ZWMyZDUzNTFjYmJjMWVlNTAyNGVhYzJkZDdjMTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGVDRy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBUaGVzZSBtZXRob2RzIGRvIG5vdGhpbmcg
b24gTWFjLgogICAgIHZvaWQgc2F2ZSgpIHt9CiAgICAgdm9pZCByZXN0b3JlKCkge30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHAKaW5kZXggMDY4MTU3OGEzNmNlZDM4NzljNmVkODU2Y2YzMzc5ZTdjOTIxYTljYy4uMzBkNDRm
NjY4NjQ4ZGFjMGJkZGExNDljYTZlMzJmOTQ3MTZiYWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0p
CisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
Q0cuY3BwCmluZGV4IGI0ZDYwYzdhMGZhNWY5NWEzZDk2N2Y4NzAyMjhhZDJhZTFmMTk2YzUuLjhh
MTIzNjhiNmMzYzI0OTMzYmMyOWZlMTI2YTRjOGJkMTkzYjUxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QYXRoQ0cuY3BwCmluZGV4IDUxNjJkNThiM2U3MTYxNjgzZDNhYWI2OGZiODg4MjhjZmM5
NmNlMzYuLjE3NTFhMGFjZDM2ZTVmMjgzN2NjNjhkNjdhOWY1MDNkOTBjOTNhYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcApAQCAtMzksNyAr
MzksNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pCisj
aWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Q
YXR0ZXJuQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVy
bkNHLmNwcAppbmRleCBhZTlhMDFiMzZhN2ZiNzg3M2E2ZWJkMjRjNDgxNWJiMTE3MzUzNzdiLi4w
Y2Q1MjllYWJlOTFhNTg5Y2I4NWE2MzNkZjRmNzlhYTdlMjEzYTg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpp
bmRleCBjZGJjNmRkZWY1ZDgxMmVjZWQ4MWQ0YWMzMzQ2NzAyZmE5NTdkYjY5Li40MzVjN2Y0MWFj
ZmUyY2I0NzljOGRhNmI0ZmY0YTk0NzU4MzVlMzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNv
Y29hLm1tCkBAIC0yOCwxMCArMjgsNiBAQAogI2ltcG9ydCA8QXBwS2l0L05TRm9udC5oPgogI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYg
T1MoREFSV0lOKQotI2ltcG9ydCAiSGFyZkJ1enpGYWNlLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBUaGVzZSBDb3JlVGV4dCBUZXh0IFNwYWNpbmcgZmVhdHVyZSBzZWxl
Y3RvcnMgYXJlIG5vdCBkZWZpbmVkIGluIENvcmVUZXh0LgpAQCAtOTEsMTEgKzg3LDYgQEAgdm9p
ZCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybURhdGFJbml0KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmIGYpCiAKICAgICBtX2NnRm9udCA9IGYubV9jZ0ZvbnQ7CiAgICAgbV9DVEZvbnQgPSBmLm1f
Q1RGb250OwotCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICBtX2lu
TWVtb3J5Rm9udCA9IGYubV9pbk1lbW9yeUZvbnQ7Ci0gICAgbV9oYXJmQnV6ekZhY2UgPSBmLm1f
aGFyZkJ1enpGYWNlOwotI2VuZGlmCiB9CiAKIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQ
bGF0Zm9ybURhdGE6OnBsYXRmb3JtRGF0YUFzc2lnbihjb25zdCBGb250UGxhdGZvcm1EYXRhJiBm
KQpAQCAtMTA5LDEwICsxMDAsNiBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZv
cm1EYXRhOjpwbGF0Zm9ybURhdGFBc3NpZ24oY29uc3QgRm9udFBsYXRmb3JtRAogICAgICAgICBD
RlJlbGVhc2UobV9mb250KTsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKICAgICBtX0NURm9udCA9
IGYubV9DVEZvbnQ7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSAgICBt
X2luTWVtb3J5Rm9udCA9IGYubV9pbk1lbW9yeUZvbnQ7Ci0gICAgbV9oYXJmQnV6ekZhY2UgPSBm
Lm1faGFyZkJ1enpGYWNlOwotI2VuZGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC0xNDEs
MTYgKzEyOCw2IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6c2V0Rm9udChOU0ZvbnQgKmZvbnQp
CiAgICAgTlNGb250KiBsb2FkZWRGb250ID0gMDsKICAgICBsb2FkRm9udChtX2ZvbnQsIG1fc2l6
ZSwgbG9hZGVkRm9udCwgY2dGb250KTsKICAgICAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYg
T1MoREFSV0lOKQotICAgIC8vIElmIGxvYWRGb250IHJlcGxhY2VkIG1fZm9udCB3aXRoIGEgZmFs
bGJhY2sgZm9udCwgdGhlbiByZWxlYXNlIHRoZQotICAgIC8vIHByZXZpb3VzIGZvbnQgdG8gY291
bnRlciB0aGUgcmV0YWluIGFib3ZlLiBUaGVuIHJldGFpbiB0aGUgbmV3IGZvbnQuCi0gICAgaWYg
KGxvYWRlZEZvbnQgIT0gbV9mb250KSB7Ci0gICAgICAgIENGUmVsZWFzZShtX2ZvbnQpOwotICAg
ICAgICBDRlJldGFpbihsb2FkZWRGb250KTsKLSAgICAgICAgbV9mb250ID0gbG9hZGVkRm9udDsK
LSAgICB9Ci0jZW5kaWYKLSAgICAKICAgICBtX2NnRm9udC5hZG9wdENGKGNnRm9udCk7CiAjaWYg
UExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
ICAgICB7CkBAIC0yNDcsMTMgKzIyNCw2IEBAIENURm9udFJlZiBGb250UGxhdGZvcm1EYXRhOjpj
dEZvbnQoKSBjb25zdAogICAgIGlmIChtX0NURm9udCkKICAgICAgICAgcmV0dXJuIG1fQ1RGb250
LmdldCgpOwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgaWYgKG1faW5NZW1vcnlGb250
KSB7Ci0gICAgICAgIG1fQ1RGb250LmFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEdyYXBoaWNzRm9u
dChtX2luTWVtb3J5Rm9udC0+Y2dGb250KCksIG1fc2l6ZSwgMCwgY2FzY2FkZVRvTGFzdFJlc29y
dEZvbnREZXNjcmlwdG9yKCkpKTsKLSAgICAgICAgcmV0dXJuIG1fQ1RGb250LmdldCgpOwotICAg
IH0KLSNlbmRpZgotCiAgICAgbV9DVEZvbnQgPSB0b0NURm9udFJlZihtX2ZvbnQpOwogICAgIGlm
IChtX0NURm9udCkgewogICAgICAgICBDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9y
OwpAQCAtMjgzLDM3ICsyNTMsNiBAQCBDVEZvbnRSZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250
KCkgY29uc3QKICAgICByZXR1cm4gbV9DVEZvbnQuZ2V0KCk7CiB9CiAKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKQotc3RhdGljIGJvb2wgaXNBQVRGb250KENURm9udFJlZiBj
dEZvbnQpCi17Ci0gICAgQ0ZEYXRhUmVmIHRhYmxlID0gQ1RGb250Q29weVRhYmxlKGN0Rm9udCwg
a0NURm9udFRhYmxlTW9ydCwgMCk7Ci0gICAgaWYgKHRhYmxlKSB7Ci0gICAgICAgIENGUmVsZWFz
ZSh0YWJsZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICB0YWJsZSA9IENURm9u
dENvcHlUYWJsZShjdEZvbnQsIGtDVEZvbnRUYWJsZU1vcngsIDApOwotICAgIGlmICh0YWJsZSkg
ewotICAgICAgICBDRlJlbGVhc2UodGFibGUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1IYXJmQnV6ekZhY2UqIEZvbnRQbGF0Zm9ybURhdGE6
OmhhcmZCdXp6RmFjZSgpCi17Ci0gICAgQ1RGb250UmVmIGZvbnQgPSBjdEZvbnQoKTsKLSAgICAv
LyBIYXJmQnV6eiBjYW4ndCBoYW5kbGUgQUFUIGZvbnQKLSAgICBpZiAoaXNBQVRGb250KGZvbnQp
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICghbV9oYXJmQnV6ekZhY2UpIHsKLSAgICAg
ICAgdWludDY0X3QgdW5pcXVlSUQgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZm9udCk7
Ci0gICAgICAgIG1faGFyZkJ1enpGYWNlID0gSGFyZkJ1enpGYWNlOjpjcmVhdGUoY29uc3RfY2Fz
dDxGb250UGxhdGZvcm1EYXRhKj4odGhpcyksIHVuaXF1ZUlEKTsKLSAgICB9Ci0gICAgcmV0dXJu
IG1faGFyZkJ1enpGYWNlLmdldCgpOwotfQotI2VuZGlmCi0KICNpZm5kZWYgTkRFQlVHCiBTdHJp
bmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmls
dGVyLmNwcAppbmRleCAzYTVlYzg1M2Q0NTlhYzg3ODlmMzM2NzNlN2YxMmUyNTZkYTY2MGM2Li4x
NTgxMzExODVkMmJiMzNiMWYwZmRhY2YwODM2MDQ1MGUyZWNlZDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmls
dGVyLmNwcApAQCAtMzMxLDEyICszMzEsNyBAQCBib29sIEZFQ3VzdG9tRmlsdGVyOjpyZXNpemVD
b250ZXh0KGNvbnN0IEludFNpemUmIG5ld0NvbnRleHRTaXplKQogICAgIG1fY29udGV4dC0+Ymlu
ZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mcmFtZUJ1ZmZl
cik7CiAgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgbV9kZXN0VGV4dHVyZSk7CiAgICAgLy8gV2UgYXJlIGdvaW5nIHRvIGNsZWFyIHRoZSBv
dXRwdXQgYnVmZmVyIGFueXdheSwgc28gd2UgY2FuIHNhZmVseSBpbml0aWFsaXplIHRoZSBkZXN0
aW5hdGlvbiB0ZXh0dXJlIHdpdGggZ2FyYmFnZSBkYXRhLgotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgIC8vIEZJWE1FOiBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2UyRERpcmVjdCBpcyBu
b3QgaW1wbGVtZW50ZWQgb24gQ2hyb21pdW0uCi0gICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwg
bmV3Q29udGV4dFNpemUud2lkdGgoKSwgbmV3Q29udGV4dFNpemUuaGVpZ2h0KCksIDAsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgMCk7
Ci0jZWxzZQogICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRERpcmVjdChHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIG5ld0NvbnRleHRTaXpl
LndpZHRoKCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIDApOwotI2VuZGlmCiAgICAg
bV9jb250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fZGVzdFRleHR1cmUsIDApOwogCiAgICAgLy8gV2UgZG9uJ3Qg
bmVlZCB0aGUgZGVwdGggYnVmZmVyIGZvciB0aGUgdGV4dHVyZSBmcmFtZWJ1ZmZlciwgaWYgd2Ug
YWxyZWFkeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0RyYXdpbmdCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9E
cmF3aW5nQnVmZmVyLmgKaW5kZXggYjQ0NjEwMTIwNjc3MTNkNTFhNWExYjcwZmQwMTExYzYyZmYy
MWY3Ni4uYzgyN2EwZWZhNDg1NTA1MTAxMDAyZGRmYzlkYjM2ODdjOTVjODdmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5o
CkBAIC00Niw5ICs0Niw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQzRDsKIGNsYXNzIEltYWdlRGF0YTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLWNsYXNz
IERyYXdpbmdCdWZmZXJQcml2YXRlOwotI2VuZGlmCiAKIC8vIE1hbmFnZXMgYSByZW5kZXJpbmcg
dGFyZ2V0IChmcmFtZWJ1ZmZlciArIGF0dGFjaG1lbnQpIGZvciBhIGNhbnZhcy4gIENhbiBwdWJs
aXNoIGl0cyByZW5kZXJpbmcKIC8vIHJlc3VsdHMgdG8gYSBQbGF0Zm9ybUxheWVyIGZvciBjb21w
b3NpdGluZy4KQEAgLTE3MiwxMCArMTY5LDYgQEAgcHJpdmF0ZToKICAgICAvLyBUcnVlIGlmIG91
ciBjb250ZW50cyBoYXZlIGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgcHJlc2VudGF0aW9u
IG9mIHRoaXMgYnVmZmVyLgogICAgIGJvb2wgbV9jb250ZW50c0NoYW5nZWQ7CiAKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICBPd25QdHI8RHJhd2luZ0J1ZmZlclByaXZhdGU+IG1fcHJpdmF0
ZTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxXZWJHTExheWVy
PiBtX3BsYXRmb3JtTGF5ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3Bw
CmluZGV4IDFiNDBhMjk1OTQ3ODIzODc2NDg1ZGU1MzRhOTVkMTM2YmRmM2E4NjcuLjhiOThlNzgw
NTEwNDA5ZWFiMDQxMWIwMGU1ZTM2NjliNTc2Y2M0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29u
dGV4dDNELmNwcApAQCAtMjksMTEgKzI5LDYgQEAKICNpbmNsdWRlICJTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5oIgogCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCi0jaW5jbHVkZSA8
cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNE
Lmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQppbmRleCAxNWEzMmJkY2VmODAzZWQ2ODUzNmEwNzljYzlkMTI5MDRjY2Qy
ZjRhLi5iZjlmOGFlMzc4OTBmYTRjNjdmYzBmYTI1MmVlMjAyMDE5N2E3YTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0K
QEAgLTEwMiwxMiArMTAyLDYgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwKICAgICBpZiAoIXN1
YnN0aXR1dGVGb250KQogICAgICAgICByZXR1cm4gMDsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgIC8vIENocm9taXVtIGNhbid0IHJlbmRlciBBcHBsZUNvbG9yRW1vamkuCi0gICAgaWYg
KFtbc3Vic3RpdHV0ZUZvbnQgZmFtaWx5TmFtZV0gaXNFcXVhbDpAIkFwcGxlIENvbG9yIEVtb2pp
Il0pCi0gICAgICAgIHJldHVybiAwOwotI2VuZGlmCi0KICAgICAvLyBVc2UgdGhlIGZhbWlseSBu
YW1lIGZyb20gdGhlIEFwcEtpdC1zdXBwbGllZCBzdWJzdGl0dXRlIGZvbnQsIHJlcXVlc3Rpbmcg
dGhlCiAgICAgLy8gdHJhaXRzLCB3ZWlnaHQsIGFuZCBzaXplIHdlIHdhbnQuIE9uZSB3YXkgdGhp
cyBkb2VzIGJldHRlciB0aGFuIHRoZSBvcmlnaW5hbAogICAgIC8vIEFwcEtpdCByZXF1ZXN0IGlz
IHRoYXQgaXQgdGFrZXMgc3ludGhldGljIGJvbGQgYW5kIG9ibGlxdWUgaW50byBhY2NvdW50Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21w
bGV4VGV4dE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcAppbmRleCBiNmZkYzczYmRjZWI3MTc2NTdkOTY1Y2QwMmY2NWJi
NjAwZmVlMTdkLi5lZjUxN2M2MGU0NTdjNDM5YzVmYjYyM2YyNGZmMzYyYzliNzU4ZTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhU
ZXh0TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcApAQCAtMzQsMzIgKzM0LDEzIEBACiAjaW5jbHVkZSAiVGV4dFJ1
bi5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSNpbmNsdWRlICJIYXJmQnV6elNoYXBlci5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQot
c3RhdGljIGJvb2wgcHJlZmVySGFyZkJ1enooY29uc3QgRm9udCogZm9udCkKLXsKLSAgICBjb25z
dCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uID0gZm9udC0+Zm9udERlc2NyaXB0aW9uKCk7
Ci0gICAgcmV0dXJuIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpICYmIGRlc2NyaXB0aW9u
LmZlYXR1cmVTZXR0aW5ncygpLT5zaXplKCkgPiAwOwotfQotI2VuZGlmCi0KIEZsb2F0UmVjdCBG
b250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgaWYgKHByZWZlckhhcmZCdXp6KHRoaXMpKSB7Ci0gICAgICAgIEhhcmZC
dXp6U2hhcGVyIHNoYXBlcih0aGlzLCBydW4pOwotICAgICAgICBpZiAoc2hhcGVyLnNoYXBlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gc2hhcGVyLnNlbGVjdGlvblJlY3QocG9pbnQsIGgsIGZyb20s
IHRvKTsKLSAgICB9Ci0jZW5kaWYKICAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxl
cih0aGlzLCBydW4pOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShmcm9tKTsKICAgICBmbG9hdCBi
ZWZvcmVXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwpAQCAtMTAwLDE3ICs4MSw2
IEBAIGZsb2F0IEZvbnQ6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3Qg
VGV4dFJ1biYgcnVuLCBpbnQgZnJvbSwgaW50CiAKIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKIHsKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICBpZiAocHJlZmVySGFyZkJ1enoodGhpcykpIHsKLSAgICAgICAgR2x5cGhC
dWZmZXIgZ2x5cGhCdWZmZXI7Ci0gICAgICAgIEhhcmZCdXp6U2hhcGVyIHNoYXBlcih0aGlzLCBy
dW4pOwotICAgICAgICBzaGFwZXIuc2V0RHJhd1JhbmdlKGZyb20sIHRvKTsKLSAgICAgICAgaWYg
KHNoYXBlci5zaGFwZSgmZ2x5cGhCdWZmZXIpKSB7Ci0gICAgICAgICAgICBkcmF3R2x5cGhCdWZm
ZXIoY29udGV4dCwgcnVuLCBnbHlwaEJ1ZmZlciwgcG9pbnQpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCiAgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9s
ZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgogICAg
IEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogCkBAIC0xMzgsMTMgKzEwOCw2IEBAIHZvaWQgRm9u
dDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSCiAKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChj
b25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICBpZiAocHJlZmVySGFyZkJ1enoodGhpcykpIHsKLSAgICAgICAg
SGFyZkJ1enpTaGFwZXIgc2hhcGVyKHRoaXMsIHJ1bik7Ci0gICAgICAgIGlmIChzaGFwZXIuc2hh
cGUoKSkKLSAgICAgICAgICAgIHJldHVybiBzaGFwZXIudG90YWxXaWR0aCgpOwotICAgIH0KLSNl
bmRpZgogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRoaXMsIHJ1biwgdHJ1
ZSwgZmFsbGJhY2tGb250cyk7CiAgICAgaWYgKGdseXBoT3ZlcmZsb3cpIHsKICAgICAgICAgZ2x5
cGhPdmVyZmxvdy0+dG9wID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBjZWlsZigtY29u
dHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIChnbHlwaE92ZXJmbG93LT5jb21wdXRl
Qm91bmRzID8gMCA6IGZvbnRNZXRyaWNzKCkuYXNjZW50KCkpKTsKQEAgLTE1NywxMyArMTIwLDYg
QEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb24KIAogaW50IEZvbnQ6Om9mZnNldEZvclBvc2l0aW9u
Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBmbG9hdCB4LCBib29sIGluY2x1ZGVQ
YXJ0aWFsR2x5cGhzKSBjb25zdAogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGlmIChw
cmVmZXJIYXJmQnV6eih0aGlzKSkgewotICAgICAgICBIYXJmQnV6elNoYXBlciBzaGFwZXIodGhp
cywgcnVuKTsKLSAgICAgICAgaWYgKHNoYXBlci5zaGFwZSgpKQotICAgICAgICAgICAgcmV0dXJu
IHNoYXBlci5vZmZzZXRGb3JQb3NpdGlvbih4KTsKLSAgICB9Ci0jZW5kaWYKICAgICBDb21wbGV4
VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4pOwogICAgIHJldHVybiBjb250cm9s
bGVyLm9mZnNldEZvclBvc2l0aW9uKHgsIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KaW5kZXggYjk2
NTg1NTQ2YTNlMTgzZjU4YzIwNmFhOTk5OTM3N2Y0NTVmMDFlNC4uZGY2ZTA2NDI3YWE1YmI5ZTdj
MmExOGZiODZjNWEzOGI3YTg0Mzg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KQEAgLTU3LDIxICs1Nyw3IEBAIGJvb2wgRm9udDo6Y2Fu
RXhwYW5kQXJvdW5kSWRlb2dyYXBoc0luQ29tcGxleFRleHQoKQogLy8gZGl2aWRlcyBieSB1bml0
c1BlckVtLgogc3RhdGljIGJvb2wgaGFzQnJva2VuQ1RGb250R2V0VmVydGljYWxUcmFuc2xhdGlv
bnNGb3JHbHlwaHMoKQogewotLy8gQ2hyb21pdW0gcnVucyB0aGUgc2FtZSBiaW5hcnkgb24gYm90
aCBMZW9wYXJkIGFuZCBTbm93IExlb3BhcmQsIHNvIHRoZSBjaGVjayBoYXMgdG8gaGFwcGVuIGF0
IHJ1bnRpbWUuCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgc3RhdGljIGJvb2wgaXNDYWNo
ZWQgPSBmYWxzZTsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQ7Ci0gICAgCi0gICAgaWYgKCFpc0Nh
Y2hlZCkgewotICAgICAgICBTSW50MzIgbWFqb3JWZXJzaW9uID0gMDsKLSAgICAgICAgU0ludDMy
IG1pbm9yVmVyc2lvbiA9IDA7Ci0gICAgICAgIEdlc3RhbHQoZ2VzdGFsdFN5c3RlbVZlcnNpb25N
YWpvciwgJm1ham9yVmVyc2lvbik7Ci0gICAgICAgIEdlc3RhbHQoZ2VzdGFsdFN5c3RlbVZlcnNp
b25NaW5vciwgJm1pbm9yVmVyc2lvbik7Ci0gICAgICAgIHJlc3VsdCA9IG1ham9yVmVyc2lvbiA9
PSAxMCAmJiBtaW5vclZlcnNpb24gPT0gNjsKLSAgICAgICAgaXNDYWNoZWQgPSB0cnVlOwotICAg
IH0KLSAgICByZXR1cm4gcmVzdWx0OwotI2VsaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCisjaWYgIVBMQVRGT1JNKElPUykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA9PSAxMDYwCiAgICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1v
bi5jcHAKaW5kZXggNWI4N2M1NjhjYTUzNTcxNzU1ZjI5YWQxZDIxODRiZDUyZDVhM2Y3NC4uNDAx
YTE1Njk1N2Y5ZWY1YWJjNTQ0Nzg5MmNmOGMwNmRiNTBmMDAzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1v
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE3MCwxNyArMTcwLDExIEBAIFN0cmluZyBFeHRl
bnNpb25zM0RPcGVuR0xDb21tb246OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0
Zm9ybTNET2JqZWN0CiAKICAgICBTdHJpbmcgdHJhbnNsYXRlZFNoYWRlclNvdXJjZTsKICAgICBT
dHJpbmcgc2hhZGVySW5mb0xvZzsKLSAgICBpbnQgZXh0cmFDb21waWxlT3B0aW9ucyA9IFNIX01B
UF9MT05HX1ZBUklBQkxFX05BTUVTOworICAgIGludCBleHRyYUNvbXBpbGVPcHRpb25zID0gU0hf
TUFQX0xPTkdfVkFSSUFCTEVfTkFNRVMgfCBTSF9DTEFNUF9JTkRJUkVDVF9BUlJBWV9CT1VORFM7
CiAKICAgICBpZiAobV9yZXF1aXJlc0J1aWx0SW5GdW5jdGlvbkVtdWxhdGlvbikKICAgICAgICAg
ZXh0cmFDb21waWxlT3B0aW9ucyB8PSBTSF9FTVVMQVRFX0JVSUxUX0lOX0ZVTkNUSU9OUzsKIAot
I2lmICFQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBDaHJvbWl1bSBkb2VzIG5vdCB1c2UgdGhl
IEFOR0xFIGJ1bmRsZWQgaW4gV2ViS2l0IHNvdXJjZSwgYW5kIHRodXMKLSAgICAvLyBkb2VzIG5v
dCB5ZXQgaGF2ZSB0aGUgc3ltYm9sIFNIX0NMQU1QX0lORElSRUNUX0FSUkFZX0JPVU5EUy4KLSAg
ICBleHRyYUNvbXBpbGVPcHRpb25zIHw9IFNIX0NMQU1QX0lORElSRUNUX0FSUkFZX0JPVU5EUzsK
LSNlbmRpZgotCiAgICAgVmVjdG9yPEFOR0xFU2hhZGVyU3ltYm9sPiBzeW1ib2xzOwogICAgIGJv
b2wgaXNWYWxpZCA9IGNvbXBpbGVyLmNvbXBpbGVTaGFkZXJTb3VyY2UoZW50cnkuc291cmNlLnV0
ZjgoKS5kYXRhKCksIHNoYWRlclR5cGUsIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UsIHNoYWRlcklu
Zm9Mb2csIHN5bWJvbHMsIGV4dHJhQ29tcGlsZU9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRT
a2lhLmNwcAppbmRleCA2YTU2Y2NiNWUyMzAzNzM3OTcxMGM3NmI2MGY1ODhhMWRkY2MyYTY2Li4y
M2NiN2Q5OWY3MzM0YmE0MWJiZGExNjY2NDllNTg0NzhhNjE1MzkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250
ZXh0U2tpYS5jcHAKQEAgLTU5LDEwICs1OSw2IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlv
blNlcnZpY2VzLmg+Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDk1LDMzICs0OTEsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb24K
IAogc3RhdGljIGlubGluZSB2b2lkIGRyYXdPdXRlclBhdGgoUGxhdGZvcm1Db250ZXh0U2tpYSog
Y29udGV4dCwgY29uc3QgU2tQYXRoJiBwYXRoLCBTa1BhaW50JiBwYWludCwgaW50IHdpZHRoKQog
ewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0gICAgcGFpbnQuc2V0QWxw
aGEoNjQpOwotICAgIHBhaW50LnNldFN0cm9rZVdpZHRoKHdpZHRoKTsKLSAgICBwYWludC5zZXRQ
YXRoRWZmZWN0KG5ldyBTa0Nvcm5lclBhdGhFZmZlY3QoKHdpZHRoIC0gMSkgKiAwLjVmKSktPnVu
cmVmKCk7Ci0jZWxzZQogICAgIHBhaW50LnNldFN0cm9rZVdpZHRoKDEpOwogICAgIHBhaW50LnNl
dFBhdGhFZmZlY3QobmV3IFNrQ29ybmVyUGF0aEVmZmVjdCgxKSktPnVucmVmKCk7Ci0jZW5kaWYK
ICAgICBjb250ZXh0LT5kcmF3UGF0aChwYXRoLCBwYWludCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
dm9pZCBkcmF3SW5uZXJQYXRoKFBsYXRmb3JtQ29udGV4dFNraWEqIGNvbnRleHQsIGNvbnN0IFNr
UGF0aCYgcGF0aCwgU2tQYWludCYgcGFpbnQsIGludCB3aWR0aCkKIHsKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKQotICAgIHBhaW50LnNldEFscGhhKDEyOCk7Ci0gICAgcGFp
bnQuc2V0U3Ryb2tlV2lkdGgod2lkdGggKiAwLjVmKTsKLSAgICBjb250ZXh0LT5kcmF3UGF0aChw
YXRoLCBwYWludCk7Ci0jZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSBpbnQgZ2V0Rm9jdXNSaW5n
T3V0c2V0KGludCBvZmZzZXQpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJ
TikKLSAgICByZXR1cm4gb2Zmc2V0ICsgMjsKLSNlbHNlCiAgICAgcmV0dXJuIDA7Ci0jZW5kaWYK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPElu
dFJlY3Q+JiByZWN0cywgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
CkBAIC02MTYsNjIgKzU5Nyw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHB0LCBmbG9hdCB3aWR0CiAgICAgc3RhdGlj
IFNrQml0bWFwKiBtaXNzcGVsbEJpdG1hcDJ4WzJdID0geyAwLCAwIH07CiAgICAgU2tCaXRtYXAq
KiBtaXNzcGVsbEJpdG1hcCA9IGRldmljZVNjYWxlRmFjdG9yID09IDIgPyBtaXNzcGVsbEJpdG1h
cDJ4IDogbWlzc3BlbGxCaXRtYXAxeDsKICAgICBpZiAoIW1pc3NwZWxsQml0bWFwW2luZGV4XSkg
ewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0gICAgICAgIC8vIE1hdGNo
IHRoZSBhcnR3b3JrIHVzZWQgYnkgdGhlIE1hYy4KLSAgICAgICAgY29uc3QgaW50IHJvd1BpeGVs
cyA9IDQgKiBkZXZpY2VTY2FsZUZhY3RvcjsKLSAgICAgICAgY29uc3QgaW50IGNvbFBpeGVscyA9
IDMgKiBkZXZpY2VTY2FsZUZhY3RvcjsKLSAgICAgICAgbWlzc3BlbGxCaXRtYXBbaW5kZXhdID0g
bmV3IFNrQml0bWFwOwotICAgICAgICBtaXNzcGVsbEJpdG1hcFtpbmRleF0tPnNldENvbmZpZyhT
a0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJvd1BpeGVscywgY29sUGl4ZWxzKTsKLSAgICAgICAgbWlzc3BlbGxCaXRt
YXBbaW5kZXhdLT5hbGxvY1BpeGVscygpOwotCi0gICAgICAgIG1pc3NwZWxsQml0bWFwW2luZGV4
XS0+ZXJhc2VBUkdCKDAsIDAsIDAsIDApOwotICAgICAgICBjb25zdCB1aW50MzJfdCB0cmFuc3Bh
cmVudENvbG9yID0gMHgwMDAwMDAwMDsKLQotICAgICAgICBpZiAoZGV2aWNlU2NhbGVGYWN0b3Ig
PT0gMSkgewotICAgICAgICAgICAgY29uc3QgdWludDMyX3QgY29sb3JzWzJdWzZdID0gewotICAg
ICAgICAgICAgICAgIHsgMHgyQTJBMDYwMCwgMHg1NzU3MTAwMCwgIDB4QThBODFCMDAsIDB4QkZC
RjFGMDAsICAweDcwNzAxMjAwLCAweEUwRTAyNDAwIH0sCi0gICAgICAgICAgICAgICAgeyAweDJB
MDAxNTAzLCAweDU3MDAyQTA4LCAgMHhBODAwNTQwRCwgMHhCRjAwNUYwRiwgIDB4NzAwMDM4MDks
IDB4RTAwMDcwMTIgfQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgLy8gUGF0dGVybjog
YSBiIGEgICBhIGIgYQotICAgICAgICAgICAgLy8gICAgICAgICAgYyBkIGMgICBjIGQgYwotICAg
ICAgICAgICAgLy8gICAgICAgICAgZSBmIGUgICBlIGYgZQotICAgICAgICAgICAgZm9yIChpbnQg
eCA9IDA7IHggPCBjb2xQaXhlbHM7ICsreCkgewotICAgICAgICAgICAgICAgIHVpbnQzMl90KiBy
b3cgPSBtaXNzcGVsbEJpdG1hcFtpbmRleF0tPmdldEFkZHIzMigwLCB4KTsKLSAgICAgICAgICAg
ICAgICByb3dbMF0gPSBjb2xvcnNbaW5kZXhdW3ggKiAyXTsKLSAgICAgICAgICAgICAgICByb3db
MV0gPSBjb2xvcnNbaW5kZXhdW3ggKiAyICsgMV07Ci0gICAgICAgICAgICAgICAgcm93WzJdID0g
Y29sb3JzW2luZGV4XVt4ICogMl07Ci0gICAgICAgICAgICAgICAgcm93WzNdID0gdHJhbnNwYXJl
bnRDb2xvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChkZXZpY2VTY2FsZUZh
Y3RvciA9PSAyKSB7Ci0gICAgICAgICAgICBjb25zdCB1aW50MzJfdCBjb2xvcnNbMl1bMThdID0g
ewotICAgICAgICAgICAgICAgIHsgMHgwYTA5MDEwMSwgMHgzMzMyMDgwNiwgMHg1NTU0MGYwYSwg
IDB4MzczNjA5MDYsIDB4NmU2YzEyMGMsIDB4NmU2YzEyMGMsICAweDc2NzQxNDBkLCAweDhkOGIx
ODEwLCAweDhkOGIxODEwLAotICAgICAgICAgICAgICAgICAgMHg5Njk0MWExMSwgMHhiM2IwMWYx
NSwgMHhiM2IwMWYxNSwgIDB4NmQ2YjEzMGMsIDB4ZDlkNjI2MTksIDB4ZDlkNjI2MTksICAweDE5
MTgwNDAyLCAweDdjN2ExNTBlLCAweGNlY2IyNDE4IH0sCi0gICAgICAgICAgICAgICAgeyAweDBh
MDAwNDAwLCAweDMzMDMxYjA2LCAweDU1MDYyZjBiLCAgMHgzNzA0MWUwNiwgMHg2ZTA4M2QwZCwg
MHg2ZTA4M2QwZCwgIDB4NzYwODQxMGUsIDB4OGQwOTRlMTEsIDB4OGQwOTRlMTEsCi0gICAgICAg
ICAgICAgICAgICAweDk2MGE1MzEzLCAweGIzMGQ2NDE3LCAweGIzMGQ2NDE3LCAgMHg2ZDA3M2Mw
ZCwgMHhkOTBmNzgxYywgMHhkOTBmNzgxYywgIDB4MTkwMTBkMDMsIDB4N2MwOTQ1MTAsIDB4Y2Uw
ZjczMWEgfQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgLy8gUGF0dGVybjogYSBiIGMg
YyBiIGEKLSAgICAgICAgICAgIC8vICAgICAgICAgIGQgZSBmIGYgZSBkCi0gICAgICAgICAgICAv
LyAgICAgICAgICBnIGggaiBqIGggZwotICAgICAgICAgICAgLy8gICAgICAgICAgayBsIG0gbSBs
IGsKLSAgICAgICAgICAgIC8vICAgICAgICAgIG4gbyBwIHAgbyBuCi0gICAgICAgICAgICAvLyAg
ICAgICAgICBxIHIgcyBzIHIgcQotICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBjb2xQ
aXhlbHM7ICsreCkgewotICAgICAgICAgICAgICAgIHVpbnQzMl90KiByb3cgPSBtaXNzcGVsbEJp
dG1hcFtpbmRleF0tPmdldEFkZHIzMigwLCB4KTsKLSAgICAgICAgICAgICAgICByb3dbMF0gPSBj
b2xvcnNbaW5kZXhdW3ggKiAzXTsKLSAgICAgICAgICAgICAgICByb3dbMV0gPSBjb2xvcnNbaW5k
ZXhdW3ggKiAzICsgMV07Ci0gICAgICAgICAgICAgICAgcm93WzJdID0gY29sb3JzW2luZGV4XVt4
ICogMyArIDJdOwotICAgICAgICAgICAgICAgIHJvd1szXSA9IGNvbG9yc1tpbmRleF1beCAqIDMg
KyAyXTsKLSAgICAgICAgICAgICAgICByb3dbNF0gPSBjb2xvcnNbaW5kZXhdW3ggKiAzICsgMV07
Ci0gICAgICAgICAgICAgICAgcm93WzVdID0gY29sb3JzW2luZGV4XVt4ICogM107Ci0gICAgICAg
ICAgICAgICAgcm93WzZdID0gdHJhbnNwYXJlbnRDb2xvcjsKLSAgICAgICAgICAgICAgICByb3db
N10gPSB0cmFuc3BhcmVudENvbG9yOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2Vsc2UKICAgICAgICAgLy8gV2UgdXNl
IGEgMi1waXhlbC1oaWdoIG1pc3NwZWxsaW5nIGluZGljYXRvciBiZWNhdXNlIHRoYXQgc2VlbXMg
dG8gYmUKICAgICAgICAgLy8gd2hhdCBXZWJLaXQgaXMgZGVzaWduZWQgZm9yLCBhbmQgaG93IG11
Y2ggcm9vbSB0aGVyZSBpcyBpbiBhIHR5cGljYWwKICAgICAgICAgLy8gcGFnZSBmb3IgaXQuCkBA
IC02ODgsMjYgKzYxMywxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1
bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwdCwgZmxvYXQgd2lkdAogICAgICAgICAgICAg
ZHJhdzJ4TWFya2VyKG1pc3NwZWxsQml0bWFwW2luZGV4XSwgaW5kZXgpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgogICAgIH0KIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0gICAgU2tTY2FsYXIgb3JpZ2luWCA9
IFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIocHQueCgpKSAqIGRldmljZVNjYWxlRmFjdG9yOwotICAg
IFNrU2NhbGFyIG9yaWdpblkgPSBXZWJDb3JlRmxvYXRUb1NrU2NhbGFyKHB0LnkoKSkgKiBkZXZp
Y2VTY2FsZUZhY3RvcjsKLQotICAgIC8vIE1ha2Ugc3VyZSB0byBkcmF3IG9ubHkgY29tcGxldGUg
ZG90cy4KLSAgICBpbnQgcm93UGl4ZWxzID0gbWlzc3BlbGxCaXRtYXBbaW5kZXhdLT53aWR0aCgp
OwotICAgIGZsb2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGggKiBkZXZpY2VTY2FsZUZhY3Rvciwg
cm93UGl4ZWxzKTsKLSAgICBpZiAocm93UGl4ZWxzIC0gd2lkdGhNb2QgPiBkZXZpY2VTY2FsZUZh
Y3RvcikKLSAgICAgICAgd2lkdGggLT0gd2lkdGhNb2QgLyBkZXZpY2VTY2FsZUZhY3RvcjsKLSNl
bHNlCiAgICAgU2tTY2FsYXIgb3JpZ2luWCA9IFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIocHQueCgp
KTsKIAogICAgIC8vIE9mZnNldCBpdCB2ZXJ0aWNhbGx5IGJ5IDEgc28gdGhhdCB0aGVyZSdzIHNv
bWUgc3BhY2UgdW5kZXIgdGhlIHRleHQuCiAgICAgU2tTY2FsYXIgb3JpZ2luWSA9IFdlYkNvcmVG
bG9hdFRvU2tTY2FsYXIocHQueSgpKSArIDE7CiAgICAgb3JpZ2luWCAqPSBkZXZpY2VTY2FsZUZh
Y3RvcjsKICAgICBvcmlnaW5ZICo9IGRldmljZVNjYWxlRmFjdG9yOwotI2VuZGlmCiAKICAgICAv
LyBNYWtlIGEgc2hhZGVyIGZvciB0aGUgYml0bWFwIHdpdGggYW4gb3JpZ2luIG9mIHRoZSBib3gg
d2UnbGwgZHJhdy4gVGhpcwogICAgIC8vIHNoYWRlciBpcyByZWZjb3VudGVkIGFuZCB3aWxsIGhh
dmUgYW4gaW5pdGlhbCByZWZjb3VudCBvZiAxLgpAQCAtMTIwMCwxNCArMTExMyw2IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0Ojppc0FjY2VsZXJhdGVkQ29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJu
IHBsYXRmb3JtQ29udGV4dCgpLT5pc0FjY2VsZXJhdGVkKCk7CiB9CiAKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKQotQ0dDb2xvclNwYWNlUmVmIGRldmljZVJHQkNvbG9yU3Bh
Y2VSZWYoKQotewotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2aWNlU3BhY2UgPSBDR0Nv
bG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKLSAgICByZXR1cm4gZGV2aWNlU3BhY2U7Ci19Ci0j
ZW5kaWYKLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRmlsbEVsbGlwc2UoY29uc3Qg
RmxvYXRSZWN0JiBlbGxpcHNlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAK
aW5kZXggMTNjY2YxMWVmOGMxNDNlMDE0ODViMDYzZWU5NzMzY2ZmMmY1ZWE0My4uMzljMTA2MjI5
OTU0YTg0MzIzYTU1NDFhZjU5ZjQ1Mjk2MDhjODZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcApAQCAtNTMsMTAgKzUzLDYg
QEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCi0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gVXNlZCBieSBjb21wdXRlUmVzYW1wbGluZ01vZGUgdG8gdGVsbCBob3cg
Yml0bWFwcyBzaG91bGQgYmUgcmVzYW1wbGVkLgpAQCAtMjk2LDkgKzI5Miw2IEBAIHN0YXRpYyBT
a0JpdG1hcCBleHRyYWN0U2NhbGVkSW1hZ2VGcmFnbWVudChjb25zdCBOYXRpdmVJbWFnZVNraWEm
IGJpdG1hcCwgY29uc3QKIC8vIHNjYWxpbmcgb3IgdHJhbnNsYXRpb24uCiBzdGF0aWMgdm9pZCBk
cmF3UmVzYW1wbGVkQml0bWFwKFBsYXRmb3JtQ29udGV4dFNraWEqIGNvbnRleHQsIFNrUGFpbnQm
IHBhaW50LCBjb25zdCBOYXRpdmVJbWFnZVNraWEmIGJpdG1hcCwgY29uc3QgU2tSZWN0JiBzcmNS
ZWN0LCBjb25zdCBTa1JlY3QmIGRlc3RSZWN0KQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgIFRSQUNFX0VWRU5UMCgic2tpYSIsICJkcmF3UmVzYW1wbGVkQml0bWFwIik7Ci0jZW5kaWYK
ICAgICAvLyBXZSB3YW50IHRvIHNjYWxlIHxkZXN0UmVjdHwgd2l0aCB0cmFuc2Zvcm1hdGlvbiBp
biB0aGUgY2FudmFzIHRvIG9idGFpbgogICAgIC8vIHRoZSBmaW5hbCBzY2FsZS4gVGhlIGZpbmFs
IHNjYWxlIGlzIGEgY29tYmluYXRpb24gb2Ygc2NhbGUgdHJhbnNmb3JtCiAgICAgLy8gaW4gY2Fu
dmFzIGFuZCBleHBsaWNpdCBzY2FsaW5nIChzcmNSZWN0IGFuZCBkZXN0UmVjdCkuCkBAIC0zNTks
OSArMzUyLDYgQEAgc3RhdGljIGJvb2wgaGFzTm9uOTByb3RhdGlvbihQbGF0Zm9ybUNvbnRleHRT
a2lhKiBjb250ZXh0KQogCiBzdGF0aWMgdm9pZCBwYWludFNrQml0bWFwKFBsYXRmb3JtQ29udGV4
dFNraWEqIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgTmF0aXZlSW1hZ2VTa2lhJiBiaXRtYXAsIGNv
bnN0IFNrUmVjdCYgc3JjUmVjdCwgY29uc3QgU2tSZWN0JiBkZXN0UmVjdCwgY29uc3QgU2tYZmVy
bW9kZTo6TW9kZSYgY29tcE9wKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNF
X0VWRU5UMCgic2tpYSIsICJwYWludFNrQml0bWFwIik7Ci0jZW5kaWYKICAgICBTa1BhaW50IHBh
aW50OwogICAgIHBhaW50LnNldFhmZXJtb2RlTW9kZShjb21wT3ApOwogICAgIHBhaW50LnNldEFs
cGhhKHBsYXRmb3JtQ29udGV4dC0+Z2V0Tm9ybWFsaXplZEFscGhhKCkpOwpAQCAtNDY1LDkgKzQ1
NSw2IEBAIHZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICBCbGVuZE1vZGUpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgVFJBQ0VfRVZFTlQwKCJza2lhIiwgIkltYWdlOjpkcmF3UGF0dGVybiIpOwotI2VuZGlm
CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlU2tpYT4gYml0bWFwID0gbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKTsKICAgICBpZiAoIWJpdG1hcCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNr
aWEuY3BwCmluZGV4IGU2ODlkMDdmZTE0NmJiNzA0NzdhNGQwMTMyMDFmMWM3ZjU4NDViZDcuLmRk
M2RkZGU2ODljNTljYjZkNzBhOGI3ODk3M2M3NDFiY2FiYzA3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5j
cHAKQEAgLTQwLDExICs0MCw2IEBACiAjaW5jbHVkZSAiU2tQaXhlbFJlZi5oIgogI2luY2x1ZGUg
IlNraWFVdGlscy5oIgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiRGVmZXJy
ZWRJbWFnZURlY29kZXIuaCIKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBOYXRpdmVJbWFnZVNraWE6Ok5hdGl2ZUltYWdlU2tpYSgpCkBA
IC04NywxMSArODIsNiBAQCBib29sIE5hdGl2ZUltYWdlU2tpYTo6aGFzUmVzaXplZEJpdG1hcChj
b25zdCBTa0lTaXplJiBzY2FsZWRJbWFnZVNpemUsIGNvbnN0IFNrSQogCiBTa0JpdG1hcCBOYXRp
dmVJbWFnZVNraWE6OnJlc2l6ZWRCaXRtYXAoY29uc3QgU2tJU2l6ZSYgc2NhbGVkSW1hZ2VTaXpl
LCBjb25zdCBTa0lSZWN0JiBzY2FsZWRJbWFnZVN1YnNldCkgY29uc3QKIHsKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICBpZiAoRGVmZXJyZWRJbWFnZURlY29kZXI6OmlzTGF6eURlY29kZWQo
bV9pbWFnZSkpCi0gICAgICAgIHJldHVybiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6Y3JlYXRlUmVz
aXplZExhenlEZWNvZGluZ0JpdG1hcChtX2ltYWdlLCBzY2FsZWRJbWFnZVNpemUsIHNjYWxlZElt
YWdlU3Vic2V0KTsKLSNlbmRpZgotCiAgICAgaWYgKCFoYXNSZXNpemVkQml0bWFwKHNjYWxlZElt
YWdlU2l6ZSwgc2NhbGVkSW1hZ2VTdWJzZXQpKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkQ2FjaGUg
PSBpc0RhdGFDb21wbGV0ZSgpCiAgICAgICAgICAgICAmJiBzaG91bGRDYWNoZVJlc2FtcGxpbmco
c2NhbGVkSW1hZ2VTaXplLCBzY2FsZWRJbWFnZVN1YnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmNwcAppbmRleCA2YmI4ODJhZDlhZTlhMDg0NzM1ZjcyOWExYjdhMTEyNTZkYTdiYjc0Li42ZTRk
YTkzZDUwNjA4NjIwYjJhZmNiYjYzNDU0MTk4NjBkM2Y3MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0
U2tpYS5jcHAKQEAgLTUyLDEwICs1Miw2IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNs
dWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1
Y3QgUGxhdGZvcm1Db250ZXh0U2tpYTo6RGVmZXJyZWRTYXZlU3RhdGUgewpAQCAtNTcwLDkgKzU2
Niw2IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0RGFzaFBhdGhFZmZlY3QoU2tEYXNo
UGF0aEVmZmVjdCogZGFzaCkKIAogY29uc3QgU2tCaXRtYXAqIFBsYXRmb3JtQ29udGV4dFNraWE6
OmJpdG1hcCgpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZF
TlQwKCJza2lhIiwgIlBsYXRmb3JtQ29udGV4dFNraWE6OmJpdG1hcCIpOwotI2VuZGlmCiAgICAg
cmV0dXJuICZtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vzc0JpdG1hcChmYWxzZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdl
RGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmgKaW5kZXggYTRlNzA2NjRkMWU2YmE3YzFlNDZhY2Q4M2ExNjAzMzYwYzdmMDdmYy4u
NGE2NTlhMWY2ODMxMjk5OGZkMmE2YWNmMjZjYWZkNDJkOTM5YzY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAg
LTE0NywyNSArMTQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAgICAgICAgIH0K
IAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB2b2lkIHNldFNrQml0bWFwKGNvbnN0
IFNrQml0bWFwJiBiaXRtYXApCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fYml0bWFwID0gTmF0
aXZlSW1hZ2VTa2lhOjpjcmVhdGUoYml0bWFwKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0
IFNrQml0bWFwJiBnZXRTa0JpdG1hcCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBtX2JpdG1hcC0+Yml0bWFwKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHNldE1l
bW9yeUFsbG9jYXRvcihTa0JpdG1hcDo6QWxsb2NhdG9yKiBhbGxvY2F0b3IpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIG1fYWxsb2NhdG9yID0gYWxsb2NhdG9yOwotICAgICAgICB9Ci0KLSAgICAg
ICAgU2tCaXRtYXA6OkFsbG9jYXRvciogYWxsb2NhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9hbGxv
Y2F0b3I7IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFVzZSBmaXggcG9pbnQgbXVsdGlwbGllciBp
bnN0ZWFkIG9mIGludGVnZXIgZGl2aXNpb24gb3IgZmxvYXRpbmcgcG9pbnQgbWF0aC4KICAgICAg
ICAgLy8gVGhpcyBtdWx0aXBsZXIgcHJvZHVjZXMgZXhhY3RseSB0aGUgc2FtZSByZXN1bHQgZm9y
IGFsbCB2YWx1ZXMgaW4gcmFuZ2UgMCAtIDI1NS4KICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGZpeFBvaW50U2hpZnQgPSAyNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcAppbmRleCBlNGZiYjUyZmRhZjZiZmU2MWIxYWQ1
ZjY3ZWYyNzIzOTI2Y2RmMDI2Li40NTQ1NTI1M2NlMjYyMzgzNTlmNjIxMWVlZmI3NmYzNDA3OTBk
MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERC
RGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTGV2ZWxEQlNsaWNlLmgi
CiAjaW5jbHVkZSAiTGV2ZWxEQldyaXRlQmF0Y2guaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDxoZWxwZXJzL21lbWVudi9tZW1l
bnYuaD4KICNpbmNsdWRlIDxsZXZlbGRiL2NvbXBhcmF0b3IuaD4KICNpbmNsdWRlIDxsZXZlbGRi
L2RiLmg+CkBAIC00NCwxMiArNDUsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotI2luY2x1ZGUgPGVudl9pZGIuaD4KLSNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNl
bmRpZgotCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogbmFtZXNwYWNlIGxldmVsZGIgewogCiBz
dGF0aWMgRW52KiBJREJFbnYoKQpAQCAtNTgsNyArNTMsNiBAQCBzdGF0aWMgRW52KiBJREJFbnYo
KQogfQogCiB9Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNDUsMTggKzEz
OSw3IEBAIGJvb2wgTGV2ZWxEQkRhdGFiYXNlOjpkZXN0cm95KGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUpCiAKIHN0YXRpYyB2b2lkIGhpc3RvZ3JhbUZyZWVTcGFjZShjb25zdCBjaGFyKiB0eXBlLCBT
dHJpbmcgZmlsZU5hbWUpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgU3RyaW5nIG5h
bWUgPSAiV2ViQ29yZS5JbmRleGVkREIuTGV2ZWxEQi5PcGVuIiArIFN0cmluZyh0eXBlKSArICJG
cmVlRGlza1NwYWNlIjsKLSAgICBsb25nIGxvbmcgZnJlZURpc2tTcGFjZUluS0J5dGVzID0gV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5hdmFpbGFibGVEaXNrU3BhY2VJbkJ5dGVzKGZpbGVO
YW1lKSAvIDEwMjQ7Ci0gICAgaWYgKGZyZWVEaXNrU3BhY2VJbktCeXRlcyA8IDApIHsKLSAgICAg
ICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuSW5kZXhl
ZERCLkxldmVsREIuRnJlZURpc2tTcGFjZUZhaWx1cmUiLCAxLypzYW1wbGUqLywgMi8qYm91bmRh
cnkqLyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaW50IGNsYW1wZWREaXNrU3BhY2VL
Qnl0ZXMgPSBmcmVlRGlza1NwYWNlSW5LQnl0ZXMgPiBJTlRfTUFYID8gSU5UX01BWCA6IGZyZWVE
aXNrU3BhY2VJbktCeXRlczsKLSAgICBjb25zdCB1aW50NjRfdCBoaXN0b2dyYW1NYXggPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oMWU5KTsKLSAgICBDT01QSUxFX0FTU0VSVChoaXN0b2dyYW1NYXgg
PD0gSU5UX01BWCwgaGlzdG9ncmFtTWF4VG9vQmlnKTsKLSAgICBIaXN0b2dyYW1TdXBwb3J0Ojpo
aXN0b2dyYW1DdXN0b21Db3VudHMobmFtZS51dGY4KCkuZGF0YSgpLCBjbGFtcGVkRGlza1NwYWNl
S0J5dGVzLCAxLCBoaXN0b2dyYW1NYXgsIDExLypidWNrZXRzKi8pOwotI2VuZGlmCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAogc3RhdGljIHZvaWQgaGlzdG9ncmFtTGV2ZWxEQkVycm9yKGNv
bnN0IGNoYXIqIGhpc3RvZ3JhbU5hbWUsIGNvbnN0IGxldmVsZGI6OlN0YXR1cyYgcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmgKaW5k
ZXggYWQ0OTFiMmIzNWVlOTE4ZmI1YWM1YzI5NWM5OTI1NWY4OGRlOWUxZi4uZmM5ZDhjOGE1NWM2
ZmM5MjU5YzQzOGJlYjcyNGZkODYzOTBiOTdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmgKQEAgLTExMCw5ICsxMTAsNiBAQCB0
eXBlZGVmIE5TSW50ZWdlciBOU1Njcm9sbGVyS25vYlN0eWxlOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLWJvb2wgaXNTY3JvbGxiYXJPdmVybGF5QVBJ
QXZhaWxhYmxlKCk7Ci0jZWxzZQogc3RhdGljIGlubGluZSBib29sIGlzU2Nyb2xsYmFyT3Zlcmxh
eUFQSUF2YWlsYWJsZSgpCiB7CiAjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQpAQCAtMTIxLDcg
KzExOCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFi
bGUoKQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQotI2VuZGlmCiAKIE5TU2Nyb2xsZXJT
dHlsZSByZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tCmluZGV4IDA1NjgxNDZlNjJl
MDg2ODI4NjEyNjZhZGFkYWRhYzQ2YzUyZDk5ZmEuLjgyYjEzNWZkMjMyZTRhMzlmOTlkMzZkNjhh
NmZmMDBkODZkOWYzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9O
U1Njcm9sbGVySW1wRGV0YWlscy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
TlNTY3JvbGxlckltcERldGFpbHMubW0KQEAgLTMxLDIyICszMSw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotYm9vbCBpc1Njcm9sbGJhck92ZXJs
YXlBUElBdmFpbGFibGUoKQotewotICAgIHN0YXRpYyBib29sIGFwaUF2YWlsYWJsZTsKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRJbml0aWFsaXplID0gdHJ1ZTsKLSAgICBpZiAoc2hvdWxkSW5pdGlh
bGl6ZSkgewotICAgICAgICBzaG91bGRJbml0aWFsaXplID0gZmFsc2U7Ci0gICAgICAgIENsYXNz
IHNjcm9sbGVySW1wQ2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKTsK
LSAgICAgICAgQ2xhc3Mgc2Nyb2xsZXJJbXBQYWlyQ2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhA
Ik5TU2Nyb2xsZXJJbXBQYWlyIik7Ci0gICAgICAgIGFwaUF2YWlsYWJsZSA9IFtzY3JvbGxlcklt
cENsYXNzIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2Nyb2xsZXJJbXBXaXRoU3R5bGU6
Y29udHJvbFNpemU6aG9yaXpvbnRhbDpyZXBsYWNpbmdTY3JvbGxlckltcDopXQotICAgICAgICAg
ICAgICAgICAgICAgICAmJiBbc2Nyb2xsZXJJbXBQYWlyQ2xhc3MgaW5zdGFuY2VzUmVzcG9uZFRv
U2VsZWN0b3I6QHNlbGVjdG9yKHNjcm9sbGVyU3R5bGUpXTsKLSAgICB9Ci0gICAgcmV0dXJuIGFw
aUF2YWlsYWJsZTsKLX0KLSNlbmRpZgotCiBOU1Njcm9sbGVyU3R5bGUgcmVjb21tZW5kZWRTY3Jv
bGxlclN0eWxlKCkgewogICAgIGlmIChTZXR0aW5nczo6dXNlc092ZXJsYXlTY3JvbGxiYXJzKCkp
CiAgICAgICAgIHJldHVybiBOU1Njcm9sbGVyU3R5bGVPdmVybGF5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDQyNjE4ODYxNGE4
MTJkOTgyYWU0ZGM2MWVhMTUyMGUwYzE0NjQ1ZDAuLmMwYmE4NzQ2ODczMTg2MGJhMDFhNDA0YjE2
Yjg2OTE2MTdiN2I5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0KQEAgLTQzMiw3ICs0MzIsNiBAQCBlbnVtIEZlYXR1cmVUb0FuaW1h
dGUgewogICAgIHJldHVybiBhUmVjdDsKIH0KIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKIC0g
KENBTGF5ZXIgKilsYXllcgogewogICAgIGlmICghX3Njcm9sbGJhcikKQEAgLTQ0NSw3ICs0NDQs
NiBAQCBlbnVtIEZlYXR1cmVUb0FuaW1hdGUgewogICAgIHN0YXRpYyBDQUxheWVyICpkdW1teUxh
eWVyID0gW1tDQUxheWVyIGFsbG9jXSBpbml0XTsKICAgICByZXR1cm4gZHVtbXlMYXllcjsKIH0K
LSNlbmRpZgogCiAtIChOU1BvaW50KW1vdXNlTG9jYXRpb25JblNjcm9sbGVyRm9yU2Nyb2xsZXJJ
bXA6KGlkKXNjcm9sbGVySW1wCiB7CkBAIC02NDIsNyArNjQwLDcgQEAgU2Nyb2xsQW5pbWF0b3JN
YWM6On5TY3JvbGxBbmltYXRvck1hYygpCiBzdGF0aWMgYm9vbCBzY3JvbGxBbmltYXRpb25FbmFi
bGVkRm9yU3lzdGVtKCkKIHsKICAgICBOU1N0cmluZyogc2Nyb2xsQW5pbWF0aW9uRGVmYXVsdHNL
ZXkgPSAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAgfHwgUExB
VEZPUk0oQ0hST01JVU0pCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDcwCiAgICAgICAgIEAiQXBwbGVTY3JvbGxBbmltYXRpb25FbmFibGVkIjsKICNlbHNlCiAgICAg
ICAgIEAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbQppbmRleCA5
MTk4ZTE4YzM2YWJkNzI3MDRiN2NkNjc0ZDk2ZDNlNzI4MzExZTkxLi41NDNlM2E1NDk1MzQ5YWUz
NjBiOWZmZDgxOTE4NzBjNTgyOTNiNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEVsYXN0aWNpdHlDb250cm9sbGVyLm1tCkBAIC02Myw3ICs2
Myw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0ID0g
MC4xMGY7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZERpcmVjdGlvbkxvY2tTdHJldGNo
UmF0aW8gPSAxOwogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRNaW5pbXVtUmVxdWlyZWRE
ZWx0YUJlZm9yZVN0cmV0Y2ggPSAxMDsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPD0gMTA3MCB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDw9IDEwNzAKIHN0YXRpYyBjb25zdCBmbG9hdCBydWJiZXJiYW5kU3Rp
ZmZuZXNzID0gMjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcnViYmVyYmFuZEFtcGxpdHVkZSA9IDAu
MzFmOwogc3RhdGljIGNvbnN0IGZsb2F0IHJ1YmJlcmJhbmRQZXJpb2QgPSAxLjZmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAppbmRleCBhNzhj
ZDY2MDVjOTcwOTczOWRhNGUwYjc4NzA1N2Y1ODMwNDI1MjU3Li42OTdiNGE4ODZlMGEyMDI5MDg1
Y2RjNmIzNmFmODhjN2NhMmJkMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyVGhlbWVNYWMuaApAQCAtNDEsOSArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRW5hYmxlZFN0YXRlKFNjcm9sbGJhclRoZW1lQ2xpZW50Kik7CiAK
LSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgdmlydHVhbCBib29sIHBhaW50KFNjcm9sbGJh
clRoZW1lQ2xpZW50KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCk7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxi
YXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIpOwogICAgIApAQCAtODEsNyArNzksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYWdEb2N1bWVudEluc3RlYWRP
ZlRodW1iKFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7
CiAgICAgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlKFNjcm9sbGJhclBhcnQpOwog
Ci0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVy
aGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3ImKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NM
YXllciopIE9WRVJSSURFOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggNmI4NDgzYmI5MGI5NDhjYzQyMDFmMmE1Mzdj
NjY2NmNiNDQwMjRlNy4uZjI3NGI5MWFhM2E0YWM2YzRlNzUyZDQzOTcwMzI4MzZlOTU2ZDBhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bQpAQCAtMTEzLDEzICsxMTMsMTEgQEAgc3RhdGljIFNjcm9sbGJhclBhaW50ZXJNYXAqIHNjcm9s
bGJhck1hcCgpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFQTEFURk9STShDSFJPTUlV
TSkKIFNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNYWMsIHRoZW1lLCAoKSk7CiAgICAg
cmV0dXJuICZ0aGVtZTsKIH0KLSNlbmRpZgogCiAvLyBGSVhNRTogR2V0IHRoZXNlIG51bWJlcnMg
ZnJvbSBDb3JlVUkuCiBzdGF0aWMgaW50IGNSZWFsQnV0dG9uTGVuZ3RoW10gPSB7IDI4LCAyMSB9
OwpAQCAtNDc4LDcgKzQ3Niw2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnVwZGF0ZUVuYWJs
ZWRTdGF0ZShTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyKQogICAgICAgICBbc2Nyb2xs
YmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdldCgpIHNldEVuYWJsZWQ6c2Nyb2xsYmFyLT5lbmFi
bGVkKCldOwogfQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogc3RhdGljIHZvaWQgc2Nyb2xs
YmFyUGFpbnRlclBhaW50KFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciwgYm9vbCBl
bmFibGVkLCBkb3VibGUgdmFsdWUsIENHRmxvYXQgcHJvcG9ydGlvbiwgQ0dSZWN0IGZyYW1lUmVj
dCkKIHsKICAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXRFbmFibGVkOmVuYWJsZWRdOwpAQCAtNTk3
LDkgKzU5NCw4IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnBhaW50KFNjcm9sbGJhclRoZW1l
Q2xpZW50KiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCoKIAogICAgIHJldHVybiB0cnVlOwog
fQotI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogc3RhdGljIFJldGFpblB0
cjxDR0NvbG9yUmVmPiBsaW5lbkJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgTlNJbWFnZSAqaW1h
Z2UgPSBbTlNDb2xvciBfbGluZW5QYXR0ZXJuSW1hZ2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLm1tCmluZGV4IDIzNDA1ODQ2NjRjMjQzY2NhOTg5OWMwNmUyOTZjZmQ5YmU1
YjZlNTUuLmRmNDhlOGRlNDdkYWQ3ZmEyNmU1YzZjNGU1Y2EwODdiMjQ3Y2U4MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTU3MiwxMCArNTcyLDggQEAgc3Rh
dGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMgc3RhdGVzLCBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEkKIC8vIElmIHRoZSBTY3JvbGxWaWV3IGRvZXNuJ3QgaGF2ZSBh
biBOU1ZpZXcsIHdlIHdpbGwgcmV0dXJuIGEgZmFrZSBOU1ZpZXcgd2hvc2Ugc29sZSBwdXJwb3Nl
IGlzIHRvIHRlbGwgQXBwS2l0IHRoYXQgaXQncyBmbGlwcGVkLgogTlNWaWV3ICpUaGVtZU1hYzo6
ZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyogc2Nyb2xsVmlldykKIHsKLSNpZiAhUExBVEZPUk0oQ0hS
T01JVU0pCiAgICAgaWYgKE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gc2Nyb2xsVmlldy0+ZG9jdW1l
bnRWaWV3KCkpCiAgICAgICAgIHJldHVybiBkb2N1bWVudFZpZXc7Ci0jZW5kaWYKICAgICAKICAg
ICAvLyBVc2UgYSBmYWtlIGZsaXBwZWQgdmlldy4KICAgICBzdGF0aWMgTlNWaWV3ICpmbGlwcGVk
VmlldyA9IFtbV2ViQ29yZUZsaXBwZWRWaWV3IGFsbG9jXSBpbml0XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNDZWxsRXh0cmFzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TQ2VsbEV4dHJhcy5oCmluZGV4IDc4OTRkM2Rl
OGIzZmJlMzM3MDljMWU1MjE1M2E5MmFkMmFmNzMwZTguLjAwNTMzNGM5MTBjYzczNTkxZWYxN2Fi
NmI4OTFlNzc3NzEyYTIzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XZWJDb3JlTlNDZWxsRXh0cmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVOU0NlbGxFeHRyYXMuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0IDxBcHBL
aXQvQXBwS2l0Lmg+CiAKLSNkZWZpbmUgQlVUVE9OX0NFTExfRFJBV19XSVRIX0ZSQU1FX0RSQVdT
X0ZPQ1VTX1JJTkcgKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA3MCB8fCBQ
TEFURk9STShDSFJPTUlVTSkpCisjZGVmaW5lIEJVVFRPTl9DRUxMX0RSQVdfV0lUSF9GUkFNRV9E
UkFXU19GT0NVU19SSU5HIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwNzAp
CiAKICNpZiAhQlVUVE9OX0NFTExfRFJBV19XSVRIX0ZSQU1FX0RSQVdTX0ZPQ1VTX1JJTkcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwCmlu
ZGV4IGRlM2VlNWFhZmRhYWFlYzVkMDA3NDUyNDU0MGFmMjhlNjA4Njk3ZmEuLjljYjEzN2I0NDY0
ODMyY2FhOTBhMjY2NDZhMTA1MzJkZjUxMDUxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogQmxvYlJlZ2lzdHJ5
JiBibG9iUmVnaXN0cnkoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC00Nyw3
ICs0Niw2IEBAIEJsb2JSZWdpc3RyeSYgYmxvYlJlZ2lzdHJ5KCkKICNlbmRpZgogICAgIHJldHVy
biBpbnN0YW5jZTsKIH0KLSNlbmRpZgogCiBCbG9iUmVnaXN0cnk6On5CbG9iUmVnaXN0cnkoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
SW1wbC5jcHAKaW5kZXggYmMxMjg0OTk0NGEzZGYxN2NlYjAzNDdlNzM4NGNhMmQ0YWFlMjIzYi4u
NjFjZjM5YWE2NzA0YmJjYjYyZDY0ZjJmMWZiNmRlMTU2ZjVmN2M1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00
OSw3ICs0OSw2IEBAIEJsb2JSZWdpc3RyeUltcGw6On5CbG9iUmVnaXN0cnlJbXBsKCkKIHsKIH0K
IAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEJsb2JSZWdpc3RyeUltcGwmPihibG9iUmVnaXN0cnkoKSkuY3JlYXRlUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50KTsKQEAgLTcxLDEzICs3MCw2IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
QmxvYlJlc291cmNlSGFuZGxlQ29uc3RydWN0b3IoKQogICAgIH0KIH0KIAotI2Vsc2UKLQotc3Rh
dGljIHZvaWQgcmVnaXN0ZXJCbG9iUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3RvcigpCi17Ci19Ci0j
ZW5kaWYKLQogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQmxvYlJlZ2lzdHJ5SW1wbDo6Y3Jl
YXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50KQogewogICAgIFJlZlB0cjxCbG9iUmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IEJsb2JSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQXN5bmMoZ2V0QmxvYkRhdGFGcm9t
VVJMKHJlcXVlc3QudXJsKCkpLCByZXF1ZXN0LCBjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAppbmRl
eCA2Yzg1ZmQ5Zjg2OGJlMGFlMGQ4NmViYTQyM2Q0Y2ZmZTVmYzEzYzQ1Li42YmM5M2U4MzVjMDYw
OWJjNmQ0ODQzZjJlNjI0ZGNkMDJhMDdlZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcApAQCAtNDYsMTcg
KzQ2LDQgQEAgdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2V0TmV0d29ya1N0YXRlQ2hhbmdl
ZEZ1bmN0aW9uKHZvaWQoKmZ1bmN0aW9uKSgpKQogICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1
bmN0aW9uID0gZnVuY3Rpb247CiB9CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLXZvaWQgTmV0
d29ya1N0YXRlTm90aWZpZXI6OnNldE9uTGluZShib29sIG9uTGluZSkKLXsKLSAgICBpZiAobV9p
c09uTGluZSA9PSBvbkxpbmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNPbkxpbmUgPSBv
bkxpbmU7Ci0KLSAgICBpZiAobV9uZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24pCi0gICAgICAg
IG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKCk7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0o
Q0hST01JVU0pIHx8IFBMQVRGT1JNKEVGTCkKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oCmluZGV4IGQxMmQ0YjUx
ZTI4NjM1OTBhZmQ1Y2QyODJlNzZkN2Q4MmY2MDdmNjYuLjYxZGVjZjVmZGUwMmJmM2MyYjBhYzFj
NmYzZjI5MTEyNzY4ZWMzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgKQEAgLTcxLDggKzcxLDYgQEAgcHVibGlj
OgogCiAjaWYgKFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChRVF9OT19CRUFSRVJNQU5BR0VNRU5U
KSkKICAgICB2b2lkIHNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wpOwotI2VsaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi0gICAgdm9pZCBzZXRPbkxpbmUoYm9vbCk7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKEJMQUNLQkVSUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMjkyMzBkYjBiMTM1YjU0MGM5NDdjOTdkYmE4
ODk2NGZjM2RkNjFmMy4uNzNhNjZjOWFlYWQxMmNkODI1NDhhMDBmNDBkMTVmMmI3YmE5ODRiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0Nv
bnRleHQuaApAQCAtMjgsMTIgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotbmFtZXNwYWNlIFdlYktpdCB7Ci1j
bGFzcyBXZWJDb29raWVKYXI7Ci19Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1
ZGUgPHFnbG9iYWwuaD4KICNlbmRpZgpAQCAtNjcsMTEgKzYxLDYgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBj
b25zdCA9IDA7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBGSVhNRTogV3JhcCBX
ZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2Rl
IGNyb3NzLXBsYXRmb3JtLgotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tp
ZUphcigpIGNvbnN0ID0gMDsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0ID0gMDsgLy8gRklY
TUU6IFJlY29uY2lsZSB3aXRoIFJlc291cmNlSGFuZGxlOjpmb3JjZUNvbnRlbnRTbmlmZmluZygp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUNsaWVudC5oCmluZGV4IGRmM2EyOWRiMWFkNzIzY2Y3ZDFlODdlNDg4NTA2Mjc2MDAwMGIw
ZDUuLmUyNWI2ZjgwODcxNzAyOWRlZDQ5ZTY1OWVkOTNkYjkxYWNmOGVjZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmgKQEAgLTExNyw5ICsxMTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQ0ZORVRXT1JLKQogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVS
ZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIHsgcmV0dXJu
IHRydWU7IH0KICNlbmRpZgotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRG93bmxvYWREYXRhKFJlc291cmNlSGFuZGxlKiwgaW50IC8qZGF0YUxlbmd0aCov
KSB7IH0KLSNlbmRpZgogCiAjaWYgVVNFKFNPVVApCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5k
ZXggNWVjOTRhNDA0ZGIwOGZmOTE0NDVkY2Q3MDRhNTM1MzZhMGMyZjc3Ny4uMDE5MDI1OTlhZWNh
OWQzNjRjZDNkNTFlNmYwNzY2NmQ1Y2ZjM2ZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC01MjYsNyAr
NTI2LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjp1cGRhdGVSZXNvdXJjZVJlcXVlc3Qo
SFRUUEJvZHlVcGRhdGVQb2xpY3kgYm9keVBvbGljeSkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZP
Uk0oTUFDKSAmJiAhVVNFKENGTkVUV09SSykgJiYgIVVTRShTT1VQKSAmJiAhUExBVEZPUk0oQ0hS
T01JVU0pICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgIVBM
QVRGT1JNKE1BQykgJiYgIVVTRShDRk5FVFdPUkspICYmICFVU0UoU09VUCkgJiYgIVBMQVRGT1JN
KFFUKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkKIHVuc2lnbmVkIGluaXRpYWxpemVNYXhpbXVt
SFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogewogICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0
aGUgbG9hZGVyIHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiBpc3N1ZWQgcGFyYWxsZWwgbG9hZCBy
ZXF1ZXN0cy4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5
cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5h
dGlvbkNGLmNwcAppbmRleCAxYjYxNmViNjBiZTk2ZmE1MWJlY2Y4MTY4MWQ1ZmZlZmE5YzViOTRj
Li42ZDE5ZWQxZDhlYWEwYjczYjQ4NTg5YjUzZmQyYzliZTQ0NTI0NGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgog
Ci0jaWYgKCFQTEFURk9STShNQUMpICYmICFQTEFURk9STShDSFJPTUlVTSkpIHx8IFBMQVRGT1JN
KElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjaWYgIVBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaCIK
ICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCkBAIC03Niw0ICs3Niw0
IEBAIHNpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNp
emVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vICghUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pKSB8fCBQTEFU
Rk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2Vu
ZGlmIC8vICFQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d05vbmUuY3BwCmluZGV4IGVkOGY4OTAzNWM0MzEwM2U3YjZiYzhiMDljMTNkMDY3YTNkNDkyOGYu
LjBjOTQ1ZmI2NGJiYTZkZTQyYmE4OTdkMzI3NWZlZmY0ZDVmMmJhYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIC8vIHBvcnRzIHVzaW5nIFBsdWdpblZp
ZXcsIGJ1dCB1bnRpbCB0aGVuLCBpZiBuZXcgZnVuY3Rpb25zIGxpa2UgdGhpcyBhcmUgCiAvLyBh
ZGRlZCwgcGxlYXNlIG1ha2Ugc3VyZSB0aGV5IGhhdmUgdGhlIHByb3BlciBwbGF0Zm9ybSAjaWZz
IHNvIHRoYXQgY2hhbmdlcwogLy8gZG8gbm90IGJyZWFrIHBvcnRzIHdobyBjb21waWxlIGJvdGgg
dGhpcyBmaWxlIGFuZCBQbHVnaW5WaWV3LmNwcC4gICAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBM
QVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShFRkwpIHx8IChPUyhXSU5DRSkgJiYgIVBMQVRG
T1JNKFFUKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiAhT1MoV0lOQ0UpKQorI2lmIFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oRUZMKSB8fCAoT1MoV0lOQ0UpICYmICFQTEFURk9STShRVCkpIHx8IChQ
TEFURk9STShRVCkgJiYgIU9TKFdJTkNFKSkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKIHZvaWQgUGx1Z2luVmlldzo6a2VlcEFsaXZlKE5QUCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCBiYmEwOTgzNmExZWJhODRlNTk0YTIzYTk0ZjI2MTUzNmVlNTA3
MjQ0Li5kNGI5ZGUxNjMxMWFmMTlmMjkxOWI5MWVkOGI2M2VlYjI0OTMxNTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjYsMTQgKzEyNiw2IEBACiAjaW5jbHVkZSA8
d3RmL2R0b2EuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgotI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2hyb21pdW0uaCIK
LSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQV9WMikKICNpbmNsdWRlICJDRE0uaCIKICNpbmNsdWRlICJNb2NrQ0RNLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3Nzk1NDRmNjI5OTI4MGRh
YzI4ZGI4N2MyODNlOTk1YTUxNmQ5OTY2Li44OWI1MzVkMmU2OTdiMWMxNzM5YTFhZDdmOGQwYjEz
ZDE0YzM1Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTc2NSw3
ICs3NjUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNv
ZGUmIGVjKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAgIHJlcXVl
c3Quc2V0SFRUUE1ldGhvZChtX21ldGhvZCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBM
QVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICByZXF1ZXN0
LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUik7CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196800</attachid>
            <date>2013-04-07 12:32:04 -0700</date>
            <delta_ts>2013-04-07 13:39:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114081-20130407213148.patch</filename>
            <type>text/plain</type>
            <size>88460</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBjOGU4ZjdmNGFlZTVi
MzJmNDA3ZTYzOWMzNzc0M2QyZWZmZTc5Mi4uOThkNzMzY2RhMzc2MzA4NjNiMTE1MzY0YmMxNWFm
MGVmODgzODdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2OSBAQAorMjAxMy0wNC0wNyAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFp
bmluZyBQTEFURk9STShDSFJPTUlVTSktZ3VhcmRlZCBjb2RlIGluIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDA4MQorCisgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIFBMQVRGT1JNKENIUk9NSVVNKSBidWlsZCBndWFyZHMuIFRo
ZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBndWFyZHMKKyAgICAgICAgdGhhdCBtb3N0IGxpa2Vs
eSBhcHBseSBvbmx5IHRvIENocm9taXVtLCBsaWtlIE9TKEFORFJPSUQpIG9yIFVTRShTS0lBX09O
X01BQ19DSFJPTUlVTSksCisgICAgICAgIGJ1dCByZW1vdmFsIG9mIHRoZXNlIHNob3VsZCBnbyBp
bnRvIHNlcGFyYXRlIHBhdGNoZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY29u
ZmlnLmg6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZUNhY2hlOjpjYW5DYWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlVVJMRm9yQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWRSZXNvdXJjZSk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojps
aXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpzYXRpc2ZpZXNXZWJHTFJlcXVpcmVtZW50cyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpw
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZlcjo6fkZlYXR1cmVPYnNlcnZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6CisgICAgICAgIChDb250ZXh0TWVu
dSk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vQ3Vyc29yLmg6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6
CisgICAgICAgIChQYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV4cG9y
dE1hY3Jvcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERlY29kZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNv
ZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2ls
bFJlc2l6ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
OjpkaWRSZXNpemVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAo
UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNj
cm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRp
bWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlT3ZlcmhhbmdBcmVhcyk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRQb2ludC5oOgorICAgICAgICAoRmxvYXRQb2ludCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6CisgICAgICAgIChGbG9hdFJlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAoRmxvYXRTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6d2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKEZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKEZvbnRDYWNoZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhCdWZmZXI6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAg
ICAoR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRzQmFj
a2dyb3VuZENvbG9yQ29udGVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5o
OgorICAgICAgICAoSWNvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6Cisg
ICAgICAgIChJbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERh
dGEuaDoKKyAgICAgICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKERlcml2ZWRGb250RGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6cmVzaXplQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRHJhd2luZ0J1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6Z2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURl
Y29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCRGF0YWJhc2U6Om9wZW4pOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJ1YmJl
ckJhbmRpbmdFbmFibGVkRm9yU3lzdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iUmVnaXN0cnkpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oOgorICAgICAgICAoTmV0d29ya1N0YXRl
Tm90aWZpZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKE5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHA6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5WaWV3Tm9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKwogMjAxMy0wNC0wNyAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgdGFibGUgZWxlbWVu
dCBtYXkgZ2V0IGxhcmdlciB3aGVuIGl0cyBjb250ZW50cyBhcmUgcmVjcmVhdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmNwcAppbmRleCBjN2MxOWJmZWQ0MWU3NjlkZTNiZGMzZDA0NWQwODM2NGI4NzNjMWZk
Li4zOTliYzc0OTQ2N2U5ZTJkZmQ0NGI5ZmNlZDJmOWFmN2M3ZDkxZTgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmlzTWVkaWFTb3VyY2VFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
RUZMKSB8fCBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExB
VEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShFRkwpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKFdJTikKICAgICBib29s
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzVmlkZW9UcmFja0VuYWJsZWQgPSB0cnVlOwogI2Vs
c2UKICAgICBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzVmlkZW9UcmFja0VuYWJsZWQg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dl
YkNvcmUvY29uZmlnLmgKaW5kZXggY2EzMWY4ODdhODcwYzI2MTMxZmZlMjY0NjgxNGJiZGUzMjJj
M2YxMi4uYWQzN2UyODVlOTM1ZmEwOTFkYTk4N2NmNjg5ODVlOWVkZGNhZjlkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEyMCwxNSArMTIwLDYgQEAKICNkZWZpbmUgV1RGX1VTRV9ORVdfVEhFTUUgMQogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotCi0vLyBDaHJvbWl1
bSB1c2VzIHRoaXMgZmlsZSBpbnN0ZWFkIG9mIEphdmFTY3JpcHRDb3JlL2NvbmZpZy5oIHRvIGNv
bXBpbGUKLS8vIEphdmFTY3JpcHRDb3JlL3d0ZiAoY2hyb21pdW0gZG9lc24ndCBjb21waWxlIHRo
ZSByZXN0IG9mIEpTQykuIFRoZXJlZm9yZSwKLS8vIHRoaXMgZGVmaW5lIGlzIHJlcXVpcmVkLgot
I2RlZmluZSBXVEZfQ0hBTkdFUyAxCi0KLSNlbmRpZiAvKiBQTEFURk9STShDSFJPTUlVTSkgKi8K
LQogI2lmIFVTRShDRykKICNpZm5kZWYgQ0dGTE9BVF9ERUZJTkVECiAjaWZkZWYgX19MUDY0X18K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCBkNjY3NTAwMTJlNmZiNGY5YTdh
NGM0MjA5NWZlM2JhZjY0MjA4YmFiLi4zNWJjNTJkNjZkZWI2MTViOWEzNGY3OTE1ZThjYTM1ZTA4
YTg3NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBM
QVRGT1JNKENIUk9NSVVNKSB8fCAhZGVmaW5lZChOREVCVUcpCisjaWYgIWRlZmluZWQoTkRFQlVH
KQogCiAjZGVmaW5lIFBDTE9HKC4uLikgTE9HKFBhZ2VDYWNoZSwgIiUqcyVzIiwgaW5kZW50TGV2
ZWwqNCwgIiIsIG1ha2VTdHJpbmcoX19WQV9BUkdTX18pLnV0ZjgoKS5kYXRhKCkpCiAgICAgCkBA
IC04MywyOSArODMsOCBAQCBlbnVtIFJlYXNvbkZyYW1lQ2Fubm90QmVJblBhZ2VDYWNoZSB7CiB9
OwogQ09NUElMRV9BU1NFUlQoTnVtYmVyT2ZSZWFzb25zRnJhbWVzQ2Fubm90QmVJblBhZ2VDYWNo
ZSA8PSBzaXplb2YodW5zaWduZWQpKjgsIFJlYXNvbkZyYW1lQ2Fubm90QmVJblBhZ2VDYWNoZURv
ZXNOb3RGaXRJbkJpdG1hcCk7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLXN0YXRpYyBpbnQg
aW5kZXhPZlNpbmdsZUJpdChpbnQzMl90IHYpCi17Ci0gICAgaW50IGluZGV4ID0gMDsKLSAgICBp
ZiAodiAmIDB4RkZGRjAwMDApCi0gICAgICAgIGluZGV4ID0gMTY7Ci0gICAgaWYgKHYgJiAweEZG
MDBGRjAwKQotICAgICAgICBpbmRleCArPSA4OwotICAgIGlmICh2ICYgMHhGMEYwRjBGMCkKLSAg
ICAgICAgaW5kZXggKz0gNDsKLSAgICBpZiAodiAmIDB4Q0NDQ0NDQ0MpCi0gICAgICAgIGluZGV4
ICs9IDI7Ci0gICAgaWYgKHYgJiAweEFBQUFBQUFBKQotICAgICAgICBpbmRleCArPSAxOwotICAg
IHJldHVybiBpbmRleDsKLX0KLSNlbmRpZiAvLyBQTEFURk9STShDSFJPTUlVTSkKLQogc3RhdGlj
IHVuc2lnbmVkIGxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSogZnJhbWUsIGludCBpbmRl
bnRMZXZlbCkKIHsKLSNpZmRlZiBOREVCVUcKLSAgICBVTlVTRURfUEFSQU0oaW5kZW50TGV2ZWwp
OwotI2VuZGlmCiAgICAgUENMT0coIistLS0iKTsKICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKSkgewogICAgICAgICBQQ0xPRygiICAgLVRoZXJlIGlzIG5vIERvY3Vt
ZW50TG9hZGVyIG9iamVjdCIpOwpAQCAtMjk2LDI0ICsyNzUsMTEgQEAgc3RhdGljIHZvaWQgbG9n
Q2FuQ2FjaGVQYWdlRGVjaXNpb24oUGFnZSogcGFnZSkKICAgICAgICAgICAgIEhpc3RvZ3JhbVN1
cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJQYWdlQ2FjaGUuRnJhbWVSZWplY3RSZWFzb25C
eVBhZ2UiLCBpLCBOdW1iZXJPZlJlYXNvbnNGcmFtZXNDYW5ub3RCZUluUGFnZUNhY2hlKTsKICAg
ICAgICAgfQogICAgIH0KLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBUaGlzIHN0cmFu
Z2VseSBzcGVjaWZpYyBoaXN0b2dyYW0gaXMgcGFydGljdWxhciB0byBjaHJvbWl1bTogYXMgb2Yg
MjAxMi0wMy0xNiwgdGhlIEZyYW1lQ2xpZW50SW1wbCBhbHdheXMgZGVuaWVzIGNhY2hpbmcsIHNv
Ci0gICAgLy8gb2YgcGFydGljdWxhciBpbnRlcmVzdCBhcmUgc29saXRhcnkgcmVhc29ucyBvdGhl
ciB0aGFuIHRoZSBmcmFtZVJlamVjdFJlYXNvbnMuIElmIHdlIGRpZG4ndCBnZXQgdG8gdGhlIENs
aWVudERlbmllc0NhY2hpbmcsIHdlCi0gICAgLy8gdG9vayB0aGUgZWFybHkgZXhpdCBmb3IgdGhl
IGJvcmluZyByZWFzb24gTm9Eb2N1bWVudExvYWRlciwgc28gd2Ugc2hvdWxkIGhhdmUgb25seSBv
bmUgcmVhc29uLCBhbmQgbm90IHR3by4KLSAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgaGlzdG9n
cmFtIGFmdGVyIGRhdGEgaXMgZ2F0aGVyZWQuCi0gICAgaWYgKGZyYW1lUmVhc29uQ291bnQgPT0g
MikgewotICAgICAgICBBU1NFUlQoZnJhbWVSZWplY3RSZWFzb25zICYgKDEgPDwgQ2xpZW50RGVu
aWVzQ2FjaGluZykpOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaW5nbGVSZWFzb25Gb3JSZWpl
Y3RpbmdGcmFtZU90aGVyVGhhbkNsaWVudERlbmllc0NhY2hpbmcgPSBmcmFtZVJlamVjdFJlYXNv
bnMgJiB+KDEgPDwgQ2xpZW50RGVuaWVzQ2FjaGluZyk7Ci0gICAgICAgIENPTVBJTEVfQVNTRVJU
KE51bWJlck9mUmVhc29uc1BhZ2VzQ2Fubm90QmVJblBhZ2VDYWNoZSA8PSAzMiwgUmVhc29uUGFn
ZUNhbm5vdEJlSW5QYWdlQ2FjaGVEb2VzTm90Rml0SW5JbnQzMik7Ci0gICAgICAgIGNvbnN0IGlu
dCBpbmRleCA9IGluZGV4T2ZTaW5nbGVCaXQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2luZ2xlUmVh
c29uRm9yUmVqZWN0aW5nRnJhbWVPdGhlclRoYW5DbGllbnREZW5pZXNDYWNoaW5nKSk7Ci0gICAg
ICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJQYWdlQ2FjaGUuRnJh
bWVSZWplY3RSZWFzb25CeVBhZ2VXaGVuU2luZ2xlRXhjbHVkaW5nRnJhbWVDbGllbnQiLCBpbmRl
eCwgTnVtYmVyT2ZSZWFzb25zUGFnZXNDYW5ub3RCZUluUGFnZUNhY2hlKTsKLSAgICB9Ci0jZW5k
aWYKIAogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJQYWdlQ2Fj
aGUuRnJhbWVSZWplY3RSZWFzb25Db3VudEJ5UGFnZSIsIGZyYW1lUmVhc29uQ291bnQsIDEgKyBO
dW1iZXJPZlJlYXNvbnNGcmFtZXNDYW5ub3RCZUluUGFnZUNhY2hlKTsKIH0KIAotI2VuZGlmIAor
I2VuZGlmIC8vICFkZWZpbmVkKE5ERUJVRykKIAogUGFnZUNhY2hlKiBwYWdlQ2FjaGUoKQogewpA
QCAtMzcyLDcgKzMzOCw3IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZShQYWdlKiBwYWdlKSBj
b25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotI2lmIFBM
QVRGT1JNKENIUk9NSVVNKSB8fCAhZGVmaW5lZChOREVCVUcpCisjaWYgIWRlZmluZWQoTkRFQlVH
KQogICAgIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKHBhZ2UpOwogI2VuZGlmCiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGZhYjg3NWU4YjkyZTVm
OGY4YWJmZDRhNzE5NjU2NTFlZjA5MmE3ZTMuLjFjMTYwNWFlNWVmYmNjNTU2ZTQ2Nzg3N2JmMDQ5
ZGYyYjlkZDIwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CkBAIC01OCwxMCArNTgsNiBAQAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlIDxwdWJsaWMvUGxhdGZv
cm0uaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CkBAIC0xODcsNyArMTgzLDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRN
TENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQoY29uc3QgU3RyaW5nJiB0eXBlLCBDYW52YXMKICNp
ZiBFTkFCTEUoV0VCR0wpICAgIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkt
PnNldHRpbmdzKCk7CiAgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT53ZWJHTEVuYWJsZWQo
KQotI2lmICFQTEFURk9STShDSFJPTUlVTSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KEVGTCkgJiYgIVBMQVRGT1JNKFFUKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShF
RkwpICYmICFQTEFURk9STShRVCkKICAgICAgICAgJiYgc2V0dGluZ3MtPmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCkKICNlbmRpZgogICAgICAgICApIHsKQEAgLTE5NSwxMSArMTkxLDYg
QEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQo
Y29uc3QgU3RyaW5nJiB0eXBlLCBDYW52YXMKICAgICAgICAgLy8gQWNjZXB0IHRoZSBsZWdhY3kg
IndlYmtpdC0zZCIgbmFtZSBhcyB3ZWxsIGFzIHRoZSBwcm92aXNpb25hbCAiZXhwZXJpbWVudGFs
LXdlYmdsIiBuYW1lLgogICAgICAgICBib29sIGlzM2RDb250ZXh0ID0gKHR5cGUgPT0gIndlYmtp
dC0zZCIpIHx8ICh0eXBlID09ICJleHBlcmltZW50YWwtd2ViZ2wiKTsKIAotI2lmIFBMQVRGT1JN
KENIUk9NSVVNKSAmJiAhT1MoQU5EUk9JRCkKLSAgICAgICAgLy8gTm93IHRoYXQgV2ViR0wgaXMg
cmF0aWZpZWQsIHdlIHdpbGwgYWxzbyBhY2NlcHQgIndlYmdsIiBhcyB0aGUgY29udGV4dCBuYW1l
IGluIENocm9tZS4KLSAgICAgICAgaXMzZENvbnRleHQgfD0gKHR5cGUgPT0gIndlYmdsIik7Ci0j
ZW5kaWYKLQogICAgICAgICBpZiAoaXMzZENvbnRleHQpIHsKICAgICAgICAgICAgIGlmIChtX2Nv
bnRleHQgJiYgIW1fY29udGV4dC0+aXMzZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwpA
QCAtNTEyLDExICs1MDMsNiBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGRBY2NlbGVy
YXRlKGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiAgICAgaWYgKHNpemUud2lkdGgoKSAqIHNp
emUuaGVpZ2h0KCkgPCBzZXR0aW5ncy0+bWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGlm
ICghV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jYW5BY2NlbGVyYXRlMmRDYW52YXMoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCmluZGV4IGJmNzEzZDMxMWQ3ZGFmNDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2IuLjU1
MDA3MDc3M2E5MTY3ZmYxMWNmN2FmYjVmZWY0NzE1OTZlZjE4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KSB8fCBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShRVCkKICNkZWZpbmUgRGVmYXVsdEludGVy
cG9sYXRpb25RdWFsaXR5IEludGVycG9sYXRpb25NZWRpdW0KICNlbGlmIFVTRShDRykKICNkZWZp
bmUgRGVmYXVsdEludGVycG9sYXRpb25RdWFsaXR5IEludGVycG9sYXRpb25Mb3cKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDNhODc2Y2RhNmJlNzQ2YmNmYjU1
NDJjOWE5YWNmNTY5MmI1NGU3M2EuLjI2MGQwYTY3NTlmNTJhNjUzNmQwNjAzNDA3MjJlZjVhOWE0
ZDkzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtOTQy
LDcgKzk0Miw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZE5leHRTb3VyY2VDaGlsZCgp
CiAgICAgbG9hZFJlc291cmNlKG1lZGlhVVJMLCBjb250ZW50VHlwZSwga2V5U3lzdGVtKTsKIH0K
IAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKIHN0YXRpYyBLVVJMIGNyZWF0ZUZpbGVVUkxGb3JB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIC8vIEtV
Ukwgc2hvdWxkIGhhdmUgYSBmdW5jdGlvbiB0byBjcmVhdGUgYSB1cmwgZnJvbSBhIHBhdGgsIGJ1
dCBpdCBkb2VzIG5vdC4gVGhpcyBmdW5jdGlvbgpAQCAtOTYxLDcgKzk2MCw2IEBAIHN0YXRpYyBL
VVJMIGNyZWF0ZUZpbGVVUkxGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgU3RyaW5n
JiBwYXRoKQogI2VuZGlmCiAgICAgcmV0dXJuIHVybDsKIH0KLSNlbmRpZgogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50
VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogewpAQCAtOTg0LDcg
Kzk4Miw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwm
IGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAgICAgLy8gVGhlIHJlc291cmNlIGZl
dGNoIGFsZ29yaXRobSAKICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfTE9BRElORzsKIAot
I2lmICFQTEFURk9STShDSFJPTUlVTSkKICAgICAvLyBJZiB0aGUgdXJsIHNob3VsZCBiZSBsb2Fk
ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24gY2FjaGUsIHBhc3MgdGhlIHVybCBvZiB0aGUgY2FjaGVk
IGZpbGUKICAgICAvLyB0byB0aGUgbWVkaWEgZW5naW5lLgogICAgIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0KiBjYWNoZUhvc3QgPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCk7CkBAIC05OTcsMTggKzk5NCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYg
Y29udGVudAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmCiAK
ICAgICAvLyBTZXQgbV9jdXJyZW50U3JjICpiZWZvcmUqIGNoYW5naW5nIHRvIHRoZSBjYWNoZSB1
cmwsIHRoZSBmYWN0IHRoYXQgd2UgYXJlIGxvYWRpbmcgZnJvbSB0aGUgYXBwCiAgICAgLy8gY2Fj
aGUgaXMgYW4gaW50ZXJuYWwgZGV0YWlsIG5vdCBleHBvc2VkIHRocm91Z2ggdGhlIG1lZGlhIGVs
ZW1lbnQgQVBJLgogICAgIG1fY3VycmVudFNyYyA9IHVybDsKIAotI2lmICFQTEFURk9STShDSFJP
TUlVTSkKICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAgICAgdXJsID0gY3JlYXRlRmlsZVVSTEZv
ckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShyZXNvdXJjZS0+cGF0aCgpKTsKICAgICAgICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlIC0gd2lsbCBsb2FkIGZyb20g
YXBwIGNhY2hlIC0+ICVzIiwgdXJsRm9yTG9nZ2luZ01lZGlhKHVybCkudXRmOCgpLmRhdGEoKSk7
CiAgICAgfQotI2VuZGlmCiAKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpsb2Fk
UmVzb3VyY2UgLSBtX2N1cnJlbnRTcmMgLT4gJXMiLCB1cmxGb3JMb2dnaW5nTWVkaWEobV9jdXJy
ZW50U3JjKS51dGY4KCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCBmNjUxMWVhOTllNTU5MjA0YTcxYzY3ZTNhYTRjN2NjMWNmNmRjZDJl
Li4xZTcxY2Y2YzY0YzRhMjhmYjg0MGIzZjQ0OTJiNTgzYTEzMmFkOGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMTA2Miw3ICsxMDYyLDcgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OwogfQogCi0jaWYgKCFQTEFURk9STShXSU4pICYmICEoUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KFdJTkRPV1MpKSkgfHwgT1MoV0lOQ0UpCisjaWYgIVBMQVRGT1JNKFdJTikgfHwgT1MoV0lOQ0Up
CiBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpwbGF0Zm9ybUhhbmRsZUtleWRvd25FdmVudChLZXli
b2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBjb25zdCBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+
cGFnZSgpOwpAQCAtMTI5OSw3ICsxMjk5LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlz
dEJveERlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICBpbnQgbGlzdElu
ZGV4ID0gdG9SZW5kZXJMaXN0Qm94KHJlbmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldCh0b0lu
dFNpemUobG9jYWxPZmZzZXQpKTsKICAgICAgICAgaWYgKGxpc3RJbmRleCA+PSAwKSB7CiAgICAg
ICAgICAgICBpZiAoIWlzRGlzYWJsZWRGb3JtQ29udHJvbCgpKSB7Ci0jaWYgUExBVEZPUk0oTUFD
KSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFD
KQogICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobGlzdEluZGV4LCBtb3VzZUV2
ZW50LT5tZXRhS2V5KCksIG1vdXNlRXZlbnQtPnNoaWZ0S2V5KCkpOwogI2Vsc2UKICAgICAgICAg
ICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKGxpc3RJbmRleCwgbW91c2VFdmVudC0+Y3RybEtl
eSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1l
bnQuY3BwCmluZGV4IGNmZGY1MGIxZDEyNWJhNDRhZWFjNzhjOGM4N2UxZDIxN2FkOGViMDYuLmI0
NDY0YzMxZThiNzhhYmMwMzIxYThmNTgwNzczZjcxYmI4YjBhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcApAQCAtMTY2LDcgKzE2Niw2IEBAIHZvaWQgTWVkaWFEb2N1bWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgaWYgKCF0YXJnZXROb2Rl
KQogICAgICAgICByZXR1cm47CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaWYgKEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvID0gYW5jZXN0b3JWaWRlb0VsZW1lbnQodGFyZ2V0Tm9kZSkp
IHsKICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQp
IHsKICAgICAgICAgICAgIGlmICghdmlkZW8tPmNhblBsYXkoKSkgewpAQCAtMTgwLDcgKzE3OSw2
IEBAIHZvaWQgTWVkaWFEb2N1bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAgIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQtPmlzS2V5Ym9h
cmRFdmVudCgpKSB7CiAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvID0gZGVzY2VuZGVu
dFZpZGVvRWxlbWVudCh0YXJnZXROb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0VYVERyYXdCdWZmZXJzLmNwcAppbmRleCA1OWIyZjZjNjI3NDM0OThjNDZmZDRhZmRkYTg0YzFi
ZDMyNTZiY2I2Li4zYjJhMDBlMzZjMWE3NDdjMGMwOWRlYzU1NzQwOTcwNmIyNzBlYThjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCkBAIC0xMTQs
MTEgKzExNCw3IEBAIGJvb2wgRVhURHJhd0J1ZmZlcnM6OnNhdGlzZmllc1dlYkdMUmVxdWlyZW1l
bnRzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogd2ViZ2xDb250CiAgICAgUGxhdGZvcm0zRE9iamVj
dCBmYm8gPSBjb250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZlcigpOwogICAgIGNvbnRleHQtPmJpbmRG
cmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIGZibyk7CiAKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBidWZmZXIgPSAwOyAv
LyBDaHJvbWl1bSBkb2Vzbid0IGFsbG93IGluaXQgZGF0YSBmb3IgZGVwdGgvc3RlbmNpbCB0ZXR4
dXJlcy4KLSNlbHNlCiAgICAgY29uc3QgdW5zaWduZWQgY2hhciBidWZmZXJbNF0gPSB7IDAsIDAs
IDAsIDAgfTsgLy8gdGV4dHVyZXMgYXJlIHJlcXVpcmVkIHRvIGJlIGluaXRpYWxpemVkIGZvciBv
dGhlciBwb3J0cy4KLSNlbmRpZgogICAgIGJvb2wgc3VwcG9ydHNEZXB0aCA9IChjb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9kZXB0aF90ZXh0dXJlIikKICAg
ICAgICAgfHwgY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX2RlcHRo
X3RleHR1cmUiKQogICAgICAgICB8fCBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9BUkJfZGVwdGhfdGV4dHVyZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDM3ZDBiNDkxZDk1MDU0NDY5
YjNlNDBiMGE4ZTZiODk3Mjk3ZTFkNWUuLjlhMjg4MGU4ZWJiM2NjY2RmMTQ2ZTMwY2Y4ZDIyYzgz
NjdlN2U2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDI4LDExICs0MjgsNyBAQCBQYXNzT3duUHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoSFRNTENhbnZh
c0VsZW1lbgogICAgIH0KIAogICAgIGF0dHJpYnV0ZXMubm9FeHRlbnNpb25zID0gdHJ1ZTsKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBhdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2VzID0gdHJ1
ZTsKLSNlbHNlCiAgICAgYXR0cmlidXRlcy5zaGFyZVJlc291cmNlcyA9IGZhbHNlOwotI2VuZGlm
CiAgICAgYXR0cmlidXRlcy5wcmVmZXJEaXNjcmV0ZUdQVSA9IHRydWU7CiAgICAgYXR0cmlidXRl
cy50b3BEb2N1bWVudFVSTCA9IGRvY3VtZW50LT50b3BEb2N1bWVudCgpLT51cmwoKTsKIApAQCAt
NDUwLDEzICs0NDYsNiBAQCBQYXNzT3duUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoSFRNTENhbnZhc0VsZW1lbgogICAgIE93blB0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+IHJlbmRlcmluZ0NvbnRleHQgPSBhZG9wdFB0cihuZXcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KGNhbnZhcywgY29udGV4dCwgYXR0cmlidXRlcykpOwogICAgIHJlbmRl
cmluZ0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgaWYgKCFyZW5kZXJpbmdDb250ZXh0LT5tX2RyYXdpbmdCdWZmZXIpIHsKLSAgICAgICAg
Y2FudmFzLT5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3JFdmVudCwgZmFsc2UsIHRydWUsICJDb3VsZCBu
b3QgY3JlYXRlIGEgV2ViR0wgY29udGV4dC4iKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLSNlbmRpZgotCiAgICAgcmV0dXJuIHJlbmRlcmluZ0NvbnRleHQucmVsZWFzZSgpOwog
fQogCkBAIC00ODMsMTMgKzQ3Miw2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50KiBwYXNzZWRDYW52YXMsIFBhCiAgICAgbV9t
YXhWaWV3cG9ydERpbXNbMF0gPSBtX21heFZpZXdwb3J0RGltc1sxXSA9IDA7CiAgICAgbV9jb250
ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZJRVdQT1JUX0RJTVMsIG1f
bWF4Vmlld3BvcnREaW1zKTsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIC8vIENyZWF0
ZSB0aGUgRHJhd2luZ0J1ZmZlciBhbmQgaW5pdGlhbGl6ZSB0aGUgcGxhdGZvcm0gbGF5ZXIuCi0g
ICAgRHJhd2luZ0J1ZmZlcjo6UHJlc2VydmVEcmF3aW5nQnVmZmVyIHByZXNlcnZlID0gbV9hdHRy
aWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlciA/IERyYXdpbmdCdWZmZXI6OlByZXNlcnZlIDog
RHJhd2luZ0J1ZmZlcjo6RGlzY2FyZDsKLSAgICBEcmF3aW5nQnVmZmVyOjpBbHBoYVJlcXVpcmVt
ZW50IGFscGhhID0gbV9hdHRyaWJ1dGVzLmFscGhhID8gRHJhd2luZ0J1ZmZlcjo6QWxwaGEgOiBE
cmF3aW5nQnVmZmVyOjpPcGFxdWU7Ci0gICAgbV9kcmF3aW5nQnVmZmVyID0gRHJhd2luZ0J1ZmZl
cjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwgY2xhbXBlZENhbnZhc1NpemUoKSwgcHJlc2VydmUs
IGFscGhhKTsKLSNlbmRpZgotCiAgICAgaWYgKG1fZHJhd2luZ0J1ZmZlcikKICAgICAgICAgbV9k
cmF3aW5nQnVmZmVyLT5iaW5kKCk7CiAKQEAgLTc2NCwxMSArNzQ2LDYgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBpZiAo
bV9jb250ZXh0LT5sYXllckNvbXBvc2l0ZWQoKSAmJiAhbV9hdHRyaWJ1dGVzLnByZXNlcnZlRHJh
d2luZ0J1ZmZlcikgewogICAgICAgICBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhjYW52YXMoKS0+YnVmZmVyKCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgaWYgKG1fZHJhd2luZ0J1ZmZl
cikKLSAgICAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKGNhbnZhcygpLT5idWZmZXIoKSk7Ci0jZW5kaWYKLQogICAgICAgICBjYW52YXMoKS0+
bWFrZVByZXNlbnRhdGlvbkNvcHkoKTsKICAgICB9IGVsc2UKICAgICAgICAgY2FudmFzKCktPmNs
ZWFyUHJlc2VudGF0aW9uQ29weSgpOwpAQCAtNDY5MiwxMSArNDY2OSw2IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojpmb3JjZVJlc3RvcmVDb250ZXh0KCkKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGlmICht
X2RyYXdpbmdCdWZmZXIpCi0gICAgICAgIHJldHVybiBtX2RyYXdpbmdCdWZmZXItPnBsYXRmb3Jt
TGF5ZXIoKTsKLSNlbmRpZgotCiAgICAgcmV0dXJuIG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigp
OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDA1NzQ5NThkYmMwNGVlZDUyZjZkNzkzZGI0NWRj
MDczMGY1Zjk1MGEuLjQ5NjcyOWU1MDJlNDlkMDRkMzg3ZGMzOTg4YWExNzUyNjViMjJkYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC03OSwxMCArNzksNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSNpbmNsdWRlICJwbGF0Zm9ybS9jaHJvbWl1bS9UcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lRXZlbnROYW1lID0gInJlcXVlc3RBbmltYXRpb25GcmFtZSI7CkBAIC01Mjgs
MTAgKzUyNCw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFhI
UkxvYWRFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1CiAKIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDEoImluc3RydW1lbnRhdGlvbiIsIEluc3Ry
dW1lbnRhdGlvbkV2ZW50czo6UGFpbnQsIEluc3RydW1lbnRhdGlvbkV2ZW50QXJndW1lbnRzOjpQ
YWdlSWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihyZW5kZXJlci0+ZnJh
bWUoKS0+cGFnZSgpKSk7Ci0jZW5kaWYKLQogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUGFpbnQocmVuZGVyZXItPmZyYW1l
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwCmluZGV4IGQwMzllODY5NTBkMWVmNzYzZmI5ZGQ0ZDFmNjFmZmZmMGYyMmM5
MjUuLjA3MjhhYWVlOWY3YWI1ZDdiMDVhMDRmNWRiM2I2NzFkOTIxNmE0NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAg
LTIyNSw5ICsyMjUsNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN1cHBvcnRzRnJh
bWVJbnN0cnVtZW50YXRpb24oRXJyb3JTdHJpbmcqLCBib29sKiByZQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEJlZ2luRnJhbWUoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQotICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ3ZWJraXQiLCBJbnN0cnVtZW50YXRpb25FdmVu
dHM6OkJlZ2luRnJhbWUpOwotI2VuZGlmCiAgICAgbV9wZW5kaW5nRnJhbWVSZWNvcmQgPSBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIDApOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAxNzVhNWM1
YTY3ZGYzMTdjMDZmYzMwMjQ4YmM4OTVhMjI4NWFjMTdlLi4wM2Q3MGQ0MTM1M2QyOGYyMjMzN2I2
M2E4NDZkNDI3OGNiYjJhZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKQEAgLTM0NSwxMyArMzQ1LDEwIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgZml4IHRoZSBkZXNpZ24gdG8gZWxpbWluYXRlIHRo
ZSBuZWVkIGZvciBhIHBsYXRmb3JtIGlmZGVmIGhlcmUKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgaWYgKG1fcmVxdWVzdC5jYWNoZVBvbGljeSgpID09IFJldHVybkNhY2hlRGF0YURvbnRM
b2FkICYmICFtX21haW5SZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkgewogICAgICAgICBmcmFtZUxv
YWRlcigpLT5yZXRyeUFmdGVyRmFpbGVkQ2FjaGVPbmx5TWFpblJlc291cmNlTG9hZCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBtYWluUmVjZWl2ZWRFcnJvcihtX21h
aW5SZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVy
ZU9ic2VydmVyLmNwcAppbmRleCA5MDIxMjZhOWFmYTQxYmE3ZGY5NGYxN2NmY2YyOTUyYjRjZDRl
OTczLi5mNTM5N2FiZWUyODEzZDcxY2JmYWExNTk1YzYzNjc1NTExNzNiY2FiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCkBAIC0zOSwxMSArMzksNiBAQCBGZWF0dXJl
T2JzZXJ2ZXI6OkZlYXR1cmVPYnNlcnZlcigpCiAKIEZlYXR1cmVPYnNlcnZlcjo6fkZlYXR1cmVP
YnNlcnZlcigpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01VTSkKLSAgICAvLyBXZSBhbHdheXMgbG9n
IFBhZ2VEZXN0cnVjdGlvbiBzbyB0aGF0IHdlIGhhdmUgYSBzY2FsZSBmb3IgdGhlIHJlc3Qgb2Yg
dGhlIGZlYXR1cmVzLgotICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9u
KCJXZWJDb3JlLkZlYXR1cmVPYnNlcnZlciIsIFBhZ2VEZXN0cnVjdGlvbiwgTnVtYmVyT2ZGZWF0
dXJlcyk7Ci0jZW5kaWYKLQogICAgIHVwZGF0ZU1lYXN1cmVtZW50cygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAppbmRleCAxODY2NDJmODU2Y2Yw
N2E5Njg4N2IwZTg3OTIwNTg1MjM0MmQ5NmM2Li5iZmY0ZjkyMzliNTA0NWViMzg5MWVlMzBmMDE0
ZTExMjA0NjE5NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0Zp
bGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3Rl
bS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBM
QVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJS
WSkgJiYgIVBMQVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQkxB
Q0tCRVJSWSkgJiYgIVBMQVRGT1JNKEVGTCkKIGJvb2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2YWls
YWJsZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudS5oCmluZGV4IGVlNzk5ZGNkZDc5ZGM1MDkyYjFkMDgwYzdlOTg4M2ZiNzkyNjg3Yjku
LmVmMmRiYmJkZjJmYTA4ZWY3NzY2OGE1OWM5ODY4YjEzZTk4MjgwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnUuaApAQCAtOTUsOCArOTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAvLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRo
IHRoZSBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiB0eXBlZGVmCiAgICAgICAgIFJldGFpblB0cjxO
U011dGFibGVBcnJheT4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwotI2VsaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CiAjZWxzZQog
ICAgICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAj
aWYgT1MoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmlu
ZGV4IDczMTcxNmY5Mzg0ZTg3MzViZDA3NzEwZjY3MDVjOTBkNjY4MTg0YTAuLmQ1ZDY5YTcxMTdl
YjAwNDQ2OTcxMjc2YTQwM2Y0ZTZhZDlkYWQxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbS5oCkBAIC0xOTcsMjAgKzE5Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBjaGVja2VkOwogICAgICAgICBib29sIGVuYWJsZWQ7CiAgICAgfTsK
LSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIHN0cnVjdCBQbGF0Zm9ybU1lbnVJdGVtRGVz
Y3JpcHRpb24gewotICAgICAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24oKQotICAgICAg
ICAgICAgOiB0eXBlKEFjdGlvblR5cGUpCi0gICAgICAgICAgICAsIGFjdGlvbihDb250ZXh0TWVu
dUl0ZW1UYWdOb0FjdGlvbikKLSAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKLSAgICAgICAg
ICAgICwgZW5hYmxlZCh0cnVlKSB7IH0KLSAgICAgICAgQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBl
OwotICAgICAgICBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247Ci0gICAgICAgIFN0cmluZyB0aXRs
ZTsKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4gc3ViTWVudUl0ZW1zOwotICAgICAg
ICBib29sIGNoZWNrZWQ7Ci0gICAgICAgIGJvb2wgZW5hYmxlZDsKLSAgICB9OwogI2Vsc2UKICAg
ICB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA2NTUxMjUyNzYyMGUyNThhYTVjNjA5NWI1NWU2Zjg2
MGFiYTU4NTEzLi44OWE4ZTE3MjQ0NzBlYjM0NjA0Mzg3NzhkMDExMzVhNDk3NTY0MDU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIEhJQ09OIEhD
VVJTT1I7CiAjZW5kaWYKIAogLy8gTG9va3MgbGlrZSBpdCdzIGp1c3QgUExBVEZPUk0oV1gpIGFu
ZCBQTEFURk9STShCTEFDS0JFUlJZKSBzdGlsbCBub3QgdXNpbmcgdGhpcz8KLSNpZiBQTEFURk9S
TShXSU4pIHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkg
fHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShXSU4p
IHx8IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX0xBWllfTkFUSVZFX0NVUlNPUiAxCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCmluZGV4IDRkMzAyZWI4YmFkODk5Njc3
NDlkZDVlY2VmYzBkNzY0NWNjMjY4NzQuLjk3NmI5MDgxNmRkYmFkYjg3MmM3YmIxOTI0NjhlYjE5
ZGRlYmY0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAKQEAgLTUzLDcgKzUz
LDYgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JN
KENIUk9NSVVNKQogaW50IERyYWdEYXRhOjptb2RpZmllcktleVN0YXRlKCkgY29uc3QKIHsKICAg
ICBib29sIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXk7CkBAIC03Nyw3ICs3Niw2
IEBAIFN0cmluZyBEcmFnRGF0YTo6ZHJvcHBlZEZpbGVTeXN0ZW1JZCgpIGNvbnN0CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogI2VuZGlmCi0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCBkNjM5NjkzMThiMGE3YWNhOTUz
NWE0NWFiNWRmODU3ZGFlNDMzM2JjLi5mZThjZGJjODk2ZTAxNTlkMDMwZDU2OWU5MzQ1Yjg5YzU0
YmZhYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAgLTYxLDggKzYxLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGF0YU9iamVjdEd0azsKIH0KIHR5cGVkZWYgV2Vi
Q29yZTo6RGF0YU9iamVjdEd0ayogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlV
TSkKLSNpbmNsdWRlICJEcmFnRGF0YVJlZi5oIgogI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQTEFU
Rk9STShCTEFDS0JFUlJZKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBkZDk3MGQyOTM2OTJlOTkzODlhYmZkMWEz
ZmZmODc0YzQ2NTBhODNhLi41ODFhYjI0MzhhZjk0ZDkyYmNlZTQ3OTg5Y2IwODA5NTAxZWFmZGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNDIsOCArNDIsNiBAQCBRVF9F
TkRfTkFNRVNQQUNFCiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7CiAjZWxpZiBQ
TEFURk9STShXWCkKIGNsYXNzIHd4RHJhZ0ltYWdlOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0jaW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVm
IHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAxODIzZmFiYmViNmQwYWVm
ZjE4MDBlNDQxMmI5YjMyZTUyZjRiNDQ2Li40M2UwMWYxNGQxNzY0NDRiOTk3NWJiMmYwZjJkNDA3
MTEwNGM5OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
CkBAIC0yODIsMTIgKzI4MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHNu
YXBzaG90dGVkUGx1Z0luTGFiZWxUaXRsZSgpOwogICAgIFN0cmluZyBzbmFwc2hvdHRlZFBsdWdJ
bkxhYmVsU3VidGl0bGUoKTsKIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKICNkZWZpbmUgV0VC
X1VJX1NUUklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmco
c3RyaW5nKQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3JpcHRp
b24pIFdlYkNvcmU6OmxvY2FsaXplZFN0cmluZyhrZXkpCiAKICAgICBTdHJpbmcgbG9jYWxpemVk
U3RyaW5nKGNvbnN0IGNoYXIqIGtleSk7Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggMDhiNjg2NWM5YjM3MDdm
ZGFlMTE3MGQ4N2FmZWY4NTQ1Zjg1ODNlNy4uZGI2ZjJlZjQ4MzhiOGY5MjMyNDdlNDYyMWFlMTU0
ZjQ4ZWNjYjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTAyLDcg
KzEwMiw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3Vt
ZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCBhbGxvd1BsYWluVGV4
dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogICAgIFN0cmluZyBwbGFpblRleHQoRnJhbWUqID0g
MCk7CiAgICAgCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKICAgICBib29sIGlz
U2VsZWN0aW9uTW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uTW9kZShib29sKTsK
ICNlbHNlCkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKICAgICBIV05EIG1fb3duZXI7CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFU
Rk9STShRVCkKICAgICBib29sIG1fc2VsZWN0aW9uTW9kZTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FeHBvcnRNYWNyb3MuaAppbmRleCA5YzI2NGMyMDlm
ZjkxNzEwOTQ2M2Q3OWUzMDA5ZWY5ZDEzZDI5Y2MyLi44YjNjODliNTc5MmIxNzg1ZTk1MzU2NDky
YzMzYzVhNGE1YzNlZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
RXhwb3J0TWFjcm9zLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogI2Vsc2UgLy8gIVVTRShFWFBPUlRf
TUFDUk9TKQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSAmJiAhZGVm
aW5lZChCVUlMRElOR19XWF9fKSAmJiAhQ09NUElMRVIoR0NDKQorI2lmIE9TKFdJTkRPV1MpICYm
ICFkZWZpbmVkKEJVSUxESU5HX1dYX18pICYmICFDT01QSUxFUihHQ0MpCiAKICNpZiBkZWZpbmVk
KFdFQkNPUkVfSVNfTElOS0VEX0lOX1NBTUVfQklOQVJZKQogI2RlZmluZSBXRUJLSVRfRVhQT1JU
REFUQSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDZiYWFkOWE2NDYzOTc5MWFhMzIwMGQ4
MzI3MjE3MDFmMjEyMDQ3YTMuLjMwYjU5ZmVmOWFlZmRjYWY2NzY2OGJmZjI1YzkzMTA0MTRiN2Zk
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50
YXRpb24uaApAQCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQgewpAQCAtNzYsMzYgKzcyLDI0
IEBAIHByaXZhdGU6CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGVjb2RlSW1hZ2UoY29uc3QgU3RyaW5nJiBpbWFnZVR5cGUpCiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfQkVHSU4xKENhdGVnb3J5TmFtZSwgSW1hZ2VEZWNvZGVF
dmVudCwgSW1hZ2VUeXBlQXJndW1lbnQsIFRSQUNFX1NUUl9DT1BZKGltYWdlVHlwZS5hc2NpaSgp
LmRhdGEoKSkpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fQ0xJRU5UX09SX05PVF9N
QUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsRGVjb2RlSW1hZ2UoaW1hZ2VUeXBlKTsK
IH0KIAogaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVtZW50YXRpb246OmRpZERlY29kZUltYWdl
KCkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9FTkQwKENhdGVn
b3J5TmFtZSwgSW1hZ2VEZWNvZGVFdmVudCk7Ci0jZW5kaWYKICAgICBGQVNUX1JFVFVSTl9JRl9O
T19DTElFTlRfT1JfTk9UX01BSU5fVEhSRUFEKCk7CiAgICAgbV9jbGllbnQtPmRpZERlY29kZUlt
YWdlKCk7CiB9CiAKIGlubGluZSB2b2lkIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVz
aXplSW1hZ2UoYm9vbCBzaG91bGRDYWNoZSkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAg
ICBUUkFDRV9FVkVOVF9CRUdJTjEoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50LCBDYWNo
ZWRBcmd1bWVudCwgc2hvdWxkQ2FjaGUpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9f
Q0xJRU5UX09SX05PVF9NQUlOX1RIUkVBRCgpOwogICAgIG1fY2xpZW50LT53aWxsUmVzaXplSW1h
Z2Uoc2hvdWxkQ2FjaGUpOwogfQogCiBpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6ZGlkUmVzaXplSW1hZ2UoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNF
X0VWRU5UX0VORDAoQ2F0ZWdvcnlOYW1lLCBJbWFnZVJlc2l6ZUV2ZW50KTsKLSNlbmRpZgogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVF9PUl9OT1RfTUFJTl9USFJFQUQoKTsKICAgICBtX2Ns
aWVudC0+ZGlkUmVzaXplSW1hZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oCmluZGV4IDlhMzEyNjA5MDI5NmMxMTA0ZmRlY2I0
YTdhNjA3ZjAyMDMxNjdmZjAuLmE4NmJlMDE3MDlhYTg2ZmU4OWExMDI0ZmEzMmI4MmY3NzY4ZjRl
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2Ny
aXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24uaApAQCAtMzYsOCArMzYsNiBAQCBPQkpDX0NMQVNTIE5TTXV0YWJsZUFycmF5OwogdHlw
ZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mg
d3hNZW51OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDkgKzUwLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgR3RrTWVudSogUGxhdGZvcm1NZW51RGVzY3JpcHRp
b247CiAjZWxpZiBQTEFURk9STShXWCkKICAgICB0eXBlZGVmIHd4TWVudSogUGxhdGZvcm1NZW51
RGVzY3JpcHRpb247Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBjbGFzcyBDb250ZXh0
TWVudUl0ZW07Ci0gICAgdHlwZWRlZiBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiogUGxh
dGZvcm1NZW51RGVzY3JpcHRpb247CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAppbmRleCBmMGQ2ODkzYTIxYzU2ODNmODFlNWE4
MmRhNWFiNjhmNTIxM2QxYzlhLi5kMjFiODRiZDE4NTlkOTFiMWQ4ZDZhNDgxOWYwY2NmOTJiY2E2
MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplci5oCkBAIC0zNywxMyArMzcsNiBAQAogT0JKQ19DTEFTUyBXZWJTcGVlY2hTeW50
aGVzaXNXcmFwcGVyOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLW5hbWVzcGFj
ZSBXZWJLaXQgewotY2xhc3MgV2ViU3BlZWNoU3ludGhlc2l6ZXI7Ci1jbGFzcyBXZWJTcGVlY2hT
eW50aGVzaXplckNsaWVudDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVu
dW0gU3BlZWNoQm91bmRhcnkgewpAQCAtOTMsMTAgKzg2LDYgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXI+IG1fcGxh
dGZvcm1TcGVlY2hXcmFwcGVyOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAg
T3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXI+IG1fd2ViU3BlZWNoU3ludGhlc2l6
ZXI7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ+IG1fd2Vi
U3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7Ci0jZW5kaWYKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5o
CmluZGV4IDk0ZGI5ZjcwMDk5OGQ2NzlhODM3Y2E3MzIxM2FkMTFlMDA1MGViOTcuLjUzZGNlYTRi
MjQ4YzFkYTFmY2Q5MmFjNzY2N2ZlOThmZDU2NmVjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgfTsKIAotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lm
IFBMQVRGT1JNKE1BQykKICAgICBlbnVtIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHsKICAgICAg
ICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lICAgICAgICA9IDAsCiAgICAgICAgIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCkBAIC04MiwxMCArODIsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1koMCkKICAg
ICAgICAgICAgICwgbV9ncmFudWxhcml0eShTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkKICAgICAg
ICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCi0jaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
ICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhmYWxzZSkKLSNlbmRpZgotI2lmIFBM
QVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAgICAg
ICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAg
ICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAg
ICAgICwgbV9zY3JvbGxDb3VudCgwKQpAQCAtMTA1LDEwICsxMDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgICAgICAsIG1fd2hlZWxUaWNrc1kod2hlZWxUaWNrc1kpCiAgICAgICAg
ICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiAgICAgICAgICAgICAsIG1fZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgLCBtX2hhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMoZmFsc2UpCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IChQ
TEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICAgICAgICAgICAgICwgbV9waGFzZShQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fbW9tZW50dW1QaGFz
ZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCiAgICAgICAgICAgICAsIG1fc2Nyb2xsQ291
bnQoMCkKQEAgLTE1MSwxMSArMTQ3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBl
eHBsaWNpdCBQbGF0Zm9ybVdoZWVsRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVlbCop
OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAgICAgICAgIHZv
aWQgc2V0SGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhib29sIGIpIHsgbV9oYXNQcmVjaXNlU2Ny
b2xsaW5nRGVsdGFzID0gYjsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9waGFzZTsgfQogICAgICAgICBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1bVBo
YXNlOyB9CiAgICAgICAgIHVuc2lnbmVkIHNjcm9sbENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxDb3VudDsgfQpAQCAtMTg0LDEwICsxNzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGZsb2F0IG1fd2hlZWxUaWNrc1k7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudEdy
YW51bGFyaXR5IG1fZ3JhbnVsYXJpdHk7CiAgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2U7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
OwotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KERBUldJTikpCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fcGhhc2U7CiAgICAg
ICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9tZW50dW1QaGFzZTsKICAgICAgICAgdW5z
aWduZWQgbV9zY3JvbGxDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dG9yLmNwcAppbmRleCA1Nzc0MmU2ZmIwYjQzMzlmYzI0MzQxMWEyMDI1NGFkMzIxMzQ0YjFkLi43
MjlhZjc1NzJmODc5NGE1OTdmZDk0MGMwOTA1Y2Y2NDQyNDVkNzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFFTkFCTEUoU01PT1RI
X1NDUk9MTElORykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyNpZiAh
RU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiBQYXNzT3duUHRyPFNjcm9sbEFuaW1hdG9yPiBTY3Jv
bGxBbmltYXRvcjo6Y3JlYXRlKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKIHsKICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKSk7CkBA
IC05MywxMiArOTMsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwog
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhEQVJXSU4pCi0gICAgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkgPSBlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSA/IFNjcm9s
bEJ5UHJlY2lzZVBpeGVsIDogU2Nyb2xsQnlQaXhlbDsKLSNlbHNlCiAgICAgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVsOwotI2VuZGlmCi0KICAgICBJbnRTaXpl
IG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1TY3JvbGxQ
b3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICBJbnRT
aXplIG1heEJhY2t3YXJkU2Nyb2xsRGVsdGEgPSBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQb3Np
dGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS0+bWluaW11bVNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
aWYgKChkZWx0YVggPCAwICYmIG1heEZvcndhcmRTY3JvbGxEZWx0YS53aWR0aCgpID4gMCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDI4ODlmNDIwNDY0OGQx
YzkwZWQzZTAzOTQwOThjMmQxYmIxNjYzMDguLmYzMTU2MTg3NmI0M2FlZjVkZTgxMjhkN2MzYTU5
NGZjYmYxNTA3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApA
QCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlKSB7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3JOb25lLmNwcAppbmRleCAyNDQyYTk2MmFiMjUxMDFkOTAyMDVmNGU0ZGI4NmRmZDVlYmJj
ZDg5Li41NjA3NTI0NDIyMTg1ZmEzZWVhYjlmNDc5MmIxZjVlMWRiOTBlZWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTQzLDEwICs0
Myw2IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZlbnQu
aCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRm
b3JtR2VzdHVyZUV2ZW50LmgiCiAjZW5kaWYKQEAgLTQzNiwxMCArNDMyLDYgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvck5vbmU6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
U2Nyb2xsR3JhbnVsYXIKICAgICBpZiAoIW1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1hdG9y
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRh
dGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogCi0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsQW5pbWF0b3JOb25lOjpz
Y3JvbGwiKTsKLSNlbmRpZgotCiAgICAgLy8gRklYTUU6IGdldCB0aGUgdHlwZSBwYXNzZWQgaW4u
IE1vdXNlV2hlZWwgY291bGQgYWxzbyBiZSBieSBsaW5lLCBidXQgc2hvdWxkIHN0aWxsIGhhdmUg
ZGlmZmVyZW50CiAgICAgLy8gYW5pbWF0aW9uIHBhcmFtZXRlcnMgdGhhbiB0aGUga2V5Ym9hcmQu
CiAgICAgUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwpAQCAtNTMxLDEwICs1MjMsNiBAQCB2b2lkIFNj
cm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRv
ck5vbmU+KiB0aW1lcikKIAogdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRpbWVy
RmlyZWQoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Vi
a2l0IiwgIlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCIpOwotI2VuZGlm
Ci0KICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpOwogICAgIGRvdWJsZSBkZWx0YVRvTmV4dEZyYW1lID0gY2VpbCgoY3VycmVudFRpbWUg
LSBtX3N0YXJ0VGltZSkgKiBrRnJhbWVSYXRlKSAvIGtGcmFtZVJhdGUgLSAoY3VycmVudFRpbWUg
LSBtX3N0YXJ0VGltZSk7CiAgICAgY3VycmVudFRpbWUgKz0gZGVsdGFUb05leHRGcmFtZTsKQEAg
LTU1NCw5ICs1NDIsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJG
aXJlZCgpCiAgICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gZmFsc2U7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIlNjcm9sbEFu
aW1hdG9yTm9uZTo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkIik7Ci0jZW5kaWYKICAgICBub3RpZnlQ
b3NpdGlvbkNoYW5nZWQoRmxvYXRTaXplKCkpOwogCiAgICAgaWYgKCFjb250aW51ZUFuaW1hdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMGJhMDZkMTY0Y2Jk
ZGE1YmRlZDMwMWQ0MzQ4NTg5YjEzMDFmYWIyOS4uOTliZTRlMDMyMzVhODk2YzA2NTRlODE2MjZm
OTViNzQ2NDQ4NmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAg
LTExNTYsMTQgKzExNTYsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJlYXMo
KQogICAgIEludFJlY3QgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdDsKICAgICBJbnRSZWN0IHZlcnRp
Y2FsT3ZlcmhhbmdSZWN0OwogICAgIGNhbGN1bGF0ZU92ZXJoYW5nQXJlYXNGb3JQYWludGluZyho
b3Jpem9udGFsT3ZlcmhhbmdSZWN0LCB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCk7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShDSFJPTUlVTSkgJiYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQotICAgIGlmIChHcmFwaGljc0xheWVyKiBvdmVyaGFuZ0xheWVyID0gbGF5
ZXJGb3JPdmVyaGFuZ0FyZWFzKCkpIHsKLSAgICAgICAgYm9vbCBoYXNPdmVyaGFuZ0FyZWEgPSAh
aG9yaXpvbnRhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkgfHwgIXZlcnRpY2FsT3ZlcmhhbmdSZWN0
LmlzRW1wdHkoKTsKLSAgICAgICAgb3ZlcmhhbmdMYXllci0+c2V0RHJhd3NDb250ZW50KGhhc092
ZXJoYW5nQXJlYSk7Ci0gICAgICAgIGlmIChoYXNPdmVyaGFuZ0FyZWEpCi0gICAgICAgICAgICBv
dmVyaGFuZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICB9Ci0jZW5kaWYKICAgICBpZiAo
IWhvcml6b250YWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgpKQogICAgICAgICBob3N0V2luZG93KCkt
PmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGhvcml6b250YWxPdmVyaGFuZ1JlY3QsIGZh
bHNlIC8qaW1tZWRpYXRlKi8pOwogICAgIGlmICghdmVydGljYWxPdmVyaGFuZ1JlY3QuaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGIw
MzUyNWY1YWEyZTY3NzBiZTA5ODZhNjlmYjgzMzBhNWM5ZTRjZDkuLjA4YTYyNmI3Y2M2OGRlNmNi
MDkxOGYxM2NlYWY4ZGFkOTdiNGNjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAKQEAgLTQxLDEwICs0MSw2IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IFNhbWVTaXplQXNTY3JvbGxhYmxlQXJlYSB7CkBAIC0xNDUsMTAgKzE0MSw2
IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6Om5vdGlmeVNjcm9sbFBvc2l0aW9uQ2hhbmdlZChjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24pCiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0
aW9uQ2hhbmdlZChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bFBvc2l0aW9uQ2hhbmdlZCIpOwotI2VuZGlmCi0KICAgICBJbnRQb2ludCBvbGRQb3NpdGlvbiA9
IHNjcm9sbFBvc2l0aW9uKCk7CiAgICAgLy8gVGVsbCB0aGUgZGVyaXZlZCBjbGFzcyB0byBzY3Jv
bGwgaXRzIGNvbnRlbnRzLgogICAgIHNldFNjcm9sbE9mZnNldChwb3NpdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRleCBiYjFjZTU3OTQyMGU3NjMyZGNhMjM5NjU4
OWI2OTZiYzM4ZWIxNzE4Li5kYjkyNTUyYzYzYjFiMDY4MDhlMjk3ZWNiM2ZmOTkzZmVjMzY5Yzc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmIChQTEFURk9STShDSFJPTUlVTSkgJiYgKE9T
KFVOSVgpICYmICFPUyhEQVJXSU4pKSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdU
SykKIC8vIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iIGFmZmVjdHMgdGhlIGFw
cGVhcmFuY2Ugb2YgdGhlIHN0ZXBwZXJzLCBzbwogLy8gd2hlbiB0aGUgdGh1bWIgbW92ZXMsIHdl
IGhhdmUgdG8gaW52YWxpZGF0ZSB0aGVtIGZvciBwYWludGluZy4KICNkZWZpbmUgVEhVTUJfUE9T
SVRJT05fQUZGRUNUU19CVVRUT05TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TZWN1cmVUZXh0SW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJlVGV4
dElucHV0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZlMWM4NjcwMTJlODBh
YWZiMjVlMTI5MWViMmQ1Y2QxYjBiNDBlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIFdl
YktpdCwgYmVjYXVzZSBicm93c2VyIHByb2Nlc3MgbmVlZHMgdG8gdHJhY2sgc2VjdXJlIGlucHV0
IHN0YXRlIGFueXdheSB0byBtYW5pcHVsYXRlIGlucHV0IGNvbnRleHRzLgotI2lmIFBMQVRGT1JN
KENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0jaW5jbHVkZSAiU2VjdXJlVGV4dElucHV0LmgiCi0K
LSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lk
IGVuYWJsZVNlY3VyZVRleHRJbnB1dCgpCi17Ci0gICAgaWYgKElzU2VjdXJlRXZlbnRJbnB1dEVu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIEVuYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsK
LX0KLQotdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElucHV0KCkKLXsKLSAgICBpZiAoIUlzU2VjdXJl
RXZlbnRJbnB1dEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIERpc2FibGVTZWN1cmVF
dmVudElucHV0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBM
QVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nl
Y3VyZVRleHRJbnB1dC5oCmluZGV4IDYwOGFhNjM4ZTRkMzM5MmUyMTE1NjRjNmYzMDRmNDdjOGRi
YWQzNTkuLjgzMGY0ZmQxZTFmNmNkNjgzNTU3MTI0MzU5MjAyZTBhYWEzNzk1NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oCkBAIC0zMywxNSArMzMsOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIE9uY2UgZW5hYmxlU2VjdXJlVGV4dElucHV0IGlz
IGNhbGxlZCwgc2VjdXJlIHRleHQgaW5wdXQgbW9kZSBpcyBzZXQgdW50aWwKLS8vIGRpc2FibGVT
ZWN1cmVUZXh0SW5wdXQgaGFzIGJlZW4gY2FsbGVkLgotdm9pZCBlbmFibGVTZWN1cmVUZXh0SW5w
dXQoKTsKLXZvaWQgZGlzYWJsZVNlY3VyZVRleHRJbnB1dCgpOwotCi0jaWYgIShQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKy8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgbWV0aG9kcy4g
KGh0dHA6Ly93a2IudWcvMTE0MTI2KQogaW5saW5lIHZvaWQgZW5hYmxlU2VjdXJlVGV4dElucHV0
KCkgeyB9CiBpbmxpbmUgdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElucHV0KCkgeyB9Ci0jZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3Vk
ZGVuVGVybWluYXRpb24uaAppbmRleCBiNjZhZTFhYmM3ZDgwMDNjNzAzZGVjMDRhY2MzMzllMDI2
NWU2OWFkLi43MjUyMTQ5MDYyZjQzM2FiMzNjNjg4MGM5NTU0YjliM2JkZmFkYzkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgKQEAgLTM0LDcgKzM0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
KCk7CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCi0jaWYgIVBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2lmICFQTEFURk9STShNQUMpCiAgICAgaW5s
aW5lIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgeyB9CiAgICAgaW5saW5lIHZvaWQg
ZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaAppbmRleCA3N2NjZjkxZDcwYTA0NmVhYWZhNWZmMTgxZDkyMmYyMDUwMjIwMGZhLi5lN2Yx
ZTU5ZGQ0MzFhNzY4ZDE4ZTIxYWVkMWU3YjMwYTYwMGJiOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuaApAQCAtMzEsMTEgKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNs
dWRlICJQYWdlQ2xpZW50Q2hyb21pdW0uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVdpZGdldC5oIgot
I2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2VuZGlmCkBAIC05Niw4ICs5MSw2IEBAIHR5cGVkZWYgUGFnZUNsaWVudEJsYWNrQmVycnkqIFBs
YXRmb3JtUGFnZUNsaWVudDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKIGNsYXNzIFBhZ2VDbGllbnRF
Zmw7CiB0eXBlZGVmIFBhZ2VDbGllbnRFZmwqIFBsYXRmb3JtUGFnZUNsaWVudDsKLSNlbGlmIFBM
QVRGT1JNKENIUk9NSVVNKQotdHlwZWRlZiBXZWJDb3JlOjpQYWdlQ2xpZW50Q2hyb21pdW0qIFBs
YXRmb3JtUGFnZUNsaWVudDsKICNlbHNlCiB0eXBlZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3Jt
UGFnZUNsaWVudDsKICNlbmRpZgpAQCAtMjI3LDEwICsyMjAsNiBAQCBwdWJsaWM6CiAgICAgRXZh
c19PYmplY3QqIGV2YXNPYmplY3QoKSB7IHJldHVybiBtX2V2YXNPYmplY3Q7IH0KICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgdmlydHVhbCBib29sIGlzUGx1Z2luQ29udGFp
bmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oUVQp
CiAgICAgUU9iamVjdCogYmluZGluZ09iamVjdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0QmluZGlu
Z09iamVjdChRT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA1MmY3MWRkM2Y5MDk3NmIyOGNkOWNlYzRi
YzFhNjM5NTFmOTYzOWY3Li4zZGU3ZmEzNDY5ZWE2MmIxYjdkZjUxYTc4ZWUwNGU3MDc2NTM4NTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktp
dEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2Vi
S2l0QnJpZGdlLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiAhUExBVEZPUk0oR1RL
KSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIVBMQVRGT1JN
KENIUk9NSVVNKSAmJiAhUExBVEZPUk0oUVQpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKEVGTCkgJiYgIVBMQVRGT1JNKEJMQUNLQkVSUlkpICYmICFQTEFURk9STShRVCkKICNpbmNs
dWRlICJBTkdMRS9TaGFkZXJMYW5nLmgiCiAjZWxzZQogI2luY2x1ZGUgIlNoYWRlckxhbmcuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4
IDE2MzZhMGU2MTM5YTM3ZmU0OTU2OGQwMmRjNjM2ODYwOWEyYTM0ZGMuLmI3ZDVmOTI3ZTYwNWNl
Yjg5Y2NkMTRiNDY1YWNhZDA0ZThmNjkxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKICNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Ci0jaWYgVVNFKENHKSB8fCBQTEFU
Rk9STShDSFJPTUlVTSkgfHwgVVNFKENBSVJPKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKQorI2lm
IFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKQogICAgIHZpcnR1
YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKSBP
VkVSUklERTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50LmgKaW5kZXggN2JkMjFmYzM4N2Y0YTA2YWFiMWJhOTU2ZDcxNzg5NmFmMGY1MzU4
Mi4uMTdkNGViYTIyNTMyYmQ5MzcyMjM1NDBkZjcxYjM1Y2U2YTU0MTdhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApAQCAtNDMsNyArNDMsNyBA
QCBjbGFzcyBGbG9hdFBvaW50OwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBDR1BvaW50OwogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFS
V0lOKSkKKyNpZiBQTEFURk9STShNQUMpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKICNlbHNl
CkBAIC0xNTUsOCArMTU1LDcgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIENHUG9pbnQoKSBjb25z
dDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAm
JiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5T
R0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKQogICAgIEZsb2F0UG9pbnQo
Y29uc3QgTlNQb2ludCYpOwogICAgIG9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaAppbmRleCA4Yjhk
MzNhNzEzNDhkNGNiYjlkZTZiNDM5YTkyYWJiYmU3NTgyMWNiLi4yYjdhZDQ3ZmNhMTJiNDM2Mjhi
MjhhYzY1NmRmMTIyZjEwOTczMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuaApAQCAtMzQsNyArMzQsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0
IENHUmVjdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogI2lmZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNS
ZWN0OwogI2Vsc2UKQEAgLTIwMCw4ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dS
ZWN0KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkpIFwKLSAgICAgICAgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAh
ZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKICAgICBG
bG9hdFJlY3QoY29uc3QgTlNSZWN0Jik7CiAgICAgb3BlcmF0b3IgTlNSZWN0KCkgY29uc3Q7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
U2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKaW5k
ZXggYWQ0ZGRmYTMxMWYwNjUzNjk3YWM0YTM4N2ZhZjllNDNlZDljYjRkOC4uNTI2ZWQxNGQ1Mjk2
YmVhN2IwMDA2MWU2OWQ3MTUxMmIwZjBiNDIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgRmxvYXRTaXpl
OwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShR
VCkgJiYgVVNFKFFUS0lUKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYg
VVNFKFFUS0lUKSkKICNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9U
WVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCkBAIC0xMzUsOSArMTM1
LDcgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0OwogI2VuZGlmCiAKLSNp
ZiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpKSBc
Ci0gICAgICAgICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZ
X1RZUEVTKSBcCi0gICAgICAgIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9N
RVRSWV9UWVBFUykpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBleHBsaWNp
dCBGbG9hdFNpemUoY29uc3QgTlNTaXplICYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkg
c2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDc2MzdhOGVlYTk1
ZjYzMjMwMDZhZThlMTQyYTdlZDRlNjk1NzFiMzYuLmUxOGFjNWNlMmMzNzYzNTUwZDg2Mjg1NDc3
MThlNzc4MmRjNzM0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwCkBAIC0yMzcsOCArMjM3LDcgQEAgZmxvYXQgRm9udDo6d2lkdGgoY29uc3QgVGV4dFJ1biYg
cnVuLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb24KICAgICByZXR1
cm4gd2lkdGgocnVuKTsKIH0KIAotI2lmICEoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hS
T01JVU0pICYmIE9TKERBUldJTikpKQotCisjaWYgIVBMQVRGT1JNKE1BQykKIFBhc3NPd25QdHI8
VGV4dExheW91dD4gRm9udDo6Y3JlYXRlTGF5b3V0KFJlbmRlclRleHQqLCBmbG9hdCwgYm9vbCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI1Myw3ICsyNTIsNiBAQCBmbG9hdCBG
b250Ojp3aWR0aChUZXh0TGF5b3V0JiwgdW5zaWduZWQsIHVuc2lnbmVkLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAw
OwogfQotCiAjZW5kaWYKIAogRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBoLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCmlu
ZGV4IGQ2ZDM5M2ExNjI3NDUzYzdkZGVhMjQyM2FlOGE5ZmE0YmM1ODQ3ZmMuLmUwOTNjNjRjZGM2
YTg0ZTAwNGU4MmUzMGE5YmZmZDFiOWZkNzY0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gZ2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihjLCBtaXJyb3IsIHZhcmlhbnQp
LmZpcnN0OwogICAgIH0KLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgY29uc3QgU2ltcGxlRm9udERh
dGEqIGZvbnREYXRhRm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqLCBz
aXplX3QgbGVuZ3RoLCBGb250RGF0YVZhcmlhbnQpIGNvbnN0OwogI2VuZGlmCiAgICAgc3RkOjpw
YWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gZ2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihV
Q2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50ID0gQXV0b1ZhcmlhbnQpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5k
ZXggYmQ3YmVhYzI0ZTFlNTgxNmI1Y2RkNjEyYTFiM2RiY2M0ZmFiODRmNS4uODJiMGI2MTE5NTQ3
MjQyZWEyZDJhOWFiODFiZDVlOGIxYzk5YWUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0yODgsMTMgKzI4OCw4IEBAIHR5cGVkZWYg
SGFzaE1hcDxGb250UGxhdGZvcm1EYXRhLCBwYWlyPFJlZlB0cjxTaW1wbGVGb250RGF0YT4sIHVu
c2lnbmVkPiwgRm9udERhCiAKIHN0YXRpYyBGb250RGF0YUNhY2hlKiBnRm9udERhdGFDYWNoZSA9
IDA7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCi1jb25zdCBpbnQg
Y01heEluYWN0aXZlRm9udERhdGEgPSAyNTA7Ci1jb25zdCBpbnQgY1RhcmdldEluYWN0aXZlRm9u
dERhdGEgPSAyMDA7Ci0jZWxzZQogY29uc3QgaW50IGNNYXhJbmFjdGl2ZUZvbnREYXRhID0gMjI1
OwogY29uc3QgaW50IGNUYXJnZXRJbmFjdGl2ZUZvbnREYXRhID0gMjAwOwotI2VuZGlmCiBzdGF0
aWMgTGlzdEhhc2hTZXQ8UmVmUHRyPFNpbXBsZUZvbnREYXRhPiA+KiBnSW5hY3RpdmVGb250RGF0
YSA9IDA7CiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSwgU2hvdWxkUmV0
YWluIHNob3VsZFJldGFpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmgKaW5kZXggM2Q0YjQ3YjMwOGUwMDg1YWMwZDNhMTcxNzhjNWZhMGI3Y2JhZWYyNS4u
ZjkwOGU4YzQwMGNjMjYxNGQ0ZDFkNzcwNTIzZTRhNzVlNmMwMGRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEwNyw4ICsxMDcsNiBAQCBw
dWJsaWM6CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0
YT4gZm9udERhdGFGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYsIFNob3VsZFJldGFpbiwgY29uc3QgTE9HRk9OVCYsIEF0b21pY1N0cmluZyYgb3V0Rm9udEZh
bWlseU5hbWUpOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKFdJTkRPV1MpCi0gICAg
UGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gZm9udERhdGFGcm9tRGVzY3JpcHRpb25BbmRMb2dG
b250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIFNob3VsZFJldGFpbiwgY29uc3QgTE9HRk9OVCYs
IHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE9QRU5U
WVBFX1ZFUlRJQ0FMKQpAQCAtMTU3LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gRG9uJ3Qg
cHVyZ2UgaWYgdGhpcyBjb3VudCBpcyA+IDA7CiAgICAgaW50IG1fcHVyZ2VQcmV2ZW50Q291bnQ7
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkgfHwgT1MoQU5EUk9JRCkKKyNpZiBQTEFURk9STShNQUMpIHx8IE9TKEFORFJPSUQpCiAgICAg
ZnJpZW5kIGNsYXNzIENvbXBsZXhUZXh0Q29udHJvbGxlcjsKICNlbmRpZgogICAgIGZyaWVuZCBj
bGFzcyBTaW1wbGVGb250RGF0YTsgLy8gRm9yIGdldENhY2hlZEZvbnREYXRhKGNvbnN0IEZvbnRQ
bGF0Zm9ybURhdGEqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RGVzY3JpcHRpb24uaAppbmRleCA2Y2ZiODVjZDJiYThmYWJmM2U3OTI5YzM5ZjExOTg0MzBh
MWU5ODkwLi4xN2MwMGQ0ZWYwNDM4YTczZTAxN2EwMTRhZTY4MzBmNGY2NTFkN2Y4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApA
QCAtMTQ3LDExICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc0Fic29sdXRlU2l6ZShi
b29sIHMpIHsgbV9pc0Fic29sdXRlU2l6ZSA9IHM7IH0KICAgICB2b2lkIHNldFdlaWdodChGb250
V2VpZ2h0IHcpIHsgbV93ZWlnaHQgPSB3OyB9CiAgICAgdm9pZCBzZXRHZW5lcmljRmFtaWx5KEdl
bmVyaWNGYW1pbHlUeXBlIGdlbmVyaWNGYW1pbHkpIHsgbV9nZW5lcmljRmFtaWx5ID0gZ2VuZXJp
Y0ZhbWlseTsgfQotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0gICAgdm9p
ZCBzZXRVc2VQcmludGVyRm9udChib29sKSB7IH0KLSNlbHNlCiAgICAgdm9pZCBzZXRVc2VQcmlu
dGVyRm9udChib29sIHApIHsgbV91c2VQcmludGVyRm9udCA9IHA7IH0KLSNlbmRpZgogICAgIHZv
aWQgc2V0UmVuZGVyaW5nTW9kZShGb250UmVuZGVyaW5nTW9kZSBtb2RlKSB7IG1fcmVuZGVyaW5n
TW9kZSA9IG1vZGU7IH0KICAgICB2b2lkIHNldEtlcm5pbmcoS2VybmluZyBrZXJuaW5nKSB7IG1f
a2VybmluZyA9IGtlcm5pbmc7IH0KICAgICB2b2lkIHNldENvbW1vbkxpZ2F0dXJlc1N0YXRlKExp
Z2F0dXJlc1N0YXRlIGNvbW1vbkxpZ2F0dXJlc1N0YXRlKSB7IG1fY29tbW9uTGlnYXR1cmVzU3Rh
dGUgPSBjb21tb25MaWdhdHVyZXNTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAppbmRleCBhNTU1NThlNDc3NTVj
Y2I2ZGJmZTQ3NmE3YTA2M2Q2OWRjZDJlNWIwLi45MTNhZDkwNzBjNWI3ODI2MjJmYWM1NzY4MjE3
NjY4YzY3ZTJmMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtMjcsMTAgKzI3LDYgQEAKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKQotI2luY2x1ZGUgIkhhcmZCdXp6
RmFjZS5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5o
CmluZGV4IDNhZWMwOGU2NWUwYmY5MWQ1MjAxNmY1NTkwZWVhMzViMzgzN2EyZDMuLjg4MmYyYTAy
YWFhMzQ4NTZlMWM0M2M3NDgwZTM0MzY4MDU1ZWU3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaApAQCAtMzksNyArMzksNyBAQAogI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0dlb21ldHJ5Lmg+CiAjZW5kaWYKIAotI2lmIE9TKERBUldJTikg
JiYgKFBMQVRGT1JNKFdYKSB8fCBQTEFURk9STShDSFJPTUlVTSkpCisjaWYgT1MoREFSV0lOKSAm
JiBQTEFURk9STShXWCkKICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9u
U2VydmljZXMuaD4KICNlbmRpZgogCkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgR2x5cGggR2x5
cGhCdWZmZXJHbHlwaDsKIAogLy8gQ0cgdXNlcyBDR1NpemUgaW5zdGVhZCBvZiBGbG9hdFNpemUg
c28gdGhhdCB0aGUgcmVzdWx0IG9mIGFkdmFuY2VzKCkKIC8vIGNhbiBiZSBwYXNzZWQgZGlyZWN0
bHkgdG8gQ0dDb250ZXh0U2hvd0dseXBoc1dpdGhBZHZhbmNlcyBpbiBGb250TWFjLm1tCi0jaWYg
VVNFKENHKSB8fCAoT1MoREFSV0lOKSAmJiAoUExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKSkpCisjaWYgVVNFKENHKSB8fCAoT1MoREFSV0lOKSAmJiBQTEFURk9STShXWCkpCiBzdHJ1
Y3QgR2x5cGhCdWZmZXJBZHZhbmNlIDogQ0dTaXplIHsKIHB1YmxpYzoKICAgICBHbHlwaEJ1ZmZl
ckFkdmFuY2UoQ0dTaXplIHNpemUpIDogQ0dTaXplKHNpemUpCkBAIC0xNjUsNyArMTY1LDcgQEAg
cHVibGljOgogICAgICAgICBtX2dseXBocy5hcHBlbmQoZ2x5cGgpOwogI2VuZGlmCiAKLSNpZiBV
U0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIChQTEFURk9STShXWCkgfHwgUExBVEZPUk0oQ0hST01J
VU0pKSkKKyNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIFBMQVRGT1JNKFdYKSkKICAgICAg
ICAgQ0dTaXplIGFkdmFuY2UgPSB7IHdpZHRoLCAwIH07CiAgICAgICAgIG1fYWR2YW5jZXMuYXBw
ZW5kKGFkdmFuY2UpOwogI2VsaWYgT1MoV0lOQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAyN2JjM2E5MzY0NDBm
OWZkNjIzZmJhM2Y1MDUwYTQ4ZTc0NjFlNmY0Li43NjJjNjBiZWQxMjAzOWI1YzM2Mjc4YWI1OWY1
NjE2MDAyZjExYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTUwOCwxMiArNTA4LDggQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdAogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAgICBwcmV2
aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwot
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KEludGVycG9sYXRpb25Mb3cpOwotI2Vsc2UKICAgICAgICAgLy8gRklYTUUgKDQ5MDAyKTog
U2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBpbWFnZS0+
ZHJhdyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwpAQCAtNTk1LDEyICs1OTEsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yUwogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAg
ICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Mb3cpOwotI2Vsc2UK
ICAgICAgICAgLy8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAg
ICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0j
ZW5kaWYKICAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBz
cmMsIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgIHNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkocHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAg
fSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCAzYTM4NGIzNTA5ZGI4NTYwMmExOGI1YThhZmRkYTVjMGJjZTM1
MDNkLi42YTA0NDk4NDJhZGU3Yzg5ZTdiNTVhNWRkOTc1YmEzN2IxNDllNzA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8g
RklYTUU6IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGF2b2lkIHRoZSBuYW1lIGNvbmZsaWN0aW9uIGZv
ciBOT19FUlJPUi4KLSNpZiAoKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhXSU5ET1dTKSkgfHwg
UExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJTkRPV1MpKSkKKyNpZiBQTEFU
Rk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lORE9XUykpCiAjdW5kZWYgTk9fRVJS
T1IKICNlbGlmIFBMQVRGT1JNKEdUSykKIC8vIFRoaXMgZGVmaW5lIGlzIGZyb20gdGhlIFgxMSBo
ZWFkZXJzLCBidXQgaXQncyB1c2VkIGJlbG93LCBzbyB3ZSBtdXN0IHVuZGVmaW5lIGl0LgpAQCAt
ODAsNyArODAsNyBAQCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiB0
eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7CiAjZW5kaWYKIAotI2lmIChQ
TEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkpICYmIFVTRShTS0lBKQor
I2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpICYmIFVTRShTS0lBKQogY2xhc3MgR3JDb250ZXh0Owog
I2VuZGlmCiAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0T2JqOyB9CiAgICAgUGxhdGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBjb25z
dCB7IHJldHVybiBtX2NvbXBvc2l0b3JUZXh0dXJlOyB9CiAgICAgQ0FMYXllciogcGxhdGZvcm1M
YXllcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xM
YXllci5nZXQoKSk7IH0KLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKQorI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdDsKICAgICBQbGF0Zm9y
bTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0OwogI2lmIFVTRShTS0lBKQpAQCAtNTI4
LDcgKzUyOCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50
KCk7CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNL
QkVSUlkpCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgLy8gV2l0aCBt
dWx0aXNhbXBsaW5nIG9uLCBibGl0IGZyb20gbXVsdGlzYW1wbGVGQk8gdG8gcmVndWxhciBGQk8u
CiAgICAgdm9pZCBwcmVwYXJlVGV4dHVyZSgpOwogI2VuZGlmCkBAIC0xMDU2LDcgKzEwNTYsNyBA
QCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IChQTEFURk9STShRVCkgJiYg
ZGVmaW5lZChRVF9PUEVOR0xfRVNfMikpIHx8ICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShF
RkwpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsK
LSNlbGlmICFQTEFURk9STShDSFJPTUlVTSkKKyNlbHNlCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVu
c2lvbnMzRE9wZW5HTDsKICAgICBPd25QdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lv
bnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAppbmRleCAyZjBlM2QxMWJkNjkyZjY3ODA3ODIyM2RiZTVhMDhmYWNjOTgzYjNj
Li4xMjY3NWJhM2Q0NzY0NzU2ZmEyZDI2ODFjODNhNWE5MDZkY2Y1ODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00MjgsNyAr
NDI4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNCYWNrZ3JvdW5kQ29s
b3JDb250ZW50KCkKICAgICB7Ci0jaWYgVVNFKENBKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpIHx8
IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIFVTRShDQSkgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaAppbmRleCBjNTg1ODA3YmQ1M2Y3NmNjMGU5
OGRhY2IzMWRkNTJjOTZmYjJlZWM5Li5hNzhiMjY1YzhhZmFhYjU0NzEwYjhjNzcwNGUzNzM0ZWQy
NWYwYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0zNSw5
ICszNSw2IEBAIHR5cGVkZWYgc3RydWN0IEhJQ09OX18qIEhJQ09OOwogI2luY2x1ZGUgPFFJY29u
PgogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhi
dWY7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtSWNvbi5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU1
LDggKzUyLDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEljb24+IGNyZWF0ZShISUNPTiBoSWNvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IElj
b24oaEljb24pKTsgfQotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SWNvbj4gY3JlYXRlKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPiBpY29uKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgSWNvbihpY29uKSk7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNzUs
OSArNzAsNiBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oRUZMKQogICAgIEljb24oKTsKICAg
ICBFdmFzX09iamVjdCogbV9pY29uOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgSWNv
bihQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4pOwotICAgIFJlZlB0cjxQbGF0Zm9ybUljb24+IG1f
aWNvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGMwNjZjZTcxMWVkZTJmMzRmNTQ4NDM4MWY2YWJkZTY5
OGRkOTEzYjkuLjVkYjFhNGY2YjExZTQwNzk2ZDg2YTFhNzI4MzFlMGI4ZGIyYjExMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAg
LTM1LDEwICszNSw2IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0jaW5jbHVkZSAiRGVmZXJyZWRJbWFnZURlY29kZXIuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggY2E5
OTc3MDNiNTk5MGNkZTg4NWI3MWM3ZGIxN2M5YTRjNDdlZTBiNC4uZTMwNTNkNjU3ZjU0Yjg5OTk1
MTY0ZGUzOWUxY2ZkMjg4MDMxODIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC00OCwxNiArNDgsMTIgQEAgY2xhc3MgU2hhcmVkQnVm
ZmVyOwogCiAjaWYgVVNFKENHKQogdHlwZWRlZiBDR0ltYWdlU291cmNlUmVmIE5hdGl2ZUltYWdl
RGVjb2RlclB0cjsKLSNlbGlmICFQTEFURk9STShDSFJPTUlVTSkKKyNlbHNlCiBjbGFzcyBJbWFn
ZURlY29kZXI7CiB0eXBlZGVmIEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VEZWNvZGVyUHRyOwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLWNsYXNzIERlZmVycmVkSW1hZ2VEZWNv
ZGVyOwotdHlwZWRlZiBEZWZlcnJlZEltYWdlRGVjb2RlciBOYXRpdmVJbWFnZURlY29kZXI7Ci10
eXBlZGVmIERlZmVycmVkSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZURlY29kZXJQdHI7Ci0jZWxp
ZiBVU0UoQ0cpCisjaWYgVVNFKENHKQogI2RlZmluZSBOYXRpdmVJbWFnZURlY29kZXIgSW1hZ2VE
ZWNvZGVyCiAjZWxzZQogdHlwZWRlZiBJbWFnZURlY29kZXIgTmF0aXZlSW1hZ2VEZWNvZGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IGU1YWQzMjEz
OWIyNTliNTU4NTdmNTA3YzRhNTE0M2M2NzcyNmMzMWQuLjRjZjE4OTBlODAzNmUyY2RhYmIxYWNi
OGQyYTk3ZDc3Y2E2Zjg0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRSZWN0LmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBP
UyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgUExBVEZPUk0o
TUFDKSB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAjaWZkZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1Jl
Y3Q7CiAjZWxzZQpAQCAtMjMwLDkgKzIzMCw3IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBTa0lS
ZWN0KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpIHx8IChQTEFURk9STShD
SFJPTUlVTSkgJiYgT1MoREFSV0lOKSkpIFwKLSAgICAgICAgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpIFwKLSAgICAgICAgfHwgKFBMQVRGT1JN
KFFUKSAmJiBVU0UoUVRLSVQpKQorI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VP
TUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgfHwgKFBMQVRGT1JNKFFUKSAm
JiBVU0UoUVRLSVQpKQogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKQEAg
LTI4Myw4ICsyODEsNyBAQCBpbmxpbmUgSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiBJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgQ0dSZWN0Jik7CiAj
ZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgXAotICAgICAgICB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9N
RVRSWV9UWVBFUykpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKIEludFJlY3QgZW5j
bG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMTI1NzZmYmEyMGIz
MGQyZTJhMzczY2JlOTlhNmY3OGQxMTk3MjU5NC4uMWJmMDYxODQxN2M4NzY0Mzc2ZDQwODIxMzQ4
NWVlM2I1YzE0OWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcApAQCAtNzYsOSArNzYsNiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZVF0LmgiCiAjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlUXQKICNlbmRpZgotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlQ2hyb21pdW0uaCIKLSNkZWZpbmUgUGxhdGZvcm1NZWRpYUVu
Z2luZUNsYXNzTmFtZSBNZWRpYVBsYXllclByaXZhdGUKICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVS
UlkpCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogI2RlZmluZSBQ
bGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oCmluZGV4IDMwNDA3
Y2Q3YWRiYzU4NmE5ZWQxYmQyOTU1ZGUzYTI3OThjYThiNmMuLjE4MzY3M2IxM2RlNmU4YzY3ZWQ5
YzIyZmE5ZTQzZWRjZDE1NDliZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKQEAgLTM4LDEzICszOCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOwogdHlwZWRlZiBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllciBQbGF0Zm9ybUxheWVyOwogfTsKLSNlbGlmIFBMQVRGT1JNKENI
Uk9NSVVNKQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJMYXllcjsKLX0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLXR5cGVkZWYgV2ViS2l0OjpXZWJMYXllciBQbGF0Zm9ybUxheWVyOwotfQog
I2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIFVTRShURVhUVVJFX01BUFBFUl9DQUlSTykgfHwgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKaW5kZXggNDllMjg5OWNl
MjY1ZDYzOGI2YjM4ODgxZmM4OWRmODJjMmExMWFkNi4uNGE5N2JkNDRhMDAwZThiNDYxYjIyMmIz
ODA2YThiYTVkOGRmMTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFU
Rk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJX
SU4pKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJXSU4pKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCkBAIC0xODUsNyArMTg1LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4p
KQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogZ2V0Q29tcG9z
aXRlRm9udFJlZmVyZW5jZUZvbnREYXRhKE5TRm9udCAqa2V5KSBjb25zdDsKICAgICBOU0ZvbnQq
IGdldE5TRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhLmZvbnQoKTsgfQogI2Vs
aWYgKFBMQVRGT1JNKFdYKSAmJiBPUyhEQVJXSU4pKSAKQEAgLTE5MywxMSArMTkzLDExIEBAIHB1
YmxpYzoKICAgICBOU0ZvbnQqIGdldE5TRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1E
YXRhLm5zRm9udCgpOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JN
KENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikp
CisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpCiAgICAg
Q0ZEaWN0aW9uYXJ5UmVmIGdldENGU3RyaW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVz
LCBGb250T3JpZW50YXRpb24pIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFdYKSAmJiBP
UyhEQVJXSU4pKSB8fCBVU0UoSEFSRkJVWlopCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oV1gpICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikKICAgICBib29sIGNhblJlbmRl
ckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiwgc2l6ZV90KSBjb25zdDsK
ICNlbmRpZgogCkBAIC0zMDAsNyArMzAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPFNp
bXBsZUZvbnREYXRhPiBicm9rZW5JZGVvZ3JhcGg7CiAgICAgICAgIFJlZlB0cjxTaW1wbGVGb250
RGF0YT4gdmVydGljYWxSaWdodE9yaWVudGF0aW9uOwogICAgICAgICBSZWZQdHI8U2ltcGxlRm9u
dERhdGE+IHVwcmlnaHRPcmllbnRhdGlvbjsKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9S
TShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIG11
dGFibGUgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IGNvbXBvc2l0ZUZvbnRSZWZl
cmVuY2VzOwogI2VuZGlmCiAgICAgICAgIApAQCAtMzE3LDExICszMTcsMTEgQEAgcHJpdmF0ZToK
ICAgICBmbG9hdCBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZPUk0o
V1gpICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV1gpICYm
IE9TKERBUldJTikpCiAgICAgbXV0YWJsZSBIYXNoTWFwPHVuc2lnbmVkLCBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiA+IG1fQ0ZTdHJpbmdBdHRyaWJ1dGVzOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRG
T1JNKFdYKSAmJiBPUyhEQVJXSU4pKSB8fCBVU0UoSEFSRkJVWlopCisjaWYgUExBVEZPUk0oTUFD
KSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikKICAgICBt
dXRhYmxlIE93blB0cjxIYXNoTWFwPFN0cmluZywgYm9vbD4gPiBtX2NvbWJpbmluZ0NoYXJhY3Rl
clNlcXVlbmNlU3VwcG9ydDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCmluZGV4IDNh
NWVjODUzZDQ1OWFjODc4OWYzMzY3M2U3ZjEyZTI1NmRhNjYwYzYuLjE1ODEzMTE4NWQyYmIzM2Ix
ZjBmZGFjZjA4MzYwNDUwZTJlY2VkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCkBAIC0zMzEs
MTIgKzMzMSw3IEBAIGJvb2wgRkVDdXN0b21GaWx0ZXI6OnJlc2l6ZUNvbnRleHQoY29uc3QgSW50
U2l6ZSYgbmV3Q29udGV4dFNpemUpCiAgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2ZyYW1lQnVmZmVyKTsKICAgICBtX2NvbnRl
eHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX2Rlc3RUZXh0
dXJlKTsKICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gY2xlYXIgdGhlIG91dHB1dCBidWZmZXIgYW55
d2F5LCBzbyB3ZSBjYW4gc2FmZWx5IGluaXRpYWxpemUgdGhlIGRlc3RpbmF0aW9uIHRleHR1cmUg
d2l0aCBnYXJiYWdlIGRhdGEuCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgLy8gRklYTUU6
IEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJERGlyZWN0IGlzIG5vdCBpbXBsZW1lbnRlZCBv
biBDaHJvbWl1bS4KLSAgICBtX2NvbnRleHQtPnRleEltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBuZXdDb250ZXh0U2l6ZS53
aWR0aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCAwKTsKLSNlbHNlCiAgICAgbV9j
b250ZXh0LT50ZXhJbWFnZTJERGlyZWN0KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAw
LCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgbmV3Q29udGV4dFNpemUud2lkdGgoKSwgbmV3Q29u
dGV4dFNpemUuaGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfQllURSwgMCk7Ci0jZW5kaWYKICAgICBtX2NvbnRleHQtPmZyYW1l
YnVmZmVyVGV4dHVyZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgbV9kZXN0VGV4dHVyZSwgMCk7CiAKICAgICAvLyBXZSBkb24ndCBuZWVkIHRoZSBkZXB0aCBi
dWZmZXIgZm9yIHRoZSB0ZXh0dXJlIGZyYW1lYnVmZmVyLCBpZiB3ZSBhbHJlYWR5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaApp
bmRleCBiNDQ2MTAxMjA2NzcxM2Q1MWE1YTFiNzBmZDAxMTFjNjJmZjIxZjc2Li5jODI3YTBlZmE0
ODU1MDUxMDEwMDJkZGZjOWRiMzY4N2M5NWM4N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmgKQEAgLTQ2LDkgKzQ2LDYg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3Mg
SW1hZ2VEYXRhOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotY2xhc3MgRHJhd2luZ0J1ZmZlclBy
aXZhdGU7Ci0jZW5kaWYKIAogLy8gTWFuYWdlcyBhIHJlbmRlcmluZyB0YXJnZXQgKGZyYW1lYnVm
ZmVyICsgYXR0YWNobWVudCkgZm9yIGEgY2FudmFzLiAgQ2FuIHB1Ymxpc2ggaXRzIHJlbmRlcmlu
ZwogLy8gcmVzdWx0cyB0byBhIFBsYXRmb3JtTGF5ZXIgZm9yIGNvbXBvc2l0aW5nLgpAQCAtMTcy
LDEwICsxNjksNiBAQCBwcml2YXRlOgogICAgIC8vIFRydWUgaWYgb3VyIGNvbnRlbnRzIGhhdmUg
YmVlbiBtb2RpZmllZCBzaW5jZSB0aGUgbGFzdCBwcmVzZW50YXRpb24gb2YgdGhpcyBidWZmZXIu
CiAgICAgYm9vbCBtX2NvbnRlbnRzQ2hhbmdlZDsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgIE93blB0cjxEcmF3aW5nQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fcGxhdGZvcm1MYXll
cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggMWI0MGEyOTU5
NDc4MjM4NzY0ODVkZTUzNGE5NWQxMzZiZGYzYTg2Ny4uOGI5OGU3ODA1MTA0MDllYWIwNDExYjAw
ZTVlMzY2OWI1NzZjYzQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC0y
OSwxMSArMjksNiBAQAogI2luY2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKLSNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0u
aD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KLSNlbmRpZgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNWI4N2M1NjhjYTUzNTcxNzU1ZjI5
YWQxZDIxODRiZDUyZDVhM2Y3NC4uNDAxYTE1Njk1N2Y5ZWY1YWJjNTQ0Nzg5MmNmOGMwNmRiNTBm
MDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE3MCwx
NyArMTcwLDExIEBAIFN0cmluZyBFeHRlbnNpb25zM0RPcGVuR0xDb21tb246OmdldFRyYW5zbGF0
ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0CiAKICAgICBTdHJpbmcgdHJhbnNs
YXRlZFNoYWRlclNvdXJjZTsKICAgICBTdHJpbmcgc2hhZGVySW5mb0xvZzsKLSAgICBpbnQgZXh0
cmFDb21waWxlT3B0aW9ucyA9IFNIX01BUF9MT05HX1ZBUklBQkxFX05BTUVTOworICAgIGludCBl
eHRyYUNvbXBpbGVPcHRpb25zID0gU0hfTUFQX0xPTkdfVkFSSUFCTEVfTkFNRVMgfCBTSF9DTEFN
UF9JTkRJUkVDVF9BUlJBWV9CT1VORFM7CiAKICAgICBpZiAobV9yZXF1aXJlc0J1aWx0SW5GdW5j
dGlvbkVtdWxhdGlvbikKICAgICAgICAgZXh0cmFDb21waWxlT3B0aW9ucyB8PSBTSF9FTVVMQVRF
X0JVSUxUX0lOX0ZVTkNUSU9OUzsKIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBD
aHJvbWl1bSBkb2VzIG5vdCB1c2UgdGhlIEFOR0xFIGJ1bmRsZWQgaW4gV2ViS2l0IHNvdXJjZSwg
YW5kIHRodXMKLSAgICAvLyBkb2VzIG5vdCB5ZXQgaGF2ZSB0aGUgc3ltYm9sIFNIX0NMQU1QX0lO
RElSRUNUX0FSUkFZX0JPVU5EUy4KLSAgICBleHRyYUNvbXBpbGVPcHRpb25zIHw9IFNIX0NMQU1Q
X0lORElSRUNUX0FSUkFZX0JPVU5EUzsKLSNlbmRpZgotCiAgICAgVmVjdG9yPEFOR0xFU2hhZGVy
U3ltYm9sPiBzeW1ib2xzOwogICAgIGJvb2wgaXNWYWxpZCA9IGNvbXBpbGVyLmNvbXBpbGVTaGFk
ZXJTb3VyY2UoZW50cnkuc291cmNlLnV0ZjgoKS5kYXRhKCksIHNoYWRlclR5cGUsIHRyYW5zbGF0
ZWRTaGFkZXJTb3VyY2UsIHNoYWRlckluZm9Mb2csIHN5bWJvbHMsIGV4dHJhQ29tcGlsZU9wdGlv
bnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9JbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5oCmluZGV4IGE0ZTcwNjY0ZDFlNmJhN2MxZTQ2YWNkODNhMTYwMzM2MGM3
ZjA3ZmMuLjRhNjU5YTFmNjgzMTI5OThmZDJhNmFjZjI2Y2FmZDQyZDkzOWM2ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rl
ci5oCkBAIC0xNDcsMjUgKzE0Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAg
ICAgICB9CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgdm9pZCBzZXRTa0JpdG1h
cChjb25zdCBTa0JpdG1hcCYgYml0bWFwKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2JpdG1h
cCA9IE5hdGl2ZUltYWdlU2tpYTo6Y3JlYXRlKGJpdG1hcCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjb25zdCBTa0JpdG1hcCYgZ2V0U2tCaXRtYXAoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbV9iaXRtYXAtPmJpdG1hcCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9p
ZCBzZXRNZW1vcnlBbGxvY2F0b3IoU2tCaXRtYXA6OkFsbG9jYXRvciogYWxsb2NhdG9yKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBtX2FsbG9jYXRvciA9IGFsbG9jYXRvcjsKLSAgICAgICAgfQot
Ci0gICAgICAgIFNrQml0bWFwOjpBbGxvY2F0b3IqIGFsbG9jYXRvcigpIGNvbnN0IHsgcmV0dXJu
IG1fYWxsb2NhdG9yOyB9Ci0jZW5kaWYKLQogICAgICAgICAvLyBVc2UgZml4IHBvaW50IG11bHRp
cGxpZXIgaW5zdGVhZCBvZiBpbnRlZ2VyIGRpdmlzaW9uIG9yIGZsb2F0aW5nIHBvaW50IG1hdGgu
CiAgICAgICAgIC8vIFRoaXMgbXVsdGlwbGVyIHByb2R1Y2VzIGV4YWN0bHkgdGhlIHNhbWUgcmVz
dWx0IGZvciBhbGwgdmFsdWVzIGluIHJhbmdlIDAgLSAyNTUuCiAgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBmaXhQb2ludFNoaWZ0ID0gMjQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAKaW5kZXggZTRmYmI1MmZkYWY2YmZl
NjFiMWFkNWY2N2VmMjcyMzkyNmNkZjAyNi4uY2QzYjAxMzc0OWY5ZDY2ZDk3ZGNkOTlmMDFlZTQ3
NzY4YjM5Njk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9M
ZXZlbERCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIv
TGV2ZWxEQkRhdGFiYXNlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxldmVsREJT
bGljZS5oIgogI2luY2x1ZGUgIkxldmVsREJXcml0ZUJhdGNoLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8aGVscGVycy9tZW1l
bnYvbWVtZW52Lmg+CiAjaW5jbHVkZSA8bGV2ZWxkYi9jb21wYXJhdG9yLmg+CiAjaW5jbHVkZSA8
bGV2ZWxkYi9kYi5oPgpAQCAtNDQsMTIgKzQ1LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkKLSNpbmNsdWRlIDxlbnZfaWRiLmg+Ci0jaW5jbHVkZSA8cHVibGljL1BsYXRmb3Jt
Lmg+Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShDSFJPTUlVTSkKIG5hbWVzcGFjZSBsZXZlbGRi
IHsKIAogc3RhdGljIEVudiogSURCRW52KCkKQEAgLTU4LDcgKzUzLDYgQEAgc3RhdGljIEVudiog
SURCRW52KCkKIH0KIAogfQotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQz
LDIyICsxMzcsNiBAQCBib29sIExldmVsREJEYXRhYmFzZTo6ZGVzdHJveShjb25zdCBTdHJpbmcm
IGZpbGVOYW1lKQogICAgIHJldHVybiBzLm9rKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGhpc3RvZ3Jh
bUZyZWVTcGFjZShjb25zdCBjaGFyKiB0eXBlLCBTdHJpbmcgZmlsZU5hbWUpCi17Ci0jaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0gICAgU3RyaW5nIG5hbWUgPSAiV2ViQ29yZS5JbmRleGVkREIuTGV2
ZWxEQi5PcGVuIiArIFN0cmluZyh0eXBlKSArICJGcmVlRGlza1NwYWNlIjsKLSAgICBsb25nIGxv
bmcgZnJlZURpc2tTcGFjZUluS0J5dGVzID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5h
dmFpbGFibGVEaXNrU3BhY2VJbkJ5dGVzKGZpbGVOYW1lKSAvIDEwMjQ7Ci0gICAgaWYgKGZyZWVE
aXNrU3BhY2VJbktCeXRlcyA8IDApIHsKLSAgICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9n
cmFtRW51bWVyYXRpb24oIldlYkNvcmUuSW5kZXhlZERCLkxldmVsREIuRnJlZURpc2tTcGFjZUZh
aWx1cmUiLCAxLypzYW1wbGUqLywgMi8qYm91bmRhcnkqLyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaW50IGNsYW1wZWREaXNrU3BhY2VLQnl0ZXMgPSBmcmVlRGlza1NwYWNlSW5LQnl0
ZXMgPiBJTlRfTUFYID8gSU5UX01BWCA6IGZyZWVEaXNrU3BhY2VJbktCeXRlczsKLSAgICBjb25z
dCB1aW50NjRfdCBoaXN0b2dyYW1NYXggPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMWU5KTsKLSAg
ICBDT01QSUxFX0FTU0VSVChoaXN0b2dyYW1NYXggPD0gSU5UX01BWCwgaGlzdG9ncmFtTWF4VG9v
QmlnKTsKLSAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMobmFtZS51
dGY4KCkuZGF0YSgpLCBjbGFtcGVkRGlza1NwYWNlS0J5dGVzLCAxLCBoaXN0b2dyYW1NYXgsIDEx
LypidWNrZXRzKi8pOwotI2VuZGlmCi19Ci0KIHN0YXRpYyB2b2lkIGhpc3RvZ3JhbUxldmVsREJF
cnJvcihjb25zdCBjaGFyKiBoaXN0b2dyYW1OYW1lLCBjb25zdCBsZXZlbGRiOjpTdGF0dXMmIHMp
CiB7CiAgICAgQVNTRVJUKCFzLm9rKCkpOwpAQCAtMTg4LDE0ICsxNjYsMTEgQEAgUGFzc093blB0
cjxMZXZlbERCRGF0YWJhc2U+IExldmVsREJEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCBjb25zdAogCiAgICAgaWYgKCFzLm9rKCkpIHsKICAgICAgICAgaGlzdG9ncmFtTGV2
ZWxEQkVycm9yKCJXZWJDb3JlLkluZGV4ZWREQi5MZXZlbERCT3BlbkVycm9ycyIsIHMpOwotICAg
ICAgICBoaXN0b2dyYW1GcmVlU3BhY2UoIkZhaWx1cmUiLCBmaWxlTmFtZSk7CiAKICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gb3BlbiBMZXZlbERCIGRhdGFiYXNlIGZyb20gJXM6ICVzIiwg
ZmlsZU5hbWUuYXNjaWkoKS5kYXRhKCksIHMuVG9TdHJpbmcoKS5jX3N0cigpKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaGlzdG9ncmFtRnJlZVNwYWNlKCJTdWNjZXNz
IiwgZmlsZU5hbWUpOwotCiAgICAgT3duUHRyPExldmVsREJEYXRhYmFzZT4gcmVzdWx0ID0gYWRv
cHRQdHIobmV3IExldmVsREJEYXRhYmFzZSk7CiAgICAgcmVzdWx0LT5tX2RiID0gYWRvcHRQdHIo
ZGIpOwogICAgIHJlc3VsdC0+bV9jb21wYXJhdG9yQWRhcHRlciA9IGNvbXBhcmF0b3JBZGFwdGVy
LnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQppbmRleCBjMGJhODc0Njg3MzE4NjBiYTAxYTQwNGIxNmI4NjkxNjE3YjdiOWUz
Li4yZmI0ZGRlYzI3NmEwMjVkN2Y1NGQ2ZmI3MjkwMGQ5N2UzNjg1NDU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC02NjUsNyAr
NjY1LDYgQEAgc3RhdGljIGJvb2wgcnViYmVyQmFuZGluZ0VuYWJsZWRGb3JTeXN0ZW0oKQogICAg
IH0KICAgICByZXR1cm4gZW5hYmxlZDsKIH0KLSNlbmRpZgogCiBib29sIFNjcm9sbEFuaW1hdG9y
TWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwCmluZGV4
IGRlM2VlNWFhZmRhYWFlYzVkMDA3NDUyNDU0MGFmMjhlNjA4Njk3ZmEuLjljYjEzN2I0NDY0ODMy
Y2FhOTBhMjY2NDZhMTA1MzJkZjUxMDUxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogQmxvYlJlZ2lzdHJ5JiBi
bG9iUmVnaXN0cnkoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC00Nyw3ICs0
Niw2IEBAIEJsb2JSZWdpc3RyeSYgYmxvYlJlZ2lzdHJ5KCkKICNlbmRpZgogICAgIHJldHVybiBp
bnN0YW5jZTsKIH0KLSNlbmRpZgogCiBCbG9iUmVnaXN0cnk6On5CbG9iUmVnaXN0cnkoKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKaW5kZXggYmMxMjg0OTk0NGEzZGYxN2NlYjAzNDdlNzM4NGNhMmQ0YWFlMjIzYi4uNjFj
ZjM5YWE2NzA0YmJjYjYyZDY0ZjJmMWZiNmRlMTU2ZjVmN2M1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00OSw3
ICs0OSw2IEBAIEJsb2JSZWdpc3RyeUltcGw6On5CbG9iUmVnaXN0cnlJbXBsKCkKIHsKIH0KIAot
I2lmICFQTEFURk9STShDSFJPTUlVTSkKIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEJs
b2JSZWdpc3RyeUltcGwmPihibG9iUmVnaXN0cnkoKSkuY3JlYXRlUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50KTsKQEAgLTcxLDEzICs3MCw2IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxv
YlJlc291cmNlSGFuZGxlQ29uc3RydWN0b3IoKQogICAgIH0KIH0KIAotI2Vsc2UKLQotc3RhdGlj
IHZvaWQgcmVnaXN0ZXJCbG9iUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3RvcigpCi17Ci19Ci0jZW5k
aWYKLQogUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQmxvYlJlZ2lzdHJ5SW1wbDo6Y3JlYXRl
UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50KQogewogICAgIFJlZlB0cjxCbG9iUmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IEJsb2JSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQXN5bmMoZ2V0QmxvYkRhdGFGcm9tVVJM
KHJlcXVlc3QudXJsKCkpLCByZXF1ZXN0LCBjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAppbmRleCA2
Yzg1ZmQ5Zjg2OGJlMGFlMGQ4NmViYTQyM2Q0Y2ZmZTVmYzEzYzQ1Li42YmM5M2U4MzVjMDYwOWJj
NmQ0ODQzZjJlNjI0ZGNkMDJhMDdlZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcApAQCAtNDYsMTcgKzQ2
LDQgQEAgdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2V0TmV0d29ya1N0YXRlQ2hhbmdlZEZ1
bmN0aW9uKHZvaWQoKmZ1bmN0aW9uKSgpKQogICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0
aW9uID0gZnVuY3Rpb247CiB9CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLXZvaWQgTmV0d29y
a1N0YXRlTm90aWZpZXI6OnNldE9uTGluZShib29sIG9uTGluZSkKLXsKLSAgICBpZiAobV9pc09u
TGluZSA9PSBvbkxpbmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNPbkxpbmUgPSBvbkxp
bmU7Ci0KLSAgICBpZiAobV9uZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24pCi0gICAgICAgIG1f
bmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKCk7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oQ0hS
T01JVU0pIHx8IFBMQVRGT1JNKEVGTCkKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oCmluZGV4IGQxMmQ0YjUxZTI4
NjM1OTBhZmQ1Y2QyODJlNzZkN2Q4MmY2MDdmNjYuLjYxZGVjZjVmZGUwMmJmM2MyYjBhYzFjNmYz
ZjI5MTEyNzY4ZWMzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgKQEAgLTcxLDggKzcxLDYgQEAgcHVibGljOgog
CiAjaWYgKFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChRVF9OT19CRUFSRVJNQU5BR0VNRU5UKSkK
ICAgICB2b2lkIHNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wpOwotI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgdm9pZCBzZXRPbkxpbmUoYm9vbCk7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKEJMQUNLQkVSUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMjkyMzBkYjBiMTM1YjU0MGM5NDdjOTdkYmE4ODk2
NGZjM2RkNjFmMy4uNzNhNjZjOWFlYWQxMmNkODI1NDhhMDBmNDBkMTVmMmI3YmE5ODRiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaApAQCAtMjgsMTIgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFz
cyBXZWJDb29raWVKYXI7Ci19Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUg
PHFnbG9iYWwuaD4KICNlbmRpZgpAQCAtNjcsMTEgKzYxLDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25z
dCA9IDA7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAvLyBGSVhNRTogV3JhcCBXZWJD
b29raWVKYXIgaW50byBhIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNy
b3NzLXBsYXRmb3JtLgotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUph
cigpIGNvbnN0ID0gMDsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
Ym9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0ID0gMDsgLy8gRklYTUU6
IFJlY29uY2lsZSB3aXRoIFJlc291cmNlSGFuZGxlOjpmb3JjZUNvbnRlbnRTbmlmZmluZygpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oCmluZGV4IGZjZGMwMTRjMTMyYmJjZmIxYzFhODBhMmU0OWM2OTYzNjIwNWNhY2Qu
LmFmNmI5MjFhZDY2NWQ2NDlkNzg3Mjg5MjlkYmQxYWE1Zjc1MDYzNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgK
QEAgLTExNiw5ICsxMTYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oV0lO
KSAmJiBVU0UoQ0ZORVRXT1JLKQogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIHsgcmV0dXJuIHRy
dWU7IH0KICNlbmRpZgotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRG93bmxvYWREYXRhKFJlc291cmNlSGFuZGxlKiwgaW50IC8qZGF0YUxlbmd0aCovKSB7
IH0KLSNlbmRpZgogCiAjaWYgVVNFKFNPVVApCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXgg
NWVjOTRhNDA0ZGIwOGZmOTE0NDVkY2Q3MDRhNTM1MzZhMGMyZjc3Ny4uMDE5MDI1OTlhZWNhOWQz
NjRjZDNkNTFlNmYwNzY2NmQ1Y2ZjM2ZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC01MjYsNyArNTI2
LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjp1cGRhdGVSZXNvdXJjZVJlcXVlc3QoSFRU
UEJvZHlVcGRhdGVQb2xpY3kgYm9keVBvbGljeSkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0o
TUFDKSAmJiAhVVNFKENGTkVUV09SSykgJiYgIVVTRShTT1VQKSAmJiAhUExBVEZPUk0oQ0hST01J
VU0pICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgIVBMQVRG
T1JNKE1BQykgJiYgIVVTRShDRk5FVFdPUkspICYmICFVU0UoU09VUCkgJiYgIVBMQVRGT1JNKFFU
KSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkKIHVuc2lnbmVkIGluaXRpYWxpemVNYXhpbXVtSFRU
UENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogewogICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUg
bG9hZGVyIHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiBpc3N1ZWQgcGFyYWxsZWwgbG9hZCByZXF1
ZXN0cy4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhl
bmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlv
bkNGLmNwcAppbmRleCAxYjYxNmViNjBiZTk2ZmE1MWJlY2Y4MTY4MWQ1ZmZlZmE5YzViOTRjLi42
ZDE5ZWQxZDhlYWEwYjczYjQ4NTg5YjUzZmQyYzliZTQ0NTI0NGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgogCi0j
aWYgKCFQTEFURk9STShNQUMpICYmICFQTEFURk9STShDSFJPTUlVTSkpIHx8IFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjaWYgIVBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwNzAKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaCIKICNp
bmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCkBAIC03Niw0ICs3Niw0IEBA
IHNpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVf
dCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2Vu
ZGlmIC8vICghUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pKSB8fCBQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2VuZGlm
IC8vICFQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXdOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05v
bmUuY3BwCmluZGV4IGVkOGY4OTAzNWM0MzEwM2U3YjZiYzhiMDljMTNkMDY3YTNkNDkyOGYuLjBj
OTQ1ZmI2NGJiYTZkZTQyYmE4OTdkMzI3NWZlZmY0ZDVmMmJhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVGb2N1c091dEV2ZW50KCkKIC8vIHBvcnRzIHVzaW5nIFBsdWdpblZpZXcs
IGJ1dCB1bnRpbCB0aGVuLCBpZiBuZXcgZnVuY3Rpb25zIGxpa2UgdGhpcyBhcmUgCiAvLyBhZGRl
ZCwgcGxlYXNlIG1ha2Ugc3VyZSB0aGV5IGhhdmUgdGhlIHByb3BlciBwbGF0Zm9ybSAjaWZzIHNv
IHRoYXQgY2hhbmdlcwogLy8gZG8gbm90IGJyZWFrIHBvcnRzIHdobyBjb21waWxlIGJvdGggdGhp
cyBmaWxlIGFuZCBQbHVnaW5WaWV3LmNwcC4gICAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShFRkwpIHx8IChPUyhXSU5DRSkgJiYgIVBMQVRGT1JN
KFFUKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiAhT1MoV0lOQ0UpKQorI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oRUZMKSB8fCAoT1MoV0lOQ0UpICYmICFQTEFURk9STShRVCkpIHx8IChQTEFU
Rk9STShRVCkgJiYgIU9TKFdJTkNFKSkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
IHZvaWQgUGx1Z2luVmlldzo6a2VlcEFsaXZlKE5QUCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCA5NzU3Y2M0MWY4Y2VjYTE1NzA1MjZlOWYwOWI0ZmVlYmY1NzA4Y2M5
Li4yMjU0YTk4ODE0ZDgyYTlhNDBmNTg2NmIyOWMwMjRmMjE3OTg1ZTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjYsMTQgKzEyNiw2IEBACiAjaW5jbHVkZSA8d3Rm
L2R0b2EuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiRmls
dGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUg
IkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2hyb21pdW0uaCIKLSNp
bmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQV9WMikKICNpbmNsdWRlICJDRE0uaCIKICNpbmNsdWRlICJNb2NrQ0RNLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3Nzk1NDRmNjI5OTI4MGRhYzI4
ZGI4N2MyODNlOTk1YTUxNmQ5OTY2Li44OWI1MzVkMmU2OTdiMWMxNzM5YTFhZDdmOGQwYjEzZDE0
YzM1Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTc2NSw3ICs3
NjUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUm
IGVjKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAgIHJlcXVlc3Qu
c2V0SFRUUE1ldGhvZChtX21ldGhvZCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRG
T1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAgICByZXF1ZXN0LnNl
dFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUik7CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196812</attachid>
            <date>2013-04-07 13:39:31 -0700</date>
            <delta_ts>2013-04-07 17:51:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114081-20130407223916.patch</filename>
            <type>text/plain</type>
            <size>87809</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBjOGU4ZjdmNGFlZTVi
MzJmNDA3ZTYzOWMzNzc0M2QyZWZmZTc5Mi4uMTA2ZjgzZGQ3OWM2ZjI2MTc0NTJjYzdjMjdlOTZl
MjlhZGYxNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NyBAQAorMjAxMy0wNC0wNyAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFp
bmluZyBQTEFURk9STShDSFJPTUlVTSktZ3VhcmRlZCBjb2RlIGluIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDA4MQorCisgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIFBMQVRGT1JNKENIUk9NSVVNKSBidWlsZCBndWFyZHMuIFRo
ZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBndWFyZHMKKyAgICAgICAgdGhhdCBtb3N0IGxpa2Vs
eSBhcHBseSBvbmx5IHRvIENocm9taXVtLCBsaWtlIE9TKEFORFJPSUQpIG9yIFVTRShTS0lBX09O
X01BQ19DSFJPTUlVTSksCisgICAgICAgIGJ1dCByZW1vdmFsIG9mIHRoZXNlIHNob3VsZCBnbyBp
bnRvIHNlcGFyYXRlIHBhdGNoZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY29u
ZmlnLmg6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZUNhY2hlOjpjYW5DYWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlVVJMRm9yQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWRSZXNvdXJjZSk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojps
aXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpzYXRpc2ZpZXNXZWJHTFJlcXVpcmVtZW50cyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpw
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZlcjo6fkZlYXR1cmVPYnNlcnZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6CisgICAgICAgIChDb250ZXh0TWVu
dSk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vQ3Vyc29yLmg6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6
CisgICAgICAgIChQYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV4cG9y
dE1hY3Jvcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2lsbERlY29kZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpkaWREZWNv
ZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluc3RydW1lbnRhdGlvbjo6d2ls
bFJlc2l6ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtSW5zdHJ1bWVudGF0aW9u
OjpkaWRSZXNpemVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAo
UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNj
cm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRp
bWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlT3ZlcmhhbmdBcmVhcyk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRQb2ludC5oOgorICAgICAgICAoRmxvYXRQb2ludCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6CisgICAgICAgIChGbG9hdFJlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAoRmxvYXRTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6d2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKEZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKEZvbnRDYWNoZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhCdWZmZXI6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAg
ICAoR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRzQmFj
a2dyb3VuZENvbG9yQ29udGVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5o
OgorICAgICAgICAoSWNvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6Cisg
ICAgICAgIChJbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERh
dGEuaDoKKyAgICAgICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKERlcml2ZWRGb250RGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6cmVzaXplQ29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRHJhd2luZ0J1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6Z2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURl
Y29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMZXZlbERCRGF0YWJhc2U6Om9wZW4pOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JS
ZWdpc3RyeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmg6CisgICAg
ICAgIChOZXR3b3JrU3RhdGVOb3RpZmllcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3Qp
OgorCiAyMDEzLTA0LTA3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAg
ICAgICB0YWJsZSBlbGVtZW50IG1heSBnZXQgbGFyZ2VyIHdoZW4gaXRzIGNvbnRlbnRzIGFyZSBy
ZWNyZWF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCmluZGV4IGM3YzE5YmZlZDQxZTc2OWRlM2JkYzNk
MDQ1ZDA4MzY0Yjg3M2MxZmQuLjM5OWJjNzQ5NDY3ZTllMmRmZDQ0YjlmY2VkMmY5YWY3YzdkOTFl
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIGJvb2wgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6aXNNZWRpYVNvdXJjZUVuYWJsZWQgPSBmYWxzZTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShC
TEFDS0JFUlJZKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZP
Uk0oV0lOKQogICAgIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNWaWRlb1RyYWNrRW5h
YmxlZCA9IHRydWU7CiAjZWxzZQogICAgIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNW
aWRlb1RyYWNrRW5hYmxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
ZmlnLmggYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAppbmRleCBjYTMxZjg4N2E4NzBjMjYxMzFm
ZmUyNjQ2ODE0YmJkZTMyMmMzZjEyLi5hZDM3ZTI4NWU5MzVmYTA5MWRhOTg3Y2Y2ODk4NWU5ZWRk
Y2FmOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jb25maWcuaApAQCAtMTIwLDE1ICsxMjAsNiBAQAogI2RlZmluZSBXVEZfVVNFX05F
V19USEVNRSAxCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0KLS8vIENocm9taXVtIHVzZXMgdGhpcyBmaWxlIGluc3RlYWQgb2YgSmF2YVNjcmlwdENv
cmUvY29uZmlnLmggdG8gY29tcGlsZQotLy8gSmF2YVNjcmlwdENvcmUvd3RmIChjaHJvbWl1bSBk
b2Vzbid0IGNvbXBpbGUgdGhlIHJlc3Qgb2YgSlNDKS4gVGhlcmVmb3JlLAotLy8gdGhpcyBkZWZp
bmUgaXMgcmVxdWlyZWQuCi0jZGVmaW5lIFdURl9DSEFOR0VTIDEKLQotI2VuZGlmIC8qIFBMQVRG
T1JNKENIUk9NSVVNKSAqLwotCiAjaWYgVVNFKENHKQogI2lmbmRlZiBDR0ZMT0FUX0RFRklORUQK
ICNpZmRlZiBfX0xQNjRfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IGQ2
Njc1MDAxMmU2ZmI0ZjlhN2E0YzQyMDk1ZmUzYmFmNjQyMDhiYWIuLjM1YmM1MmQ2NmRlYjYxNWI5
YTM0Zjc5MTVlOGNhMzVlMDhhODc1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvUGFnZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8ICFkZWZpbmVkKE5ERUJVRykKKyNp
ZiAhZGVmaW5lZChOREVCVUcpCiAKICNkZWZpbmUgUENMT0coLi4uKSBMT0coUGFnZUNhY2hlLCAi
JSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgp
LmRhdGEoKSkKICAgICAKQEAgLTgzLDI5ICs4Myw4IEBAIGVudW0gUmVhc29uRnJhbWVDYW5ub3RC
ZUluUGFnZUNhY2hlIHsKIH07CiBDT01QSUxFX0FTU0VSVChOdW1iZXJPZlJlYXNvbnNGcmFtZXND
YW5ub3RCZUluUGFnZUNhY2hlIDw9IHNpemVvZih1bnNpZ25lZCkqOCwgUmVhc29uRnJhbWVDYW5u
b3RCZUluUGFnZUNhY2hlRG9lc05vdEZpdEluQml0bWFwKTsKIAotI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQotc3RhdGljIGludCBpbmRleE9mU2luZ2xlQml0KGludDMyX3QgdikKLXsKLSAgICBpbnQg
aW5kZXggPSAwOwotICAgIGlmICh2ICYgMHhGRkZGMDAwMCkKLSAgICAgICAgaW5kZXggPSAxNjsK
LSAgICBpZiAodiAmIDB4RkYwMEZGMDApCi0gICAgICAgIGluZGV4ICs9IDg7Ci0gICAgaWYgKHYg
JiAweEYwRjBGMEYwKQotICAgICAgICBpbmRleCArPSA0OwotICAgIGlmICh2ICYgMHhDQ0NDQ0ND
QykKLSAgICAgICAgaW5kZXggKz0gMjsKLSAgICBpZiAodiAmIDB4QUFBQUFBQUEpCi0gICAgICAg
IGluZGV4ICs9IDE7Ci0gICAgcmV0dXJuIGluZGV4OwotfQotI2VuZGlmIC8vIFBMQVRGT1JNKENI
Uk9NSVVNKQotCiBzdGF0aWMgdW5zaWduZWQgbG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKEZyYW1l
KiBmcmFtZSwgaW50IGluZGVudExldmVsKQogewotI2lmZGVmIE5ERUJVRwotICAgIFVOVVNFRF9Q
QVJBTShpbmRlbnRMZXZlbCk7Ci0jZW5kaWYKICAgICBQQ0xPRygiKy0tLSIpOwogICAgIGlmICgh
ZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAgIFBDTE9HKCIgICAt
VGhlcmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7CkBAIC0yOTYsMjQgKzI3NSwxMSBA
QCBzdGF0aWMgdm9pZCBsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbihQYWdlKiBwYWdlKQogICAgICAg
ICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oIlBhZ2VDYWNoZS5G
cmFtZVJlamVjdFJlYXNvbkJ5UGFnZSIsIGksIE51bWJlck9mUmVhc29uc0ZyYW1lc0Nhbm5vdEJl
SW5QYWdlQ2FjaGUpOwogICAgICAgICB9CiAgICAgfQotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgIC8vIFRoaXMgc3RyYW5nZWx5IHNwZWNpZmljIGhpc3RvZ3JhbSBpcyBwYXJ0aWN1bGFyIHRv
IGNocm9taXVtOiBhcyBvZiAyMDEyLTAzLTE2LCB0aGUgRnJhbWVDbGllbnRJbXBsIGFsd2F5cyBk
ZW5pZXMgY2FjaGluZywgc28KLSAgICAvLyBvZiBwYXJ0aWN1bGFyIGludGVyZXN0IGFyZSBzb2xp
dGFyeSByZWFzb25zIG90aGVyIHRoYW4gdGhlIGZyYW1lUmVqZWN0UmVhc29ucy4gSWYgd2UgZGlk
bid0IGdldCB0byB0aGUgQ2xpZW50RGVuaWVzQ2FjaGluZywgd2UKLSAgICAvLyB0b29rIHRoZSBl
YXJseSBleGl0IGZvciB0aGUgYm9yaW5nIHJlYXNvbiBOb0RvY3VtZW50TG9hZGVyLCBzbyB3ZSBz
aG91bGQgaGF2ZSBvbmx5IG9uZSByZWFzb24sIGFuZCBub3QgdHdvLgotICAgIC8vIEZJWE1FOiBy
ZW1vdmUgdGhpcyBoaXN0b2dyYW0gYWZ0ZXIgZGF0YSBpcyBnYXRoZXJlZC4KLSAgICBpZiAoZnJh
bWVSZWFzb25Db3VudCA9PSAyKSB7Ci0gICAgICAgIEFTU0VSVChmcmFtZVJlamVjdFJlYXNvbnMg
JiAoMSA8PCBDbGllbnREZW5pZXNDYWNoaW5nKSk7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNp
bmdsZVJlYXNvbkZvclJlamVjdGluZ0ZyYW1lT3RoZXJUaGFuQ2xpZW50RGVuaWVzQ2FjaGluZyA9
IGZyYW1lUmVqZWN0UmVhc29ucyAmIH4oMSA8PCBDbGllbnREZW5pZXNDYWNoaW5nKTsKLSAgICAg
ICAgQ09NUElMRV9BU1NFUlQoTnVtYmVyT2ZSZWFzb25zUGFnZXNDYW5ub3RCZUluUGFnZUNhY2hl
IDw9IDMyLCBSZWFzb25QYWdlQ2Fubm90QmVJblBhZ2VDYWNoZURvZXNOb3RGaXRJbkludDMyKTsK
LSAgICAgICAgY29uc3QgaW50IGluZGV4ID0gaW5kZXhPZlNpbmdsZUJpdChzdGF0aWNfY2FzdDxp
bnQzMl90PihzaW5nbGVSZWFzb25Gb3JSZWplY3RpbmdGcmFtZU90aGVyVGhhbkNsaWVudERlbmll
c0NhY2hpbmcpKTsKLSAgICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRp
b24oIlBhZ2VDYWNoZS5GcmFtZVJlamVjdFJlYXNvbkJ5UGFnZVdoZW5TaW5nbGVFeGNsdWRpbmdG
cmFtZUNsaWVudCIsIGluZGV4LCBOdW1iZXJPZlJlYXNvbnNQYWdlc0Nhbm5vdEJlSW5QYWdlQ2Fj
aGUpOwotICAgIH0KLSNlbmRpZgogCiAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51
bWVyYXRpb24oIlBhZ2VDYWNoZS5GcmFtZVJlamVjdFJlYXNvbkNvdW50QnlQYWdlIiwgZnJhbWVS
ZWFzb25Db3VudCwgMSArIE51bWJlck9mUmVhc29uc0ZyYW1lc0Nhbm5vdEJlSW5QYWdlQ2FjaGUp
OwogfQogCi0jZW5kaWYgCisjZW5kaWYgLy8gIWRlZmluZWQoTkRFQlVHKQogCiBQYWdlQ2FjaGUq
IHBhZ2VDYWNoZSgpCiB7CkBAIC0zNzIsNyArMzM4LDcgQEAgYm9vbCBQYWdlQ2FjaGU6OmNhbkNh
Y2hlKFBhZ2UqIHBhZ2UpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8ICFkZWZpbmVkKE5ERUJVRykKKyNp
ZiAhZGVmaW5lZChOREVCVUcpCiAgICAgbG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24ocGFnZSk7CiAj
ZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5k
ZXggZmFiODc1ZThiOTJlNWY4ZjhhYmZkNGE3MTk2NTY1MWVmMDkyYTdlMy4uMWMxNjA1YWU1ZWZi
Y2M1NTZlNDY3ODc3YmYwNDlkZjJiOWRkMjBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKQEAgLTU4LDEwICs1OCw2IEBACiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTE4Nyw3ICsxODMsNyBAQCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcm
IHR5cGUsIENhbnZhcwogI2lmIEVOQUJMRShXRUJHTCkgICAgCiAgICAgU2V0dGluZ3MqIHNldHRp
bmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKICAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGlu
Z3MtPndlYkdMRW5hYmxlZCgpCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oUVQpCisjaWYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKFFUKQogICAgICAgICAmJiBzZXR0aW5n
cy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQogI2VuZGlmCiAgICAgICAgICkgewpA
QCAtMTk1LDExICsxOTEsNiBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxl
bWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZhcwogICAgICAgICAvLyBB
Y2NlcHQgdGhlIGxlZ2FjeSAid2Via2l0LTNkIiBuYW1lIGFzIHdlbGwgYXMgdGhlIHByb3Zpc2lv
bmFsICJleHBlcmltZW50YWwtd2ViZ2wiIG5hbWUuCiAgICAgICAgIGJvb2wgaXMzZENvbnRleHQg
PSAodHlwZSA9PSAid2Via2l0LTNkIikgfHwgKHR5cGUgPT0gImV4cGVyaW1lbnRhbC13ZWJnbCIp
OwogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhBTkRST0lEKQotICAgICAgICAvLyBO
b3cgdGhhdCBXZWJHTCBpcyByYXRpZmllZCwgd2Ugd2lsbCBhbHNvIGFjY2VwdCAid2ViZ2wiIGFz
IHRoZSBjb250ZXh0IG5hbWUgaW4gQ2hyb21lLgotICAgICAgICBpczNkQ29udGV4dCB8PSAodHlw
ZSA9PSAid2ViZ2wiKTsKLSNlbmRpZgotCiAgICAgICAgIGlmIChpczNkQ29udGV4dCkgewogICAg
ICAgICAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczNkKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CkBAIC01MTIsMTEgKzUwMyw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICAgICBpZiAo
c2l6ZS53aWR0aCgpICogc2l6ZS5oZWlnaHQoKSA8IHNldHRpbmdzLT5taW5pbXVtQWNjZWxlcmF0
ZWQyZENhbnZhc1NpemUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgaWYgKCFXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNhbkFjY2Vs
ZXJhdGUyZENhbnZhcygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQogICAgIHJl
dHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggYmY3MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQw
NDljMDNlNGQwYTVjYi4uNTUwMDcwNzczYTkxNjdmZjExY2Y3YWZiNWZlZjQ3MTU5NmVmMTg2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMzMsNyArMzMsNyBA
QAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaWYg
UExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKFFUKQorI2lmIFBMQVRGT1JNKFFUKQogI2Rl
ZmluZSBEZWZhdWx0SW50ZXJwb2xhdGlvblF1YWxpdHkgSW50ZXJwb2xhdGlvbk1lZGl1bQogI2Vs
aWYgVVNFKENHKQogI2RlZmluZSBEZWZhdWx0SW50ZXJwb2xhdGlvblF1YWxpdHkgSW50ZXJwb2xh
dGlvbkxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggM2E4
NzZjZGE2YmU3NDZiY2ZiNTU0MmM5YTlhY2Y1NjkyYjU0ZTczYS4uMjYwZDBhNjc1OWY1MmE2NTM2
ZDA2MDM0MDcyMmVmNWE5YTRkOTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC05NDIsNyArOTQyLDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2Fk
TmV4dFNvdXJjZUNoaWxkKCkKICAgICBsb2FkUmVzb3VyY2UobWVkaWFVUkwsIGNvbnRlbnRUeXBl
LCBrZXlTeXN0ZW0pOwogfQogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogc3RhdGljIEtVUkwg
Y3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHBh
dGgpCiB7CiAgICAgLy8gS1VSTCBzaG91bGQgaGF2ZSBhIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHVy
bCBmcm9tIGEgcGF0aCwgYnV0IGl0IGRvZXMgbm90LiBUaGlzIGZ1bmN0aW9uCkBAIC05NjEsNyAr
OTYwLDYgQEAgc3RhdGljIEtVUkwgY3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZShjb25zdCBTdHJpbmcmIHBhdGgpCiAjZW5kaWYKICAgICByZXR1cm4gdXJsOwogfQotI2Vu
ZGlmCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwmIGlu
aXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCiB7CkBAIC05ODQsNyArOTgyLDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVz
b3VyY2UoY29uc3QgS1VSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnQKICAgICAv
LyBUaGUgcmVzb3VyY2UgZmV0Y2ggYWxnb3JpdGhtIAogICAgIG1fbmV0d29ya1N0YXRlID0gTkVU
V09SS19MT0FESU5HOwogCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIElmIHRoZSB1
cmwgc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSwgcGFzcyB0aGUg
dXJsIG9mIHRoZSBjYWNoZWQgZmlsZQogICAgIC8vIHRvIHRoZSBtZWRpYSBlbmdpbmUuCiAgICAg
QXBwbGljYXRpb25DYWNoZUhvc3QqIGNhY2hlSG9zdCA9IGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1l
bnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKQEAgLTk5NywxOCArOTk0LDE1IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwmIGluaXRpYWxV
UkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIFNldCBtX2N1cnJlbnRTcmMgKmJlZm9yZSogY2hhbmdp
bmcgdG8gdGhlIGNhY2hlIHVybCwgdGhlIGZhY3QgdGhhdCB3ZSBhcmUgbG9hZGluZyBmcm9tIHRo
ZSBhcHAKICAgICAvLyBjYWNoZSBpcyBhbiBpbnRlcm5hbCBkZXRhaWwgbm90IGV4cG9zZWQgdGhy
b3VnaCB0aGUgbWVkaWEgZWxlbWVudCBBUEkuCiAgICAgbV9jdXJyZW50U3JjID0gdXJsOwogCi0j
aWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmIChyZXNvdXJjZSkgewogICAgICAgICB1cmwg
PSBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKHJlc291cmNlLT5wYXRo
KCkpOwogICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2Ug
LSB3aWxsIGxvYWQgZnJvbSBhcHAgY2FjaGUgLT4gJXMiLCB1cmxGb3JMb2dnaW5nTWVkaWEodXJs
KS51dGY4KCkuZGF0YSgpKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSAtIG1fY3VycmVudFNyYyAtPiAlcyIsIHVybEZvckxv
Z2dpbmdNZWRpYShtX2N1cnJlbnRTcmMpLnV0ZjgoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGY2NTExZWE5OWU1NTkyMDRhNzFjNjdl
M2FhNGM3Y2MxY2Y2ZGNkMmUuLjFlNzFjZjZjNjRjNGEyOGZiODQwYjNmNDQ5MmI1ODNhMTMyYWQ4
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xMDYy
LDcgKzEwNjIsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXNldCgpCiAgICAgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKLSNpZiAoIVBMQVRGT1JNKFdJTikgJiYgIShQTEFURk9S
TShDSFJPTUlVTSkgJiYgT1MoV0lORE9XUykpKSB8fCBPUyhXSU5DRSkKKyNpZiAhUExBVEZPUk0o
V0lOKSB8fCBPUyhXSU5DRSkKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnBsYXRmb3JtSGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIGNvbnN0IFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CkBAIC0xMjk5LDcgKzEyOTksNyBAQCB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAg
ICAgICAgIGludCBsaXN0SW5kZXggPSB0b1JlbmRlckxpc3RCb3gocmVuZGVyZXIoKSktPmxpc3RJ
bmRleEF0T2Zmc2V0KHRvSW50U2l6ZShsb2NhbE9mZnNldCkpOwogICAgICAgICBpZiAobGlzdElu
ZGV4ID49IDApIHsKICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZEZvcm1Db250cm9sKCkpIHsK
LSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZShs
aXN0SW5kZXgsIG1vdXNlRXZlbnQtPm1ldGFLZXkoKSwgbW91c2VFdmVudC0+c2hpZnRLZXkoKSk7
CiAjZWxzZQogICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobGlzdEluZGV4LCBt
b3VzZUV2ZW50LT5jdHJsS2V5KCksIG1vdXNlRXZlbnQtPnNoaWZ0S2V5KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKaW5kZXggY2ZkZjUwYjFkMTI1YmE0NGFlYWM3OGM4Yzg3
ZTFkMjE3YWQ4ZWIwNi4uYjQ0NjRjMzFlOGI3OGFiYzAzMjFhOGY1ODA3NzNmNzFiYjhiMGE3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC0xNjYsNyArMTY2LDYgQEAg
dm9pZCBNZWRpYURvY3VtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICBpZiAoIXRhcmdldE5vZGUpCiAgICAgICAgIHJldHVybjsKIAotI2lmICFQTEFURk9STShDSFJP
TUlVTSkKICAgICBpZiAoSFRNTFZpZGVvRWxlbWVudCogdmlkZW8gPSBhbmNlc3RvclZpZGVvRWxl
bWVudCh0YXJnZXROb2RlKSkgewogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuY2xpY2tFdmVudCkgewogICAgICAgICAgICAgaWYgKCF2aWRlby0+Y2FuUGxheSgpKSB7
CkBAIC0xODAsNyArMTc5LDYgQEAgdm9pZCBNZWRpYURvY3VtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSNlbmRp
ZgogCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAm
JiBldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpIHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCog
dmlkZW8gPSBkZXNjZW5kZW50VmlkZW9FbGVtZW50KHRhcmdldE5vZGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCmluZGV4IDU5YjJmNmM2Mjc0MzQ5
OGM0NmZkNGFmZGRhODRjMWJkMzI1NmJjYjYuLjNiMmEwMGUzNmMxYTc0N2MwYzA5ZGVjNTU3NDA5
NzA2YjI3MGVhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVm
ZmVycy5jcHAKQEAgLTExNCwxMSArMTE0LDcgQEAgYm9vbCBFWFREcmF3QnVmZmVyczo6c2F0aXNm
aWVzV2ViR0xSZXF1aXJlbWVudHMoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiB3ZWJnbENvbnQKICAg
ICBQbGF0Zm9ybTNET2JqZWN0IGZibyA9IGNvbnRleHQtPmNyZWF0ZUZyYW1lYnVmZmVyKCk7CiAg
ICAgY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
UiwgZmJvKTsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGJ1ZmZlciA9IDA7IC8vIENocm9taXVtIGRvZXNuJ3QgYWxsb3cgaW5pdCBkYXRhIGZvciBk
ZXB0aC9zdGVuY2lsIHRldHh1cmVzLgotI2Vsc2UKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGJ1
ZmZlcls0XSA9IHsgMCwgMCwgMCwgMCB9OyAvLyB0ZXh0dXJlcyBhcmUgcmVxdWlyZWQgdG8gYmUg
aW5pdGlhbGl6ZWQgZm9yIG90aGVyIHBvcnRzLgotI2VuZGlmCiAgICAgYm9vbCBzdXBwb3J0c0Rl
cHRoID0gKGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0NIUk9NSVVNX2Rl
cHRoX3RleHR1cmUiKQogICAgICAgICB8fCBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBv
cnRzKCJHTF9PRVNfZGVwdGhfdGV4dHVyZSIpCiAgICAgICAgIHx8IGNvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FSQl9kZXB0aF90ZXh0dXJlIikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXgg
MzdkMGI0OTFkOTUwNTQ0NjliM2U0MGIwYThlNmI4OTcyOTdlMWQ1ZS4uOWEyODgwZThlYmIzY2Nj
ZGYxNDZlMzBjZjhkMjJjODM2N2U3ZTY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MjgsMTEgKzQyOCw3IEBA
IFBhc3NPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVuCiAgICAgfQogCiAgICAgYXR0cmlidXRlcy5ub0V4dGVu
c2lvbnMgPSB0cnVlOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIGF0dHJpYnV0ZXMuc2hh
cmVSZXNvdXJjZXMgPSB0cnVlOwotI2Vsc2UKICAgICBhdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2Vz
ID0gZmFsc2U7Ci0jZW5kaWYKICAgICBhdHRyaWJ1dGVzLnByZWZlckRpc2NyZXRlR1BVID0gdHJ1
ZTsKICAgICBhdHRyaWJ1dGVzLnRvcERvY3VtZW50VVJMID0gZG9jdW1lbnQtPnRvcERvY3VtZW50
KCktPnVybCgpOwogCkBAIC00NTAsMTMgKzQ0Niw2IEBAIFBhc3NPd25QdHI8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVu
CiAgICAgT3duUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gcmVuZGVyaW5nQ29udGV4dCA9IGFk
b3B0UHRyKG5ldyBXZWJHTFJlbmRlcmluZ0NvbnRleHQoY2FudmFzLCBjb250ZXh0LCBhdHRyaWJ1
dGVzKSk7CiAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSAgICBpZiAoIXJlbmRlcmluZ0NvbnRleHQtPm1fZHJhd2luZ0J1
ZmZlcikgewotICAgICAgICBjYW52YXMtPmRpc3BhdGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxz
ZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBXZWJHTCBjb250ZXh0LiIpKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotI2VuZGlmCi0KICAgICByZXR1cm4gcmVuZGVyaW5nQ29u
dGV4dC5yZWxlYXNlKCk7CiB9CiAKQEAgLTQ4MywxMyArNDcyLDYgQEAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQqIHBhc3NlZENh
bnZhcywgUGEKICAgICBtX21heFZpZXdwb3J0RGltc1swXSA9IG1fbWF4Vmlld3BvcnREaW1zWzFd
ID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpNQVhf
VklFV1BPUlRfRElNUywgbV9tYXhWaWV3cG9ydERpbXMpOwogCi0jaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0gICAgLy8gQ3JlYXRlIHRoZSBEcmF3aW5nQnVmZmVyIGFuZCBpbml0aWFsaXplIHRoZSBw
bGF0Zm9ybSBsYXllci4KLSAgICBEcmF3aW5nQnVmZmVyOjpQcmVzZXJ2ZURyYXdpbmdCdWZmZXIg
cHJlc2VydmUgPSBtX2F0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyID8gRHJhd2luZ0J1
ZmZlcjo6UHJlc2VydmUgOiBEcmF3aW5nQnVmZmVyOjpEaXNjYXJkOwotICAgIERyYXdpbmdCdWZm
ZXI6OkFscGhhUmVxdWlyZW1lbnQgYWxwaGEgPSBtX2F0dHJpYnV0ZXMuYWxwaGEgPyBEcmF3aW5n
QnVmZmVyOjpBbHBoYSA6IERyYXdpbmdCdWZmZXI6Ok9wYXF1ZTsKLSAgICBtX2RyYXdpbmdCdWZm
ZXIgPSBEcmF3aW5nQnVmZmVyOjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBjbGFtcGVkQ2FudmFz
U2l6ZSgpLCBwcmVzZXJ2ZSwgYWxwaGEpOwotI2VuZGlmCi0KICAgICBpZiAobV9kcmF3aW5nQnVm
ZmVyKQogICAgICAgICBtX2RyYXdpbmdCdWZmZXItPmJpbmQoKTsKIApAQCAtNzY0LDExICs3NDYs
NiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9D
YW52YXMoKQogICAgIGlmIChtX2NvbnRleHQtPmxheWVyQ29tcG9zaXRlZCgpICYmICFtX2F0dHJp
YnV0ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKGNhbnZhcygpLT5idWZmZXIoKSk7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBp
ZiAobV9kcmF3aW5nQnVmZmVyKQotICAgICAgICAgICAgbV9kcmF3aW5nQnVmZmVyLT5wYWludENv
bXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoY2FudmFzKCktPmJ1ZmZlcigpKTsKLSNlbmRpZgotCiAg
ICAgICAgIGNhbnZhcygpLT5tYWtlUHJlc2VudGF0aW9uQ29weSgpOwogICAgIH0gZWxzZQogICAg
ICAgICBjYW52YXMoKS0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CkBAIC00NjkyLDExICs0NjY5
LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZvcmNlUmVzdG9yZUNvbnRleHQoKQog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgaWYgKG1fZHJhd2luZ0J1ZmZlcikKLSAgICAgICAgcmV0dXJuIG1fZHJhd2lu
Z0J1ZmZlci0+cGxhdGZvcm1MYXllcigpOwotI2VuZGlmCi0KICAgICByZXR1cm4gbV9jb250ZXh0
LT5wbGF0Zm9ybUxheWVyKCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMDU3NDk1OGRiYzA0
ZWVkNTJmNmQ3OTNkYjQ1ZGMwNzMwZjVmOTUwYS4uNDk2NzI5ZTUwMmU0OWQwNGQzODdkYzM5ODhh
YTE3NTI2NWIyMmRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTc5LDEwICs3OSw2IEBACiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgInBsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZl
bnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFy
KiBjb25zdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFdmVudE5hbWUgPSAicmVxdWVzdEFuaW1hdGlv
bkZyYW1lIjsKQEAgLTUyOCwxMCArNTI0LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZERpc3BhdGNoWEhSTG9hZEV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnUKIAog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMSgiaW5zdHJ1
bWVudGF0aW9uIiwgSW5zdHJ1bWVudGF0aW9uRXZlbnRzOjpQYWludCwgSW5zdHJ1bWVudGF0aW9u
RXZlbnRBcmd1bWVudHM6OlBhZ2VJZCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBsb25nIGxv
bmc+KHJlbmRlcmVyLT5mcmFtZSgpLT5wYWdlKCkpKTsKLSNlbmRpZgotCiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxQYWlu
dChyZW5kZXJlci0+ZnJhbWUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggZDAzOWU4Njk1MGQxZWY3NjNmYjlk
ZDRkMWY2MWZmZmYwZjIyYzkyNS4uMDcyOGFhZWU5ZjdhYjVkN2IwNWEwNGY1ZGIzYjY3MWQ5MjE2
YTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcApAQCAtMjI1LDkgKzIyNSw2IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6c3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbihFcnJvclN0cmluZyosIGJvb2wqIHJl
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQmVnaW5GcmFtZSgpCiB7Ci0jaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAoIndlYmtpdCIsIElu
c3RydW1lbnRhdGlvbkV2ZW50czo6QmVnaW5GcmFtZSk7Ci0jZW5kaWYKICAgICBtX3BlbmRpbmdG
cmFtZVJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0
aW1lc3RhbXAoKSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDE3NWE1YzVhNjdkZjMxN2MwNmZjMzAyNDhiYzg5NWEyMjg1YWMxN2UuLjAzZDcw
ZDQxMzUzZDI4ZjIyMzM3YjYzYTg0NmQ0Mjc4Y2JiMmFmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMzQ1LDEzICszNDUsMTAgQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IHdlIHNob3VsZCBmaXggdGhlIGRlc2ln
biB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIGEgcGxhdGZvcm0gaWZkZWYgaGVyZQotI2lmICFQ
TEFURk9STShDSFJPTUlVTSkKICAgICBpZiAobV9yZXF1ZXN0LmNhY2hlUG9saWN5KCkgPT0gUmV0
dXJuQ2FjaGVEYXRhRG9udExvYWQgJiYgIW1fbWFpblJlc291cmNlLT53YXNDYW5jZWxlZCgpKSB7
CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVz
b3VyY2VMb2FkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIG1haW5S
ZWNlaXZlZEVycm9yKG1fbWFpblJlc291cmNlLT5yZXNvdXJjZUVycm9yKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCmluZGV4IDkwMjEyNmE5YWZhNDFiYTdkZjk0
ZjE3Y2ZjZjI5NTJiNGNkNGU5NzMuLmY1Mzk3YWJlZTI4MTNkNzFjYmZhYTE1OTVjNjM2NzU1MTE3
M2JjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKQEAgLTM5LDEx
ICszOSw2IEBAIEZlYXR1cmVPYnNlcnZlcjo6RmVhdHVyZU9ic2VydmVyKCkKIAogRmVhdHVyZU9i
c2VydmVyOjp+RmVhdHVyZU9ic2VydmVyKCkKIHsKLSNpZiBQTEFURk9STShDSFJPTVVNKQotICAg
IC8vIFdlIGFsd2F5cyBsb2cgUGFnZURlc3RydWN0aW9uIHNvIHRoYXQgd2UgaGF2ZSBhIHNjYWxl
IGZvciB0aGUgcmVzdCBvZiB0aGUgZmVhdHVyZXMuCi0gICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlz
dG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgUGFnZURlc3RydWN0
aW9uLCBOdW1iZXJPZkZlYXR1cmVzKTsKLSNlbmRpZgotCiAgICAgdXBkYXRlTWVhc3VyZW1lbnRz
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5
c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCmlu
ZGV4IDE4NjY0MmY4NTZjZjA3YTk2ODg3YjBlODc5MjA1ODUyMzQyZDk2YzYuLmJmZjRmOTIzOWI1
MDQ1ZWIzODkxZWUzMGYwMTRlMTEyMDQ2MTk1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQXN5bmNGaWxlU3lzdGVtLmNwcApAQCAtMzksNyArMzksNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9STShHVEspICYmICFQ
TEFURk9STShCTEFDS0JFUlJZKSAmJiAhUExBVEZPUk0oRUZMKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShCTEFDS0JFUlJZKSAmJiAhUExBVEZPUk0oRUZMKQogYm9vbCBBc3luY0Zp
bGVTeXN0ZW06OmlzQXZhaWxhYmxlKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKaW5kZXggZWU3OTlkY2RkNzlkYzUwOTJiMWQwODBj
N2U5ODgzZmI3OTI2ODdiOS4uZWYyZGJiYmRmMmZhMDhlZjc3NjY4YTU5Yzk4NjhiMTNlOTgyODBi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCkBAIC05NSw4ICs5NSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIC8vIEtlZXAg
dGhpcyBpbiBzeW5jIHdpdGggdGhlIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIHR5cGVkZWYKICAg
ICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBtX3BsYXRmb3JtRGVzY3JpcHRpb247Ci0j
ZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4g
bV9pdGVtczsKICNlbHNlCiAgICAgICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbjsKICNpZiBPUyhXSU5DRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmgKaW5kZXggNzMxNzE2ZjkzODRlODczNWJkMDc3MTBmNjcwNWM5MGQ2Njgx
ODRhMC4uZDVkNjlhNzExN2ViMDA0NDY5NzEyNzZhNDAzZjRlNmFkOWRhZDFkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTE5NywyMCArMTk3LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNoZWNrZWQ7CiAgICAgICAgIGJvb2wg
ZW5hYmxlZDsKICAgICB9OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgc3RydWN0IFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiB7Ci0gICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNj
cmlwdGlvbigpCi0gICAgICAgICAgICA6IHR5cGUoQWN0aW9uVHlwZSkKLSAgICAgICAgICAgICwg
YWN0aW9uKENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQotICAgICAgICAgICAgLCBjaGVja2Vk
KGZhbHNlKQotICAgICAgICAgICAgLCBlbmFibGVkKHRydWUpIHsgfQotICAgICAgICBDb250ZXh0
TWVudUl0ZW1UeXBlIHR5cGU7Ci0gICAgICAgIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbjsKLSAg
ICAgICAgU3RyaW5nIHRpdGxlOwotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBzdWJN
ZW51SXRlbXM7Ci0gICAgICAgIGJvb2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBlbmFibGVkOwot
ICAgIH07CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0
aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCmluZGV4IDY1NTEyNTI3NjIwZTI1
OGFhNWM2MDk1YjU1ZTZmODYwYWJhNTg1MTMuLjg5YThlMTcyNDQ3MGViMzQ2MDQzODc3OGQwMTEz
NWE0OTc1NjQwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCkBAIC02MCw3ICs2MCw3IEBA
IHR5cGVkZWYgSElDT04gSENVUlNPUjsKICNlbmRpZgogCiAvLyBMb29rcyBsaWtlIGl0J3MganVz
dCBQTEFURk9STShXWCkgYW5kIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHN0aWxsIG5vdCB1c2luZyB0
aGlzPwotI2lmIFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQor
I2lmIFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCiAjZGVmaW5lIFdURl9VU0VfTEFaWV9OQVRJVkVf
Q1VSU09SIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAKaW5kZXgg
NGQzMDJlYjhiYWQ4OTk2Nzc0OWRkNWVjZWZjMGQ3NjQ1Y2MyNjg3NC4uOTc2YjkwODE2ZGRiYWRi
ODcyYzdiYjE5MjQ2OGViMTlkZGViZjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRh
LmNwcApAQCAtNTMsNyArNTMsNiBAQCBEcmFnRGF0YTo6RHJhZ0RhdGEoY29uc3QgU3RyaW5nJiwg
Y29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogfQogI2VuZGlm
CiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBpbnQgRHJhZ0RhdGE6Om1vZGlmaWVyS2V5U3Rh
dGUoKSBjb25zdAogewogICAgIGJvb2wgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtl
eTsKQEAgLTc3LDcgKzc2LDYgQEAgU3RyaW5nIERyYWdEYXRhOjpkcm9wcGVkRmlsZVN5c3RlbUlk
KCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAjZW5kaWYKLSNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IGQ2
Mzk2OTMxOGIwYTdhY2E5NTM1YTQ1YWI1ZGY4NTdkYWU0MzMzYmMuLmZlOGNkYmM4OTZlMDE1OWQw
MzBkNTY5ZTkzNDViODljNTRiZmFiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApA
QCAtNjEsOCArNjEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEYXRhT2JqZWN0R3Rr
OwogfQogdHlwZWRlZiBXZWJDb3JlOjpEYXRhT2JqZWN0R3RrKiBEcmFnRGF0YVJlZjsKLSNlbGlm
IFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIkRyYWdEYXRhUmVmLmgiCiAjZWxpZiBQTEFU
Rk9STShFRkwpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCiB0eXBlZGVmIHZvaWQqIERyYWdEYXRh
UmVmOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGRkOTcwZDI5
MzY5MmU5OTM4OWFiZmQxYTNmZmY4NzRjNDY1MGE4M2EuLjU4MWFiMjQzOGFmOTRkOTJiY2VlNDc5
ODljYjA4MDk1MDFlYWZkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Ry
YWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCkBAIC00
Miw4ICs0Miw2IEBAIFFUX0VORF9OQU1FU1BBQ0UKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hEcmFnSW1hZ2U7Ci0jZWxpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDE4MjNmYWJiZWI2ZDBhZWZmMTgwMGU0NDEyYjliMzJlNTJmNGI0NDYuLjQzZTAxZjE0ZDE3NjQ0
NGI5OTc1YmIyZjBmMmQ0MDcxMTA0Yzk5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTI4MiwxMiArMjgyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBTdHJpbmcgc25hcHNob3R0ZWRQbHVnSW5MYWJlbFRpdGxlKCk7CiAgICAgU3RyaW5n
IHNuYXBzaG90dGVkUGx1Z0luTGFiZWxTdWJ0aXRsZSgpOwogCi0jaWYgIVBMQVRGT1JNKENIUk9N
SVVNKQogI2RlZmluZSBXRUJfVUlfU1RSSU5HKHN0cmluZywgZGVzY3JpcHRpb24pIFdlYkNvcmU6
OmxvY2FsaXplZFN0cmluZyhzdHJpbmcpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkdfS0VZKHN0cmlu
Zywga2V5LCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKGtleSkKIAogICAg
IFN0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KTsKLSNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRl
eCAwOGI2ODY1YzliMzcwN2ZkYWUxMTcwZDg3YWZlZjg1NDVmODU4M2U3Li5kYjZmMmVmNDgzOGI4
ZjkyMzI0N2U0NjIxYWUxNTRmNDhlY2NiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LCBi
b29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7CiAgICAgU3RyaW5nIHBs
YWluVGV4dChGcmFtZSogPSAwKTsKICAgICAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0o
Q0hST01JVU0pIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0o
R1RLKQogICAgIGJvb2wgaXNTZWxlY3Rpb25Nb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTZWxl
Y3Rpb25Nb2RlKGJvb2wpOwogI2Vsc2UKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAg
IEhXTkQgbV9vd25lcjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKENI
Uk9NSVVNKQorI2lmIFBMQVRGT1JNKFFUKQogICAgIGJvb2wgbV9zZWxlY3Rpb25Nb2RlOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXhwb3J0
TWFjcm9zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5o
CmluZGV4IDljMjY0YzIwOWZmOTE3MTA5NDYzZDc5ZTMwMDllZjlkMTNkMjljYzIuLjhiM2M4OWI1
NzkyYjE3ODVlOTUzNTY0OTJjMzNjNWE0YTVjM2VkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtRXhwb3J0TWFjcm9zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1FeHBvcnRNYWNyb3MuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZWxz
ZSAvLyAhVVNFKEVYUE9SVF9NQUNST1MpCiAKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KFdJTkRPV1MpICYmICFkZWZpbmVkKEJVSUxESU5HX1dYX18pICYmICFDT01QSUxFUihHQ0MpCisj
aWYgT1MoV0lORE9XUykgJiYgIWRlZmluZWQoQlVJTERJTkdfV1hfXykgJiYgIUNPTVBJTEVSKEdD
QykKIAogI2lmIGRlZmluZWQoV0VCQ09SRV9JU19MSU5LRURfSU5fU0FNRV9CSU5BUlkpCiAjZGVm
aW5lIFdFQktJVF9FWFBPUlREQVRBIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNmJhYWQ5
YTY0NjM5NzkxYWEzMjAwZDgzMjcyMTcwMWYyMTIwNDdhMy4uMzBiNTlmZWY5YWVmZGNhZjY3NjY4
YmZmMjVjOTMxMDQxNGI3ZmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oCkBAIC0zNCwxMCArMzQsNiBAQAogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudCB7
CkBAIC03NiwzNiArNzIsMjQgQEAgcHJpdmF0ZToKIAogaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0
cnVtZW50YXRpb246OndpbGxEZWNvZGVJbWFnZShjb25zdCBTdHJpbmcmIGltYWdlVHlwZSkKIHsK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9CRUdJTjEoQ2F0ZWdvcnlO
YW1lLCBJbWFnZURlY29kZUV2ZW50LCBJbWFnZVR5cGVBcmd1bWVudCwgVFJBQ0VfU1RSX0NPUFko
aW1hZ2VUeXBlLmFzY2lpKCkuZGF0YSgpKSk7Ci0jZW5kaWYKICAgICBGQVNUX1JFVFVSTl9JRl9O
T19DTElFTlRfT1JfTk9UX01BSU5fVEhSRUFEKCk7CiAgICAgbV9jbGllbnQtPndpbGxEZWNvZGVJ
bWFnZShpbWFnZVR5cGUpOwogfQogCiBpbmxpbmUgdm9pZCBQbGF0Zm9ybUluc3RydW1lbnRhdGlv
bjo6ZGlkRGVjb2RlSW1hZ2UoKQogewotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNF
X0VWRU5UX0VORDAoQ2F0ZWdvcnlOYW1lLCBJbWFnZURlY29kZUV2ZW50KTsKLSNlbmRpZgogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0NMSUVOVF9PUl9OT1RfTUFJTl9USFJFQUQoKTsKICAgICBtX2Ns
aWVudC0+ZGlkRGVjb2RlSW1hZ2UoKTsKIH0KIAogaW5saW5lIHZvaWQgUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb246OndpbGxSZXNpemVJbWFnZShib29sIHNob3VsZENhY2hlKQogewotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UX0JFR0lOMShDYXRlZ29yeU5hbWUsIEltYWdl
UmVzaXplRXZlbnQsIENhY2hlZEFyZ3VtZW50LCBzaG91bGRDYWNoZSk7Ci0jZW5kaWYKICAgICBG
QVNUX1JFVFVSTl9JRl9OT19DTElFTlRfT1JfTk9UX01BSU5fVEhSRUFEKCk7CiAgICAgbV9jbGll
bnQtPndpbGxSZXNpemVJbWFnZShzaG91bGRDYWNoZSk7CiB9CiAKIGlubGluZSB2b2lkIFBsYXRm
b3JtSW5zdHJ1bWVudGF0aW9uOjpkaWRSZXNpemVJbWFnZSgpCiB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfRU5EMChDYXRlZ29yeU5hbWUsIEltYWdlUmVzaXplRXZl
bnQpOwotI2VuZGlmCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fQ0xJRU5UX09SX05PVF9NQUlOX1RI
UkVBRCgpOwogICAgIG1fY2xpZW50LT5kaWRSZXNpemVJbWFnZSgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgKaW5kZXggOWEzMTI2
MDkwMjk2YzExMDRmZGVjYjRhN2E2MDdmMDIwMzE2N2ZmMC4uYTg2YmUwMTcwOWFhODZmZTg5YTEw
MjRmYTMyYjgyZjc3NjhmNGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oCkBAIC0zNiw4ICszNiw2IEBAIE9CSkNfQ0xBU1MgTlNN
dXRhYmxlQXJyYXk7CiB0eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwogI2VsaWYgUExB
VEZPUk0oV1gpCiBjbGFzcyB3eE1lbnU7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIs
OSArNTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBHdGtNZW51KiBQbGF0
Zm9ybU1lbnVEZXNjcmlwdGlvbjsKICNlbGlmIFBMQVRGT1JNKFdYKQogICAgIHR5cGVkZWYgd3hN
ZW51KiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbjsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgIGNsYXNzIENvbnRleHRNZW51SXRlbTsKLSAgICB0eXBlZGVmIGNvbnN0IFZlY3RvcjxDb250
ZXh0TWVudUl0ZW0+KiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbjsKICNlbHNlCiAgICAgdHlwZWRl
ZiB2b2lkKiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oCmluZGV4IGYwZDY4
OTNhMjFjNTY4M2Y4MWU1YTgyZGE1YWI2OGY1MjEzZDFjOWEuLmQyMWI4NGJkMTg1OWQ5MWIxZDhk
NmE0ODE5ZjBjY2Y5MmJjYTYyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgKQEAgLTM3LDEzICszNyw2IEBACiBPQkpDX0NM
QVNTIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJTcGVlY2hTeW50aGVzaXplcjsK
LWNsYXNzIFdlYlNwZWVjaFN5bnRoZXNpemVyQ2xpZW50OwotfQotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogZW51bSBTcGVlY2hCb3VuZGFyeSB7CkBAIC05MywxMCArODYsNiBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8V2ViU3BlZWNoU3ludGhl
c2lzV3JhcHBlcj4gbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXI7CiAjZW5kaWYKLSNpZiBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICBPd25QdHI8V2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXplcj4gbV93
ZWJTcGVlY2hTeW50aGVzaXplcjsKLSAgICBPd25QdHI8V2ViS2l0OjpXZWJTcGVlY2hTeW50aGVz
aXplckNsaWVudD4gbV93ZWJTcGVlY2hTeW50aGVzaXplckNsaWVudDsKLSNlbmRpZgogfTsKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmgKaW5kZXggOTRkYjlmNzAwOTk4ZDY3OWE4MzdjYTczMjEzYWQxMWUw
MDUwZWI5Ny4uNTNkY2VhNGIyNDhjMWRhMWZjZDkyYWM3NjY3ZmU5OGZkNTY2ZWNhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTYwLDcgKzYw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVu
dCwKICAgICB9OwogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGVudW0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UgewogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgICAgICAgID0g
MCwKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiAgICAgICA9IDEgPDwgMCwK
QEAgLTgyLDEwICs4Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV93
aGVlbFRpY2tzWSgwKQogICAgICAgICAgICAgLCBtX2dyYW51bGFyaXR5KFNjcm9sbEJ5UGl4ZWxX
aGVlbEV2ZW50KQogICAgICAgICAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShm
YWxzZSkKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICAgICAgICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNl
KQotI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KERBUldJTikpCiAgICAgICAgICAgICAsIG1fcGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VO
b25lKQogICAgICAgICAgICAgLCBtX21vbWVudHVtUGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VOb25lKQogICAgICAgICAgICAgLCBtX3Njcm9sbENvdW50KDApCkBAIC0xMDUsMTAgKzEwMyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV93aGVlbFRpY2tzWSh3aGVl
bFRpY2tzWSkKICAgICAgICAgICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKICAgICAg
ICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCi0jaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
ICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhmYWxzZSkKLSNlbmRpZgotI2lmIFBM
QVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAgICAg
ICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAg
ICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAg
ICAgICwgbV9zY3JvbGxDb3VudCgwKQpAQCAtMTUxLDExICsxNDcsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGV4cGxpY2l0IFBsYXRmb3JtV2hlZWxFdmVudChjb25zdCBFdmFzX0V2
ZW50X01vdXNlX1doZWVsKik7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIGhhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXM7IH0KICAgICAgICAgdm9pZCBzZXRIYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGJvb2wgYikg
eyBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSBiOyB9Ci0jZW5kaWYKLSNpZiBQTEFURk9S
TShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICAgICAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBtX3BoYXNlOyB9CiAg
ICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1vbWVudHVtUGhhc2UoKSBjb25zdCB7IHJl
dHVybiBtX21vbWVudHVtUGhhc2U7IH0KICAgICAgICAgdW5zaWduZWQgc2Nyb2xsQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CkBAIC0xODQsMTAgKzE3OCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV93aGVlbFRpY2tzWTsKICAgICAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsKICAgICAgICAgYm9vbCBt
X2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKENIUk9NSVVNKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBtX2hhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXM7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9S
TShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2UgbV9waGFzZTsKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgbV9tb21lbnR1bVBo
YXNlOwogICAgICAgICB1bnNpZ25lZCBtX3Njcm9sbENvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDU3NzQyZTZmYjBiNDMzOWZjMjQzNDExYTIw
MjU0YWQzMjEzNDRiMWQuLjcyOWFmNzU3MmY4Nzk0YTU5N2ZkOTQwYzA5MDVjZjY0NDI0NWQ3NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0j
aWYgIUVOQUJMRShTTU9PVEhfU0NST0xMSU5HKSAmJiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBP
UyhEQVJXSU4pKQorI2lmICFFTkFCTEUoU01PT1RIX1NDUk9MTElORykKIFBhc3NPd25QdHI8U2Ny
b2xsQW5pbWF0b3I+IFNjcm9sbEFuaW1hdG9yOjpjcmVhdGUoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsQW5pbWF0b3Ioc2Ny
b2xsYWJsZUFyZWEpKTsKQEAgLTkzLDEyICs5Myw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogCiAgICAgYm9vbCBo
YW5kbGVkID0gZmFsc2U7CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgIU9TKERBUldJTikK
LSAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSA9IGUuaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcygpID8gU2Nyb2xsQnlQcmVjaXNlUGl4ZWwgOiBTY3JvbGxCeVBpeGVsOwotI2Vsc2UK
ICAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSA9IFNjcm9sbEJ5UGl4ZWw7Ci0jZW5k
aWYKLQogICAgIEludFNpemUgbWF4Rm9yd2FyZFNjcm9sbERlbHRhID0gbV9zY3JvbGxhYmxlQXJl
YS0+bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQb3Np
dGlvbigpOwogICAgIEludFNpemUgbWF4QmFja3dhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJs
ZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLT5taW5pbXVtU2Nyb2xs
UG9zaXRpb24oKTsKICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNjcm9sbERlbHRh
LndpZHRoKCkgPiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5k
ZXggMjg4OWY0MjA0NjQ4ZDFjOTBlZDNlMDM5NDA5OGMyZDFiYjE2NjMwOC4uZjMxNTYxODc2YjQz
YWVmNWRlODEyOGQ3YzNhNTk0ZmNiZjE1MDcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCi0jaWYg
UExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2UpIHsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IDI0NDJhOTYyYWIyNTEwMWQ5MDIw
NWY0ZTRkYjg2ZGZkNWViYmNkODkuLjU2MDc1MjQ0MjIxODVmYTNlZWFiOWY0NzkyYjFmNWUxZGI5
MGVlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
Tm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25l
LmNwcApAQCAtNDMsMTAgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5j
bHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMp
CiAjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKICNlbmRpZgpAQCAtNDM2LDEwICs0
MzIsNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0
aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcgogICAgIGlmICghbV9zY3JvbGxhYmxlQXJl
YS0+c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiAK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVDAoIndlYmtpdCIsICJTY3Jv
bGxBbmltYXRvck5vbmU6OnNjcm9sbCIpOwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogZ2V0IHRo
ZSB0eXBlIHBhc3NlZCBpbi4gTW91c2VXaGVlbCBjb3VsZCBhbHNvIGJlIGJ5IGxpbmUsIGJ1dCBz
aG91bGQgc3RpbGwgaGF2ZSBkaWZmZXJlbnQKICAgICAvLyBhbmltYXRpb24gcGFyYW1ldGVycyB0
aGFuIHRoZSBrZXlib2FyZC4KICAgICBQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CkBAIC01MzEsMTAg
KzUyMyw2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKFRp
bWVyPFNjcm9sbEFuaW1hdG9yTm9uZT4qIHRpbWVyKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6YW5pbWF0aW9uVGltZXJGaXJlZCgpCiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAg
VFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1l
ckZpcmVkIik7Ci0jZW5kaWYKLQogICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFdURjo6bW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAgZG91YmxlIGRlbHRhVG9OZXh0RnJhbWUgPSBj
ZWlsKChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKSAqIGtGcmFtZVJhdGUpIC8ga0ZyYW1lUmF0
ZSAtIChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKTsKICAgICBjdXJyZW50VGltZSArPSBkZWx0
YVRvTmV4dEZyYW1lOwpAQCAtNTU0LDkgKzU0Miw2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25l
OjphbmltYXRpb25UaW1lckZpcmVkKCkKICAgICAgICAgbV9hbmltYXRpb25BY3RpdmUgPSBmYWxz
ZTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlQwKCJ3
ZWJraXQiLCAiU2Nyb2xsQW5pbWF0b3JOb25lOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQiKTsKLSNl
bmRpZgogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChGbG9hdFNpemUoKSk7CiAKICAgICBpZiAo
IWNvbnRpbnVlQW5pbWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCAwYmEwNmQxNjRjYmRkYTViZGVkMzAxZDQzNDg1ODliMTMwMWZhYjI5Li45OWJlNGUwMzIz
NWE4OTZjMDY1NGU4MTYyNmY5NWI3NDY0NDg2ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtMTE1NiwxNCArMTE1Niw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBk
YXRlT3ZlcmhhbmdBcmVhcygpCiAgICAgSW50UmVjdCBob3Jpem9udGFsT3ZlcmhhbmdSZWN0Owog
ICAgIEludFJlY3QgdmVydGljYWxPdmVyaGFuZ1JlY3Q7CiAgICAgY2FsY3VsYXRlT3ZlcmhhbmdB
cmVhc0ZvclBhaW50aW5nKGhvcml6b250YWxPdmVyaGFuZ1JlY3QsIHZlcnRpY2FsT3ZlcmhhbmdS
ZWN0KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKEdyYXBoaWNzTGF5ZXIqIG92
ZXJoYW5nTGF5ZXIgPSBsYXllckZvck92ZXJoYW5nQXJlYXMoKSkgewotICAgICAgICBib29sIGhh
c092ZXJoYW5nQXJlYSA9ICFob3Jpem9udGFsT3ZlcmhhbmdSZWN0LmlzRW1wdHkoKSB8fCAhdmVy
dGljYWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgpOwotICAgICAgICBvdmVyaGFuZ0xheWVyLT5zZXRE
cmF3c0NvbnRlbnQoaGFzT3ZlcmhhbmdBcmVhKTsKLSAgICAgICAgaWYgKGhhc092ZXJoYW5nQXJl
YSkKLSAgICAgICAgICAgIG92ZXJoYW5nTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwotICAgIH0K
LSNlbmRpZgogICAgIGlmICghaG9yaXpvbnRhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkpCiAgICAg
ICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoaG9yaXpvbnRh
bE92ZXJoYW5nUmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CiAgICAgaWYgKCF2ZXJ0aWNhbE92
ZXJoYW5nUmVjdC5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggYjAzNTI1ZjVhYTJlNjc3MGJlMDk4NmE2OWZiODMzMGE1YzllNGNkOS4u
MDhhNjI2YjdjYzY4ZGU2Y2IwOTE4ZjEzY2VhZjhkYWQ5N2I0Y2NjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNDEsMTAgKzQxLDYgQEAKICNpbmNs
dWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgU2FtZVNpemVBc1Njcm9sbGFibGVBcmVhIHsK
QEAgLTE0NSwxMCArMTQxLDYgQEAgdm9pZCBTY3JvbGxhYmxlQXJlYTo6bm90aWZ5U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIAogdm9pZCBTY3JvbGxhYmxl
QXJlYTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsK
LSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVDAoIndlYmtpdCIsICJTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkIik7Ci0jZW5kaWYKLQogICAgIEludFBv
aW50IG9sZFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb24oKTsKICAgICAvLyBUZWxsIHRoZSBkZXJp
dmVkIGNsYXNzIHRvIHNjcm9sbCBpdHMgY29udGVudHMuCiAgICAgc2V0U2Nyb2xsT2Zmc2V0KHBv
c2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IGJiMWNlNTc5
NDIwZTc2MzJkY2EyMzk2NTg5YjY5NmJjMzhlYjE3MTguLmRiOTI1NTJjNjNiMWIwNjgwOGUyOTdl
Y2IzZmY5OTNmZWMzNjljNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtNDcsNyArNDcsNyBAQAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi0jaWYgKFBMQVRGT1JN
KENIUk9NSVVNKSAmJiAoT1MoVU5JWCkgJiYgIU9TKERBUldJTikpKSB8fCBQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oR1RLKQogLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSBzY3JvbGxiYXIgdGh1
bWIgYWZmZWN0cyB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgc3RlcHBlcnMsIHNvCiAvLyB3aGVuIHRo
ZSB0aHVtYiBtb3Zlcywgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIHRoZW0gZm9yIHBhaW50aW5nLgog
I2RlZmluZSBUSFVNQl9QT1NJVElPTl9BRkZFQ1RTX0JVVFRPTlMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwNmUxYzg2NzAxMmU4MGFhZmIyNWUxMjkxZWIyZDVjZDFiMGI0MGVmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyZVRleHRJbnB1dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0vLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgbW92ZWQgdG8gV2ViS2l0LCBiZWNhdXNlIGJyb3dzZXIgcHJvY2VzcyBuZWVkcyB0byB0
cmFjayBzZWN1cmUgaW5wdXQgc3RhdGUgYW55d2F5IHRvIG1hbmlwdWxhdGUgaW5wdXQgY29udGV4
dHMuCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKLSNpbmNsdWRlICJTZWN1
cmVUZXh0SW5wdXQuaCIKLQotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXZvaWQgZW5hYmxlU2VjdXJlVGV4dElucHV0KCkKLXsKLSAgICBpZiAoSXNT
ZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgRW5hYmxlU2Vj
dXJlRXZlbnRJbnB1dCgpOwotfQotCi12b2lkIGRpc2FibGVTZWN1cmVUZXh0SW5wdXQoKQotewot
ICAgIGlmICghSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmgKaW5kZXggNjA4YWE2MzhlNGQzMzkyZTIx
MTU2NGM2ZjMwNGY0N2M4ZGJhZDM1OS4uODMwZjRmZDFlMWY2Y2Q2ODM1NTcxMjQzNTkyMDJlMGFh
YTM3OTU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJlVGV4dElu
cHV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmgKQEAg
LTMzLDE1ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gT25jZSBlbmFibGVT
ZWN1cmVUZXh0SW5wdXQgaXMgY2FsbGVkLCBzZWN1cmUgdGV4dCBpbnB1dCBtb2RlIGlzIHNldCB1
bnRpbAotLy8gZGlzYWJsZVNlY3VyZVRleHRJbnB1dCBoYXMgYmVlbiBjYWxsZWQuCi12b2lkIGVu
YWJsZVNlY3VyZVRleHRJbnB1dCgpOwotdm9pZCBkaXNhYmxlU2VjdXJlVGV4dElucHV0KCk7Ci0K
LSNpZiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorLy8gRklYTUU6IFJlbW92
ZSB0aGVzZSBtZXRob2RzLiAoaHR0cDovL3drYi51Zy8xMTQxMjYpCiBpbmxpbmUgdm9pZCBlbmFi
bGVTZWN1cmVUZXh0SW5wdXQoKSB7IH0KIGlubGluZSB2b2lkIGRpc2FibGVTZWN1cmVUZXh0SW5w
dXQoKSB7IH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oCmluZGV4IGI2NmFlMWFiYzdkODAwM2M3
MDNkZWMwNGFjYzMzOWUwMjY1ZTY5YWQuLjcyNTIxNDkwNjJmNDMzYWIzM2M2ODgwYzk1NTRiOWIz
YmRmYWRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1p
bmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24u
aApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdm9pZCBkaXNhYmxl
U3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7
CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pCisjaWYgIVBMQVRG
T1JNKE1BQykKICAgICBpbmxpbmUgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSB7IH0K
ICAgICBpbmxpbmUgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpIHsgfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IDc3Y2NmOTFkNzBhMDQ2ZWFhZmE1ZmYxODFkOTIy
ZjIwNTAyMjAwZmEuLmU3ZjFlNTlkZDQzMWE3NjhkMThlMjFhZWQxZTdiMzBhNjAwYmI4ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0zMSwxMSArMzEsNiBAQAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAotI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQotI2luY2x1ZGUgIlBhZ2VDbGllbnRDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtV2lkZ2V0LmgiCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKQEAgLTk2LDggKzkxLDYgQEAgdHlwZWRlZiBQYWdlQ2xp
ZW50QmxhY2tCZXJyeSogUGxhdGZvcm1QYWdlQ2xpZW50OwogI2VsaWYgUExBVEZPUk0oRUZMKQog
Y2xhc3MgUGFnZUNsaWVudEVmbDsKIHR5cGVkZWYgUGFnZUNsaWVudEVmbCogUGxhdGZvcm1QYWdl
Q2xpZW50OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi10eXBlZGVmIFdlYkNvcmU6OlBhZ2VD
bGllbnRDaHJvbWl1bSogUGxhdGZvcm1QYWdlQ2xpZW50OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZv
cm1XaWRnZXQgUGxhdGZvcm1QYWdlQ2xpZW50OwogI2VuZGlmCkBAIC0yMjcsMTAgKzIyMCw2IEBA
IHB1YmxpYzoKICAgICBFdmFzX09iamVjdCogZXZhc09iamVjdCgpIHsgcmV0dXJuIG1fZXZhc09i
amVjdDsgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIGJv
b2wgaXNQbHVnaW5Db250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShRVCkKICAgICBRT2JqZWN0KiBiaW5kaW5nT2JqZWN0KCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRCaW5kaW5nT2JqZWN0KFFPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IDUyZjcxZGQz
ZjkwOTc2YjI4Y2Q5Y2VjNGJjMWE2Mzk1MWY5NjM5ZjcuLjNkZTdmYTM0NjllYTYyYjFiN2RmNTFh
NzhlZTA0ZTcwNzY1Mzg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAot
I2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShCTEFDS0JF
UlJZKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9STShRVCkKKyNpZiAhUExBVEZP
Uk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIVBM
QVRGT1JNKFFUKQogI2luY2x1ZGUgIkFOR0xFL1NoYWRlckxhbmcuaCIKICNlbHNlCiAjaW5jbHVk
ZSAiU2hhZGVyTGFuZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKaW5kZXggMTYzNmEwZTYxMzlhMzdmZTQ5NTY4ZDAyZGM2MzY4NjA5YTJhMzRk
Yy4uYjdkNWY5MjdlNjA1Y2ViODljY2QxNGI0NjVhY2FkMDRlOGY2OTE2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0yMDUsNyArMjA1
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJj
ZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJ
bnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3IpOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKLSNp
ZiBVU0UoQ0cpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpCisjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNL
QkVSUlkpCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0pIE9WRVJSSURFOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaAppbmRleCA3YmQyMWZjMzg3ZjRhMDZhYWIxYmE5
NTZkNzE3ODk2YWYwZjUzNTgyLi4xN2Q0ZWJhMjI1MzJiZDkzNzIyMzU0MGRmNzFiMzVjZTZhNTQx
N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBv
aW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5o
CkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEZsb2F0UG9pbnQ7CiB0eXBlZGVmIHN0cnVjdCBDR1Bv
aW50IENHUG9pbnQ7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENI
Uk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICNpZmRlZiBOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2lu
dCBOU1BvaW50OwogI2Vsc2UKQEAgLTE1NSw4ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0
b3IgQ0dQb2ludCgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpKSBcCi0gICAgICAgICYmICFkZWZpbmVkKE5T
R0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKQorI2lmIFBMQVRGT1JNKE1B
QykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMp
CiAgICAgRmxvYXRQb2ludChjb25zdCBOU1BvaW50Jik7CiAgICAgb3BlcmF0b3IgTlNQb2ludCgp
IGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UmVjdC5oCmluZGV4IDhiOGQzM2E3MTM0OGQ0Y2JiOWRlNmI0MzlhOTJhYmJiZTc1ODIxY2IuLjJi
N2FkNDdmY2ExMmI0MzYyOGIyOGFjNjU2ZGYxMjJmMTA5NzMzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCkBAIC0zNCw3ICszNCw3IEBACiB0eXBl
ZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpCiAj
aWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYg
c3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxzZQpAQCAtMjAwLDggKzIwMCw3IEBAIHB1YmxpYzoK
ICAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAh
ZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKKyNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTKQogICAgIEZsb2F0UmVjdChjb25zdCBOU1JlY3QmKTsKICAgICBvcGVyYXRvciBO
U1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFNpemUuaAppbmRleCBhZDRkZGZhMzExZjA2NTM2OTdhYzRhMzg3ZmFmOWU0M2VkOWNi
NGQ4Li41MjZlZDE0ZDUyOTZiZWE3YjAwMDYxZTY5ZDcxNTEyYjBmMGI0MjBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaApAQCAtNDksNyArNDksNyBA
QCBjbGFzcyBGbG9hdFNpemU7CiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lO
KSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgTlNTaXplOwogI2Vs
c2UKQEAgLTEzNSw5ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29u
c3Q7CiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkg
JiYgT1MoREFSV0lOKSkpIFwKLSAgICAgICAgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19T
QU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpIFwKLSAgICAgICAgfHwgKFBMQVRGT1JNKFFUKSAmJiBV
U0UoUVRLSVQpKQorI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRL
SVQpKQogICAgIGV4cGxpY2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRv
IHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkg
Y29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
aW5kZXggNzYzN2E4ZWVhOTVmNjMyMzAwNmFlOGUxNDJhN2VkNGU2OTU3MWIzNi4uZTE4YWM1Y2Uy
YzM3NjM1NTBkODYyODU0NzcxOGU3NzgyZGM3MzQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTIzNyw4ICsyMzcsNyBAQCBmbG9hdCBGb250Ojp3aWR0
aChjb25zdCBUZXh0UnVuJiBydW4sIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5h
bWUpIGNvbgogICAgIHJldHVybiB3aWR0aChydW4pOwogfQogCi0jaWYgIShQTEFURk9STShNQUMp
IHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkpCi0KKyNpZiAhUExBVEZPUk0o
TUFDKQogUGFzc093blB0cjxUZXh0TGF5b3V0PiBGb250OjpjcmVhdGVMYXlvdXQoUmVuZGVyVGV4
dCosIGZsb2F0LCBib29sKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpAQCAtMjUzLDcg
KzI1Miw2IEBAIGZsb2F0IEZvbnQ6OndpZHRoKFRleHRMYXlvdXQmLCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIDA7CiB9Ci0KICNlbmRpZgogCiBGbG9hdFJlY3QgRm9udDo6c2VsZWN0
aW9uUmVjdEZvclRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgKaW5kZXggZDZkMzkzYTE2Mjc0NTNjN2RkZWEyNDIzYWU4YTlmYTRiYzU4
NDdmYy4uZTA5M2M2NGNkYzZhODRlMDA0ZTgyZTMwYTliZmZkMWI5ZmQ3NjQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKGMs
IG1pcnJvciwgdmFyaWFudCkuZmlyc3Q7CiAgICAgfQotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBM
QVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBj
b25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGFGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5j
ZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIEZvbnREYXRhVmFyaWFudCkgY29uc3Q7CiAj
ZW5kaWYKICAgICBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBnbHlwaERhdGFBbmRQ
YWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9yLCBGb250RGF0YVZhcmlhbnQgPSBB
dXRvVmFyaWFudCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmNwcAppbmRleCBiZDdiZWFjMjRlMWU1ODE2YjVjZGQ2MTJhMWIzZGJjYzRmYWI4
NGY1Li44MmIwYjYxMTk1NDcyNDJlYTJkMmE5YWI4MWJkNWU4YjFjOTlhZTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTI4OCwxMyAr
Mjg4LDggQEAgdHlwZWRlZiBIYXNoTWFwPEZvbnRQbGF0Zm9ybURhdGEsIHBhaXI8UmVmUHRyPFNp
bXBsZUZvbnREYXRhPiwgdW5zaWduZWQ+LCBGb250RGEKIAogc3RhdGljIEZvbnREYXRhQ2FjaGUq
IGdGb250RGF0YUNhY2hlID0gMDsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiAhT1MoQU5E
Uk9JRCkKLWNvbnN0IGludCBjTWF4SW5hY3RpdmVGb250RGF0YSA9IDI1MDsKLWNvbnN0IGludCBj
VGFyZ2V0SW5hY3RpdmVGb250RGF0YSA9IDIwMDsKLSNlbHNlCiBjb25zdCBpbnQgY01heEluYWN0
aXZlRm9udERhdGEgPSAyMjU7CiBjb25zdCBpbnQgY1RhcmdldEluYWN0aXZlRm9udERhdGEgPSAy
MDA7Ci0jZW5kaWYKIHN0YXRpYyBMaXN0SGFzaFNldDxSZWZQdHI8U2ltcGxlRm9udERhdGE+ID4q
IGdJbmFjdGl2ZUZvbnREYXRhID0gMDsKIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9u
dENhY2hlOjpnZXRDYWNoZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGJvb2wgY2hlY2tpbmdBbHRlcm5h
dGVOYW1lLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCAzZDRiNDdiMzA4ZTAwODVhYzBkM2ExNzE3
OGM1ZmEwYjdjYmFlZjI1Li5mOTA4ZThjNDAwY2MyNjE0ZDRkMWQ3NzA1MjNlNGE3NWU2YzAwZGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAt
MTA3LDggKzEwNyw2IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBQYXNzUmVm
UHRyPFNpbXBsZUZvbnREYXRhPiBmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWluLCBjb25zdCBMT0dGT05UJiwgQXRvbWlj
U3RyaW5nJiBvdXRGb250RmFtaWx5TmFtZSk7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkgJiYg
T1MoV0lORE9XUykKLSAgICBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBmb250RGF0YUZyb21E
ZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWlu
LCBjb25zdCBMT0dGT05UJiwgd2NoYXJfdCogb3V0Rm9udEZhbWlseU5hbWUpOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCkBAIC0xNTcsNyArMTU1LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBEb24ndCBwdXJnZSBpZiB0aGlzIGNvdW50IGlzID4gMDsKICAgICBpbnQgbV9w
dXJnZVByZXZlbnRDb3VudDsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pKSB8fCBPUyhBTkRST0lEKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
T1MoQU5EUk9JRCkKICAgICBmcmllbmQgY2xhc3MgQ29tcGxleFRleHRDb250cm9sbGVyOwogI2Vu
ZGlmCiAgICAgZnJpZW5kIGNsYXNzIFNpbXBsZUZvbnREYXRhOyAvLyBGb3IgZ2V0Q2FjaGVkRm9u
dERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDZjZmI4NWNkMmJhOGZhYmYz
ZTc5MjljMzlmMTE5ODQzMGExZTk4OTAuLjE3YzAwZDRlZjA0MzhhNzNlMDE3YTAxNGFlNjgzMGY0
ZjY1MWQ3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5oCkBAIC0xNDcsMTEgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dElzQWJzb2x1dGVTaXplKGJvb2wgcykgeyBtX2lzQWJzb2x1dGVTaXplID0gczsgfQogICAgIHZv
aWQgc2V0V2VpZ2h0KEZvbnRXZWlnaHQgdykgeyBtX3dlaWdodCA9IHc7IH0KICAgICB2b2lkIHNl
dEdlbmVyaWNGYW1pbHkoR2VuZXJpY0ZhbWlseVR5cGUgZ2VuZXJpY0ZhbWlseSkgeyBtX2dlbmVy
aWNGYW1pbHkgPSBnZW5lcmljRmFtaWx5OyB9Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9T
KERBUldJTikKLSAgICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJvb2wpIHsgfQotI2Vsc2UKICAg
ICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJvb2wgcCkgeyBtX3VzZVByaW50ZXJGb250ID0gcDsg
fQotI2VuZGlmCiAgICAgdm9pZCBzZXRSZW5kZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdNb2RlIG1v
ZGUpIHsgbV9yZW5kZXJpbmdNb2RlID0gbW9kZTsgfQogICAgIHZvaWQgc2V0S2VybmluZyhLZXJu
aW5nIGtlcm5pbmcpIHsgbV9rZXJuaW5nID0ga2VybmluZzsgfQogICAgIHZvaWQgc2V0Q29tbW9u
TGlnYXR1cmVzU3RhdGUoTGlnYXR1cmVzU3RhdGUgY29tbW9uTGlnYXR1cmVzU3RhdGUpIHsgbV9j
b21tb25MaWdhdHVyZXNTdGF0ZSA9IGNvbW1vbkxpZ2F0dXJlc1N0YXRlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmlu
ZGV4IGE1NTU1OGU0Nzc1NWNjYjZkYmZlNDc2YTdhMDYzZDY5ZGNkMmU1YjAuLjkxM2FkOTA3MGM1
Yjc4MjYyMmZhYzU3NjgyMTc2NjhjNjdlMmYyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC0yNywxMCArMjcs
NiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCi0j
aW5jbHVkZSAiSGFyZkJ1enpGYWNlLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dseXBoQnVmZmVyLmgKaW5kZXggM2FlYzA4ZTY1ZTBiZjkxZDUyMDE2ZjU1OTBlZWEzNWIz
ODM3YTJkMy4uODgyZjJhMDJhYWEzNDg1NmUxYzQzYzc0ODBlMzQzNjgwNTVlZTczOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCkBAIC0zOSw3
ICszOSw3IEBACiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHR2VvbWV0cnkuaD4KICNlbmRpZgog
Ci0jaWYgT1MoREFSV0lOKSAmJiAoUExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSkK
KyNpZiBPUyhEQVJXSU4pICYmIFBMQVRGT1JNKFdYKQogI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2Vy
dmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAg
dHlwZWRlZiBHbHlwaCBHbHlwaEJ1ZmZlckdseXBoOwogCiAvLyBDRyB1c2VzIENHU2l6ZSBpbnN0
ZWFkIG9mIEZsb2F0U2l6ZSBzbyB0aGF0IHRoZSByZXN1bHQgb2YgYWR2YW5jZXMoKQogLy8gY2Fu
IGJlIHBhc3NlZCBkaXJlY3RseSB0byBDR0NvbnRleHRTaG93R2x5cGhzV2l0aEFkdmFuY2VzIGlu
IEZvbnRNYWMubW0KLSNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIChQTEFURk9STShXWCkg
fHwgUExBVEZPUk0oQ0hST01JVU0pKSkKKyNpZiBVU0UoQ0cpIHx8IChPUyhEQVJXSU4pICYmIFBM
QVRGT1JNKFdYKSkKIHN0cnVjdCBHbHlwaEJ1ZmZlckFkdmFuY2UgOiBDR1NpemUgewogcHVibGlj
OgogICAgIEdseXBoQnVmZmVyQWR2YW5jZShDR1NpemUgc2l6ZSkgOiBDR1NpemUoc2l6ZSkKQEAg
LTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZ2x5cGhzLmFwcGVuZChnbHlwaCk7
CiAjZW5kaWYKIAotI2lmIFVTRShDRykgfHwgKE9TKERBUldJTikgJiYgKFBMQVRGT1JNKFdYKSB8
fCBQTEFURk9STShDSFJPTUlVTSkpKQorI2lmIFVTRShDRykgfHwgKE9TKERBUldJTikgJiYgUExB
VEZPUk0oV1gpKQogICAgICAgICBDR1NpemUgYWR2YW5jZSA9IHsgd2lkdGgsIDAgfTsKICAgICAg
ICAgbV9hZHZhbmNlcy5hcHBlbmQoYWR2YW5jZSk7CiAjZWxpZiBPUyhXSU5DRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmlu
ZGV4IDI3YmMzYTkzNjQ0MGY5ZmQ2MjNmYmEzZjUwNTBhNDhlNzQ2MWU2ZjQuLjc2MmM2MGJlZDEy
MDM5YjVjMzYyNzhhYjU5ZjU2MTYwMDJmMTFhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNTA4LDEyICs1MDgs
OCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxl
KSB7CiAgICAgICAgIHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KCk7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgICAgIHNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7Ci0jZWxzZQogICAgICAgICAv
LyBGSVhNRSAoNDkwMDIpOiBTaG91bGQgYmUgSW50ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKLSNlbmRpZgogICAg
IH0KIAogICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3QsIHNyYywgc3R5bGVDb2xvclNwYWNlLCBv
cCwgYmxlbmRNb2RlLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CkBAIC01OTUsMTIg
KzU5MSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTCiAKICAgICBpZiAodXNlTG93UXVhbGl0
eVNjYWxlKSB7CiAgICAgICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJwb2xh
dGlvblF1YWxpdHkgPSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCk7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xh
dGlvbkxvdyk7Ci0jZWxzZQogICAgICAgICAvLyBGSVhNRSAoNDkwMDIpOiBTaG91bGQgYmUgSW50
ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVy
cG9sYXRpb25Ob25lKTsKLSNlbmRpZgogICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNv
bG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIGJsZW5kTW9kZSwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
ICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRp
b25RdWFsaXR5KTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDNhMzg0YjM1MDlkYjg1NjAyYTE4
YjVhOGFmZGRhNWMwYmNlMzUwM2QuLjZhMDQ0OTg0MmFkZTdjODllN2I1NWE1ZGQ5NzViYTM3YjE0
OWU3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciB3YXkgdG8gYXZvaWQgdGhlIG5h
bWUgY29uZmxpY3Rpb24gZm9yIE5PX0VSUk9SLgotI2lmICgoUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKFdJTkRPV1MpKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lO
RE9XUykpKQorI2lmIFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dT
KSkKICN1bmRlZiBOT19FUlJPUgogI2VsaWYgUExBVEZPUk0oR1RLKQogLy8gVGhpcyBkZWZpbmUg
aXMgZnJvbSB0aGUgWDExIGhlYWRlcnMsIGJ1dCBpdCdzIHVzZWQgYmVsb3csIHNvIHdlIG11c3Qg
dW5kZWZpbmUgaXQuCkBAIC04MCw3ICs4MCw3IEBAIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRDsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UzRDsK
ICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9STShCTEFDS0JFUlJZ
KSkgJiYgVVNFKFNLSUEpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgVVNFKFNLSUEpCiBj
bGFzcyBHckNvbnRleHQ7CiAjZW5kaWYKIApAQCAtNDkyLDcgKzQ5Miw3IEBAIHB1YmxpYzoKICAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRleHRPYmo7IH0KICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRm
b3JtVGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRvclRleHR1cmU7IH0KICAgICBD
QUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxD
QUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0p
IHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKQogICAg
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNv
bnN0OwogICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Q7CiAjaWYg
VVNFKFNLSUEpCkBAIC01MjgsNyArNTI4LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgYm9vbCBt
YWtlQ29udGV4dEN1cnJlbnQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hS
T01JVU0pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkg
fHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQkxBQ0tCRVJS
WSkKICAgICAvLyBXaXRoIG11bHRpc2FtcGxpbmcgb24sIGJsaXQgZnJvbSBtdWx0aXNhbXBsZUZC
TyB0byByZWd1bGFyIEZCTy4KICAgICB2b2lkIHByZXBhcmVUZXh0dXJlKCk7CiAjZW5kaWYKQEAg
LTEwNTYsNyArMTA1Niw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwg
KFBMQVRGT1JNKFFUKSAmJiBkZWZpbmVkKFFUX09QRU5HTF9FU18yKSkgfHwgKChQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKEVGTCkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNs
YXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogICAgIE93blB0cjxFeHRlbnNpb25zM0RPcGVuR0xF
Uz4gbV9leHRlbnNpb25zOwotI2VsaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2Vsc2UKICAgICBm
cmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMOwogICAgIE93blB0cjxFeHRlbnNpb25zM0RP
cGVuR0w+IG1fZXh0ZW5zaW9uczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDJmMGUzZDExYmQ2OTJmNjc4MDc4MjIz
ZGJlNWEwOGZhY2M5ODNiM2MuLjEyNjc1YmEzZDQ3NjQ3NTZmYTJkMjY4MWM4M2E1YTkwNmRjZjU4
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmgKQEAgLTQyOCw3ICs0MjgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0JhY2tncm91bmRDb2xvckNvbnRlbnQoKQogICAgIHsKLSNpZiBVU0UoQ0EpIHx8IFVTRShU
RVhUVVJFX01BUFBFUikgfHwgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgVVNFKENBKSB8fCBVU0Uo
VEVYVFVSRV9NQVBQRVIpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SWNvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGM1
ODU4MDdiZDUzZjc2Y2MwZTk4ZGFjYjMxZGQ1MmM5NmZiMmVlYzkuLmE3OGIyNjVjOGFmYWFiNTQ3
MTBiOGM3NzA0ZTM3MzRlZDI1ZjBiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ljb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JY29uLmgKQEAgLTM1LDkgKzM1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgSElDT05fXyogSElDT047
CiAjaW5jbHVkZSA8UUljb24+CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBf
R2RrUGl4YnVmIEdka1BpeGJ1ZjsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUg
IkltYWdlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1JY29uLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTUsOCArNTIsNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShXSU4p
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNvbj4gY3JlYXRlKEhJQ09OIGhJY29uKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgSWNvbihoSWNvbikpOyB9Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY29uPiBjcmVhdGUoUGFzc1JlZlB0cjxQbGF0Zm9ybUlj
b24+IGljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGljb24pKTsgfQogI2VuZGlmCiAK
IHByaXZhdGU6CkBAIC03NSw5ICs3MCw2IEBAIHByaXZhdGU6CiAjZWxpZiBQTEFURk9STShFRkwp
CiAgICAgSWNvbigpOwogICAgIEV2YXNfT2JqZWN0KiBtX2ljb247Ci0jZWxpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICBJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPik7Ci0gICAgUmVmUHRy
PFBsYXRmb3JtSWNvbj4gbV9pY29uOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggYzA2NmNlNzExZWRlMmYz
NGY1NDg0MzgxZjZhYmRlNjk4ZGQ5MTNiOS4uNWRiMWE0ZjZiMTFlNDA3OTZkODZhMWE3MjgzMWUw
YjhkYjJiMTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmNwcApAQCAtMzUsMTAgKzM1LDYgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJEZWZlcnJlZEltYWdlRGVjb2Rlci5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RP
V05fU0FNUExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuaAppbmRleCBjYTk5NzcwM2I1OTkwY2RlODg1YjcxYzdkYjE3YzlhNGM0N2VlMGI0Li5l
MzA1M2Q2NTdmNTRiODk5OTUxNjRkZTM5ZTFjZmQyODgwMzE4MjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTQ4LDE2ICs0OCwxMiBA
QCBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKICNpZiBVU0UoQ0cpCiB0eXBlZGVmIENHSW1hZ2VTb3Vy
Y2VSZWYgTmF0aXZlSW1hZ2VEZWNvZGVyUHRyOwotI2VsaWYgIVBMQVRGT1JNKENIUk9NSVVNKQor
I2Vsc2UKIGNsYXNzIEltYWdlRGVjb2RlcjsKIHR5cGVkZWYgSW1hZ2VEZWNvZGVyKiBOYXRpdmVJ
bWFnZURlY29kZXJQdHI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotY2xhc3Mg
RGVmZXJyZWRJbWFnZURlY29kZXI7Ci10eXBlZGVmIERlZmVycmVkSW1hZ2VEZWNvZGVyIE5hdGl2
ZUltYWdlRGVjb2RlcjsKLXR5cGVkZWYgRGVmZXJyZWRJbWFnZURlY29kZXIqIE5hdGl2ZUltYWdl
RGVjb2RlclB0cjsKLSNlbGlmIFVTRShDRykKKyNpZiBVU0UoQ0cpCiAjZGVmaW5lIE5hdGl2ZUlt
YWdlRGVjb2RlciBJbWFnZURlY29kZXIKICNlbHNlCiB0eXBlZGVmIEltYWdlRGVjb2RlciBOYXRp
dmVJbWFnZURlY29kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmgKaW5kZXggZTVhZDMyMTM5YjI1OWI1NTg1N2Y1MDdjNGE1MTQzYzY3NzI2YzMxZC4uNGNmMTg5
MGU4MDM2ZTJjZGFiYjFhY2I4ZDJhOTdkNzdjYTZmODQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaApAQCAtMzMsNyArMzMsNyBAQAogdHlwZWRlZiBzdHJ1
Y3QgQ0dSZWN0IENHUmVjdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lU
KSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICNp
ZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBz
dHJ1Y3QgQ0dSZWN0IE5TUmVjdDsKICNlbHNlCkBAIC0yMzAsOSArMjMwLDcgQEAgcHVibGljOgog
ICAgIG9wZXJhdG9yIFNrSVJlY3QoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSkgXAotICAgICAgICAmJiAh
ZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykgXAotICAg
ICAgICB8fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSB8
fCAoUExBVEZPUk0oUVQpICYmIFVTRShRVEtJVCkpCiAgICAgb3BlcmF0b3IgTlNSZWN0KCkgY29u
c3Q7CiAjZW5kaWYKIApAQCAtMjgzLDggKzI4MSw3IEBAIGlubGluZSBJbnRSZWN0IGVuY2xvc2lu
Z0ludFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChj
b25zdCBDR1JlY3QmKTsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpKSBcCi0gICAgICAgIHx8
IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBV
U0UoUVRLSVQpKQorI2lmIChQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBVU0UoUVRL
SVQpKQogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IE5TUmVjdCYpOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApp
bmRleCAxMjU3NmZiYTIwYjMwZDJlMmEzNzNjYmU5OWE2Zjc4ZDExOTcyNTk0Li4xYmYwNjE4NDE3
Yzg3NjQzNzZkNDA4MjEzNDg1ZWUzYjVjMTQ5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC03Niw5ICs3Niw2IEBACiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUXQuaCIKICNkZWZpbmUgUGxhdGZvcm1NZWRpYUVuZ2lu
ZUNsYXNzTmFtZSBNZWRpYVBsYXllclByaXZhdGVRdAogI2VuZGlmCi0jZWxpZiBQTEFURk9STShD
SFJPTUlVTSkKLSNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVDaHJvbWl1bS5oIgotI2RlZmlu
ZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZQogI2VsaWYg
UExBVEZPUk0oQkxBQ0tCRVJSWSkKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVCbGFja0Jl
cnJ5LmgiCiAjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxh
eWVyLmgKaW5kZXggMzA0MDdjZDdhZGJjNTg2YTllZDFiZDI5NTVkZTNhMjc5OGNhOGI2Yy4uMTgz
NjczYjEzZGU2ZThjNjdlZDljMjJmYTllNDNlZGNkMTU0OWJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaApAQCAtMzgsMTMgKzM4LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI7
CiB0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7CiB9Owot
I2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkxh
eWVyOwotfQotbmFtZXNwYWNlIFdlYkNvcmUgewotdHlwZWRlZiBXZWJLaXQ6OldlYkxheWVyIFBs
YXRmb3JtTGF5ZXI7Ci19CiAjZWxpZiBQTEFURk9STShHVEspCiAjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0NBSVJPKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEu
aAppbmRleCA0OWUyODk5Y2UyNjVkNjM4YjZiMzg4ODFmYzg5ZGY4MmMyYTExYWQ2Li40YTk3YmQ0
NGEwMDBlOGI0NjFiMjIyYjM4MDZhOGJhNWQ4ZGYxMTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTQ1LDcgKzQ1LDcgQEAK
ICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAoUExBVEZP
Uk0oV1gpICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV1gp
ICYmIE9TKERBUldJTikpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKQEAg
LTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24o
KSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01J
VU0pICYmIE9TKERBUldJTikpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBnZXRDb21wb3NpdGVGb250UmVmZXJlbmNlRm9udERhdGEoTlNGb250ICprZXkpIGNv
bnN0OwogICAgIE5TRm9udCogZ2V0TlNGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURh
dGEuZm9udCgpOyB9CiAjZWxpZiAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIApAQCAtMTkz
LDExICsxOTMsMTEgQEAgcHVibGljOgogICAgIE5TRm9udCogZ2V0TlNGb250KCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybURhdGEubnNGb250KCk7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpIHx8IChQTEFURk9STShX
WCkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShXWCkgJiYg
T1MoREFSV0lOKSkKICAgICBDRkRpY3Rpb25hcnlSZWYgZ2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5
cGVzZXR0aW5nRmVhdHVyZXMsIEZvbnRPcmllbnRhdGlvbikgY29uc3Q7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKSB8fCAo
UExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikKKyNpZiBQTEFURk9S
TShNQUMpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkgfHwgVVNFKEhBUkZCVVpaKQog
ICAgIGJvb2wgY2FuUmVuZGVyQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIq
LCBzaXplX3QpIGNvbnN0OwogI2VuZGlmCiAKQEAgLTMwMCw3ICszMDAsNyBAQCBwcml2YXRlOgog
ICAgICAgICBSZWZQdHI8U2ltcGxlRm9udERhdGE+IGJyb2tlbklkZW9ncmFwaDsKICAgICAgICAg
UmVmUHRyPFNpbXBsZUZvbnREYXRhPiB2ZXJ0aWNhbFJpZ2h0T3JpZW50YXRpb247CiAgICAgICAg
IFJlZlB0cjxTaW1wbGVGb250RGF0YT4gdXByaWdodE9yaWVudGF0aW9uOwotI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQorI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgbXV0YWJsZSBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4g
Y29tcG9zaXRlRm9udFJlZmVyZW5jZXM7CiAjZW5kaWYKICAgICAgICAgCkBAIC0zMTcsMTEgKzMx
NywxMSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc3ludGhldGljQm9sZE9mZnNldDsKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJ
TikpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkKKyNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkKICAgICBtdXRhYmxlIEhhc2hNYXA8dW5zaWdu
ZWQsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+ID4gbV9DRlN0cmluZ0F0dHJpYnV0ZXM7CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhE
QVJXSU4pKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKERBUldJTikpIHx8IFVTRShIQVJGQlVaWikK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShXWCkgJiYgT1MoREFSV0lOKSkgfHwgVVNF
KEhBUkZCVVpaKQogICAgIG11dGFibGUgT3duUHRyPEhhc2hNYXA8U3RyaW5nLCBib29sPiA+IG1f
Y29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2VTdXBwb3J0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZp
bHRlci5jcHAKaW5kZXggM2E1ZWM4NTNkNDU5YWM4Nzg5ZjMzNjczZTdmMTJlMjU2ZGE2NjBjNi4u
MTU4MTMxMTg1ZDJiYjMzYjFmMGZkYWNmMDgzNjA0NTBlMmVjZWQyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZp
bHRlci5jcHAKQEAgLTMzMSwxMiArMzMxLDcgQEAgYm9vbCBGRUN1c3RvbUZpbHRlcjo6cmVzaXpl
Q29udGV4dChjb25zdCBJbnRTaXplJiBuZXdDb250ZXh0U2l6ZSkKICAgICBtX2NvbnRleHQtPmJp
bmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZnJhbWVCdWZm
ZXIpOwogICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQsIG1fZGVzdFRleHR1cmUpOwogICAgIC8vIFdlIGFyZSBnb2luZyB0byBjbGVhciB0aGUg
b3V0cHV0IGJ1ZmZlciBhbnl3YXksIHNvIHdlIGNhbiBzYWZlbHkgaW5pdGlhbGl6ZSB0aGUgZGVz
dGluYXRpb24gdGV4dHVyZSB3aXRoIGdhcmJhZ2UgZGF0YS4KLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLSAgICAvLyBGSVhNRTogR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkREaXJlY3QgaXMg
bm90IGltcGxlbWVudGVkIG9uIENocm9taXVtLgotICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRChH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEs
IG5ld0NvbnRleHRTaXplLndpZHRoKCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgpLCAwLCBHcmFw
aGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIDAp
OwotI2Vsc2UKICAgICBtX2NvbnRleHQtPnRleEltYWdlMkREaXJlY3QoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBuZXdDb250ZXh0U2l6
ZS53aWR0aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCAwKTsKLSNlbmRpZgogICAg
IG1fY29udGV4dC0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1F
QlVGRkVSLCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFXzJELCBtX2Rlc3RUZXh0dXJlLCAwKTsKIAogICAgIC8vIFdlIGRvbid0
IG5lZWQgdGhlIGRlcHRoIGJ1ZmZlciBmb3IgdGhlIHRleHR1cmUgZnJhbWVidWZmZXIsIGlmIHdl
IGFscmVhZHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
RHJhd2luZ0J1ZmZlci5oCmluZGV4IGI0NDYxMDEyMDY3NzEzZDUxYTVhMWI3MGZkMDExMWM2MmZm
MjFmNzYuLmM4MjdhMGVmYTQ4NTUwNTEwMTAwMmRkZmM5ZGIzNjg3Yzk1Yzg3ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIu
aApAQCAtNDYsOSArNDYsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3ND
b250ZXh0M0Q7CiBjbGFzcyBJbWFnZURhdGE7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1jbGFz
cyBEcmF3aW5nQnVmZmVyUHJpdmF0ZTsKLSNlbmRpZgogCiAvLyBNYW5hZ2VzIGEgcmVuZGVyaW5n
IHRhcmdldCAoZnJhbWVidWZmZXIgKyBhdHRhY2htZW50KSBmb3IgYSBjYW52YXMuICBDYW4gcHVi
bGlzaCBpdHMgcmVuZGVyaW5nCiAvLyByZXN1bHRzIHRvIGEgUGxhdGZvcm1MYXllciBmb3IgY29t
cG9zaXRpbmcuCkBAIC0xNzIsMTAgKzE2OSw2IEBAIHByaXZhdGU6CiAgICAgLy8gVHJ1ZSBpZiBv
dXIgY29udGVudHMgaGF2ZSBiZWVuIG1vZGlmaWVkIHNpbmNlIHRoZSBsYXN0IHByZXNlbnRhdGlv
biBvZiB0aGlzIGJ1ZmZlci4KICAgICBib29sIG1fY29udGVudHNDaGFuZ2VkOwogCi0jaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0gICAgT3duUHRyPERyYXdpbmdCdWZmZXJQcml2YXRlPiBtX3ByaXZh
dGU7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8V2ViR0xMYXll
cj4gbV9wbGF0Zm9ybUxheWVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNw
cAppbmRleCAxYjQwYTI5NTk0NzgyMzg3NjQ4NWRlNTM0YTk1ZDEzNmJkZjNhODY3Li44Yjk4ZTc4
MDUxMDQwOWVhYjA0MTFiMDBlNWUzNjY5YjU3NmNjNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5jcHAKQEAgLTI5LDExICsyOSw2IEBACiAjaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgotI2luY2x1ZGUg
PHB1YmxpYy9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQz
RC5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAppbmRleCA1Yjg3
YzU2OGNhNTM1NzE3NTVmMjlhZDFkMjE4NGJkNTJkNWEzZjc0Li40MDFhMTU2OTU3ZjllZjVhYmM1
NDQ3ODkyY2Y4YzA2ZGI1MGYwMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29t
bW9uLmNwcApAQCAtMTcwLDE3ICsxNzAsMTEgQEAgU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbjo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QKIAog
ICAgIFN0cmluZyB0cmFuc2xhdGVkU2hhZGVyU291cmNlOwogICAgIFN0cmluZyBzaGFkZXJJbmZv
TG9nOwotICAgIGludCBleHRyYUNvbXBpbGVPcHRpb25zID0gU0hfTUFQX0xPTkdfVkFSSUFCTEVf
TkFNRVM7CisgICAgaW50IGV4dHJhQ29tcGlsZU9wdGlvbnMgPSBTSF9NQVBfTE9OR19WQVJJQUJM
RV9OQU1FUyB8IFNIX0NMQU1QX0lORElSRUNUX0FSUkFZX0JPVU5EUzsKIAogICAgIGlmIChtX3Jl
cXVpcmVzQnVpbHRJbkZ1bmN0aW9uRW11bGF0aW9uKQogICAgICAgICBleHRyYUNvbXBpbGVPcHRp
b25zIHw9IFNIX0VNVUxBVEVfQlVJTFRfSU5fRlVOQ1RJT05TOwogCi0jaWYgIVBMQVRGT1JNKENI
Uk9NSVVNKQotICAgIC8vIENocm9taXVtIGRvZXMgbm90IHVzZSB0aGUgQU5HTEUgYnVuZGxlZCBp
biBXZWJLaXQgc291cmNlLCBhbmQgdGh1cwotICAgIC8vIGRvZXMgbm90IHlldCBoYXZlIHRoZSBz
eW1ib2wgU0hfQ0xBTVBfSU5ESVJFQ1RfQVJSQVlfQk9VTkRTLgotICAgIGV4dHJhQ29tcGlsZU9w
dGlvbnMgfD0gU0hfQ0xBTVBfSU5ESVJFQ1RfQVJSQVlfQk9VTkRTOwotI2VuZGlmCi0KICAgICBW
ZWN0b3I8QU5HTEVTaGFkZXJTeW1ib2w+IHN5bWJvbHM7CiAgICAgYm9vbCBpc1ZhbGlkID0gY29t
cGlsZXIuY29tcGlsZVNoYWRlclNvdXJjZShlbnRyeS5zb3VyY2UudXRmOCgpLmRhdGEoKSwgc2hh
ZGVyVHlwZSwgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSwgc2hhZGVySW5mb0xvZywgc3ltYm9scywg
ZXh0cmFDb21waWxlT3B0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKaW5kZXggYTRlNzA2NjRkMWU2YmE3YzFl
NDZhY2Q4M2ExNjAzMzYwYzdmMDdmYy4uNGE2NTlhMWY2ODMxMjk5OGZkMmE2YWNmMjZjYWZkNDJk
OTM5YzY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAgLTE0NywyNSArMTQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2VuZGlmCiAgICAgICAgIH0KIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICB2b2lkIHNldFNrQml0bWFwKGNvbnN0IFNrQml0bWFwJiBiaXRtYXApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIG1fYml0bWFwID0gTmF0aXZlSW1hZ2VTa2lhOjpjcmVhdGUoYml0bWFwKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGNvbnN0IFNrQml0bWFwJiBnZXRTa0JpdG1hcCgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2JpdG1hcC0+Yml0bWFwKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICB2b2lkIHNldE1lbW9yeUFsbG9jYXRvcihTa0JpdG1hcDo6QWxsb2NhdG9y
KiBhbGxvY2F0b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fYWxsb2NhdG9yID0gYWxsb2Nh
dG9yOwotICAgICAgICB9Ci0KLSAgICAgICAgU2tCaXRtYXA6OkFsbG9jYXRvciogYWxsb2NhdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvY2F0b3I7IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFVz
ZSBmaXggcG9pbnQgbXVsdGlwbGllciBpbnN0ZWFkIG9mIGludGVnZXIgZGl2aXNpb24gb3IgZmxv
YXRpbmcgcG9pbnQgbWF0aC4KICAgICAgICAgLy8gVGhpcyBtdWx0aXBsZXIgcHJvZHVjZXMgZXhh
Y3RseSB0aGUgc2FtZSByZXN1bHQgZm9yIGFsbCB2YWx1ZXMgaW4gcmFuZ2UgMCAtIDI1NS4KICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGZpeFBvaW50U2hpZnQgPSAyNDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcAppbmRl
eCBlNGZiYjUyZmRhZjZiZmU2MWIxYWQ1ZjY3ZWYyNzIzOTI2Y2RmMDI2Li5jZDNiMDEzNzQ5Zjlk
NjZkOTdkY2Q5OWYwMWVlNDc3NjhiMzk2OTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiTGV2ZWxEQlNsaWNlLmgiCiAjaW5jbHVkZSAiTGV2ZWxEQldyaXRlQmF0Y2guaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlIDxoZWxwZXJzL21lbWVudi9tZW1lbnYuaD4KICNpbmNsdWRlIDxsZXZlbGRiL2NvbXBhcmF0
b3IuaD4KICNpbmNsdWRlIDxsZXZlbGRiL2RiLmg+CkBAIC00NCwxMiArNDUsNiBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgPGVudl9pZGIuaD4KLSNpbmNsdWRl
IDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQog
bmFtZXNwYWNlIGxldmVsZGIgewogCiBzdGF0aWMgRW52KiBJREJFbnYoKQpAQCAtNTgsNyArNTMs
NiBAQCBzdGF0aWMgRW52KiBJREJFbnYoKQogfQogCiB9Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xNDMsMjIgKzEzNyw2IEBAIGJvb2wgTGV2ZWxEQkRhdGFiYXNlOjpkZXN0
cm95KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiAgICAgcmV0dXJuIHMub2soKTsKIH0KIAotc3Rh
dGljIHZvaWQgaGlzdG9ncmFtRnJlZVNwYWNlKGNvbnN0IGNoYXIqIHR5cGUsIFN0cmluZyBmaWxl
TmFtZSkKLXsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBTdHJpbmcgbmFtZSA9ICJXZWJD
b3JlLkluZGV4ZWREQi5MZXZlbERCLk9wZW4iICsgU3RyaW5nKHR5cGUpICsgIkZyZWVEaXNrU3Bh
Y2UiOwotICAgIGxvbmcgbG9uZyBmcmVlRGlza1NwYWNlSW5LQnl0ZXMgPSBXZWJLaXQ6OlBsYXRm
b3JtOjpjdXJyZW50KCktPmF2YWlsYWJsZURpc2tTcGFjZUluQnl0ZXMoZmlsZU5hbWUpIC8gMTAy
NDsKLSAgICBpZiAoZnJlZURpc2tTcGFjZUluS0J5dGVzIDwgMCkgewotICAgICAgICBIaXN0b2dy
YW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5JbmRleGVkREIuTGV2ZWxE
Qi5GcmVlRGlza1NwYWNlRmFpbHVyZSIsIDEvKnNhbXBsZSovLCAyLypib3VuZGFyeSovKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpbnQgY2xhbXBlZERpc2tTcGFjZUtCeXRlcyA9IGZy
ZWVEaXNrU3BhY2VJbktCeXRlcyA+IElOVF9NQVggPyBJTlRfTUFYIDogZnJlZURpc2tTcGFjZUlu
S0J5dGVzOwotICAgIGNvbnN0IHVpbnQ2NF90IGhpc3RvZ3JhbU1heCA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PigxZTkpOwotICAgIENPTVBJTEVfQVNTRVJUKGhpc3RvZ3JhbU1heCA8PSBJTlRfTUFY
LCBoaXN0b2dyYW1NYXhUb29CaWcpOwotICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUN1
c3RvbUNvdW50cyhuYW1lLnV0ZjgoKS5kYXRhKCksIGNsYW1wZWREaXNrU3BhY2VLQnl0ZXMsIDEs
IGhpc3RvZ3JhbU1heCwgMTEvKmJ1Y2tldHMqLyk7Ci0jZW5kaWYKLX0KLQogc3RhdGljIHZvaWQg
aGlzdG9ncmFtTGV2ZWxEQkVycm9yKGNvbnN0IGNoYXIqIGhpc3RvZ3JhbU5hbWUsIGNvbnN0IGxl
dmVsZGI6OlN0YXR1cyYgcykKIHsKICAgICBBU1NFUlQoIXMub2soKSk7CkBAIC0xODgsMTQgKzE2
NiwxMSBAQCBQYXNzT3duUHRyPExldmVsREJEYXRhYmFzZT4gTGV2ZWxEQkRhdGFiYXNlOjpvcGVu
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0CiAKICAgICBpZiAoIXMub2soKSkgewogICAg
ICAgICBoaXN0b2dyYW1MZXZlbERCRXJyb3IoIldlYkNvcmUuSW5kZXhlZERCLkxldmVsREJPcGVu
RXJyb3JzIiwgcyk7Ci0gICAgICAgIGhpc3RvZ3JhbUZyZWVTcGFjZSgiRmFpbHVyZSIsIGZpbGVO
YW1lKTsKIAogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBvcGVuIExldmVsREIgZGF0YWJh
c2UgZnJvbSAlczogJXMiLCBmaWxlTmFtZS5hc2NpaSgpLmRhdGEoKSwgcy5Ub1N0cmluZygpLmNf
c3RyKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBoaXN0b2dyYW1G
cmVlU3BhY2UoIlN1Y2Nlc3MiLCBmaWxlTmFtZSk7Ci0KICAgICBPd25QdHI8TGV2ZWxEQkRhdGFi
YXNlPiByZXN1bHQgPSBhZG9wdFB0cihuZXcgTGV2ZWxEQkRhdGFiYXNlKTsKICAgICByZXN1bHQt
Pm1fZGIgPSBhZG9wdFB0cihkYik7CiAgICAgcmVzdWx0LT5tX2NvbXBhcmF0b3JBZGFwdGVyID0g
Y29tcGFyYXRvckFkYXB0ZXIucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwCmluZGV4IGRlM2VlNWFhZmRhYWFlYzVkMDA3NDUy
NDU0MGFmMjhlNjA4Njk3ZmEuLjljYjEzN2I0NDY0ODMyY2FhOTBhMjY2NDZhMTA1MzJkZjUxMDUx
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lz
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eS5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIVBM
QVRGT1JNKENIUk9NSVVNKQogQmxvYlJlZ2lzdHJ5JiBibG9iUmVnaXN0cnkoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC00Nyw3ICs0Niw2IEBAIEJsb2JSZWdpc3RyeSYgYmxv
YlJlZ2lzdHJ5KCkKICNlbmRpZgogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KLSNlbmRpZgogCiBC
bG9iUmVnaXN0cnk6On5CbG9iUmVnaXN0cnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXggYmMxMjg0OTk0NGEz
ZGYxN2NlYjAzNDdlNzM4NGNhMmQ0YWFlMjIzYi4uNjFjZjM5YWE2NzA0YmJjYjYyZDY0ZjJmMWZi
NmRlMTU2ZjVmN2M1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00OSw3ICs0OSw2IEBAIEJsb2JSZWdpc3RyeUlt
cGw6On5CbG9iUmVnaXN0cnlJbXBsKCkKIHsKIH0KIAotI2lmICFQTEFURk9STShDSFJPTUlVTSkK
IHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGVSZXNvdXJjZUhhbmRsZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEJsb2JSZWdpc3RyeUltcGwmPihibG9iUmVn
aXN0cnkoKSkuY3JlYXRlUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50KTsKQEAgLTcxLDEz
ICs3MCw2IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlJlc291cmNlSGFuZGxlQ29uc3RydWN0
b3IoKQogICAgIH0KIH0KIAotI2Vsc2UKLQotc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iUmVzb3Vy
Y2VIYW5kbGVDb25zdHJ1Y3RvcigpCi17Ci19Ci0jZW5kaWYKLQogUGFzc1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gQmxvYlJlZ2lzdHJ5SW1wbDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KQogewog
ICAgIFJlZlB0cjxCbG9iUmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IEJsb2JSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlQXN5bmMoZ2V0QmxvYkRhdGFGcm9tVVJMKHJlcXVlc3QudXJsKCkpLCByZXF1ZXN0
LCBjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAppbmRleCA2Yzg1ZmQ5Zjg2OGJlMGFlMGQ4NmViYTQy
M2Q0Y2ZmZTVmYzEzYzQ1Li42YmM5M2U4MzVjMDYwOWJjNmQ0ODQzZjJlNjI0ZGNkMDJhMDdlZDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0
ZU5vdGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdGF0ZU5vdGlmaWVyLmNwcApAQCAtNDYsMTcgKzQ2LDQgQEAgdm9pZCBOZXR3b3JrU3RhdGVO
b3RpZmllcjo6c2V0TmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKHZvaWQoKmZ1bmN0aW9uKSgp
KQogICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uID0gZnVuY3Rpb247CiB9CiAKLSNp
ZiBQTEFURk9STShDSFJPTUlVTSkKLXZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OnNldE9uTGlu
ZShib29sIG9uTGluZSkKLXsKLSAgICBpZiAobV9pc09uTGluZSA9PSBvbkxpbmUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1faXNPbkxpbmUgPSBvbkxpbmU7Ci0KLSAgICBpZiAobV9uZXR3b3Jr
U3RhdGVDaGFuZ2VkRnVuY3Rpb24pCi0gICAgICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0
aW9uKCk7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEVGTCkK
LQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RhdGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RhdGVOb3RpZmllci5oCmluZGV4IGQxMmQ0YjUxZTI4NjM1OTBhZmQ1Y2QyODJlNzZkN2Q4MmY2
MDdmNjYuLjYxZGVjZjVmZGUwMmJmM2MyYjBhYzFjNmYzZjI5MTEyNzY4ZWMzMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlm
aWVyLmgKQEAgLTcxLDggKzcxLDYgQEAgcHVibGljOgogCiAjaWYgKFBMQVRGT1JNKFFUKSAmJiAh
ZGVmaW5lZChRVF9OT19CRUFSRVJNQU5BR0VNRU5UKSkKICAgICB2b2lkIHNldE5ldHdvcmtBY2Nl
c3NBbGxvd2VkKGJvb2wpOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgdm9pZCBzZXRP
bkxpbmUoYm9vbCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5k
ZXggMjkyMzBkYjBiMTM1YjU0MGM5NDdjOTdkYmE4ODk2NGZjM2RkNjFmMy4uNzNhNjZjOWFlYWQx
MmNkODI1NDhhMDBmNDBkMTVmMmI3YmE5ODRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjgsMTIgKzI4LDYgQEAK
ICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJDb29raWVKYXI7Ci19Ci0jZW5k
aWYKLQogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPHFnbG9iYWwuaD4KICNlbmRpZgpAQCAt
NjcsMTEgKzYxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCA9IDA7CiAKLSNpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICAvLyBGSVhNRTogV3JhcCBXZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNyb3NzLXBsYXRmb3JtLgotICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUphcigpIGNvbnN0ID0gMDsKLSNlbmRpZgot
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCgpIGNvbnN0ID0gMDsgLy8gRklYTUU6IFJlY29uY2lsZSB3aXRoIFJlc291cmNl
SGFuZGxlOjpmb3JjZUNvbnRlbnRTbmlmZmluZygpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IGZjZGMwMTRj
MTMyYmJjZmIxYzFhODBhMmU0OWM2OTYzNjIwNWNhY2QuLmFmNmI5MjFhZDY2NWQ2NDlkNzg3Mjg5
MjlkYmQxYWE1Zjc1MDYzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTExNiw5ICsxMTYsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JLKQogICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENG
Q2FjaGVkVVJMUmVzcG9uc2VSZWYpIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKFJlc291
cmNlSGFuZGxlKiwgaW50IC8qZGF0YUxlbmd0aCovKSB7IH0KLSNlbmRpZgogCiAjaWYgVVNFKFNP
VVApCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggNWVjOTRhNDA0ZGIwOGZmOTE0NDVkY2Q3
MDRhNTM1MzZhMGMyZjc3Ny4uMDE5MDI1OTlhZWNhOWQzNjRjZDNkNTFlNmYwNzY2NmQ1Y2ZjM2Zl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
cXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVl
c3RCYXNlOjp1cGRhdGVSZXNvdXJjZVJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3kgYm9keVBv
bGljeSkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhVVNFKENGTkVUV09SSykg
JiYgIVVTRShTT1VQKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pICYmICFQTEFURk9STShRVCkgJiYg
IVBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVVTRShDRk5FVFdP
UkspICYmICFVU0UoU09VUCkgJiYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oQkxBQ0tCRVJS
WSkKIHVuc2lnbmVkIGluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3Qo
KQogewogICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbG9hZGVyIHRvIGNvbnRyb2wgdGhlIG51
bWJlciBvZiBpc3N1ZWQgcGFyYWxsZWwgbG9hZCByZXF1ZXN0cy4gCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCAxYjYxNmViNjBi
ZTk2ZmE1MWJlY2Y4MTY4MWQ1ZmZlZmE5YzViOTRjLi42ZDE5ZWQxZDhlYWEwYjczYjQ4NTg5YjUz
ZmQyYzliZTQ0NTI0NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
Y2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgogCi0jaWYgKCFQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShDSFJPTUlVTSkpIHx8IFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDcwCisjaWYgIVBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIAogI2luY2x1ZGUg
IkF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVLmgiCkBAIC03Niw0ICs3Niw0IEBAIHNpemVfdCBsYXN0SHlwaGVuTG9jYXRp
b24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJ
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICghUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oQ0hST01JVU0pKSB8fCBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2VuZGlmIC8vICFQTEFURk9STShNQUMpIHx8IFBM
QVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCmluZGV4IGVkOGY4OTAzNWM0
MzEwM2U3YjZiYzhiMDljMTNkMDY3YTNkNDkyOGYuLjBjOTQ1ZmI2NGJiYTZkZTQyYmE4OTdkMzI3
NWZlZmY0ZDVmMmJhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlld05vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUu
Y3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGb2N1c091dEV2
ZW50KCkKIC8vIHBvcnRzIHVzaW5nIFBsdWdpblZpZXcsIGJ1dCB1bnRpbCB0aGVuLCBpZiBuZXcg
ZnVuY3Rpb25zIGxpa2UgdGhpcyBhcmUgCiAvLyBhZGRlZCwgcGxlYXNlIG1ha2Ugc3VyZSB0aGV5
IGhhdmUgdGhlIHByb3BlciBwbGF0Zm9ybSAjaWZzIHNvIHRoYXQgY2hhbmdlcwogLy8gZG8gbm90
IGJyZWFrIHBvcnRzIHdobyBjb21waWxlIGJvdGggdGhpcyBmaWxlIGFuZCBQbHVnaW5WaWV3LmNw
cC4gICAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKSB8fCBQTEFURk9S
TShFRkwpIHx8IChPUyhXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKSkgfHwgKFBMQVRGT1JNKFFUKSAm
JiAhT1MoV0lOQ0UpKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oRUZMKSB8fCAoT1Mo
V0lOQ0UpICYmICFQTEFURk9STShRVCkpIHx8IChQTEFURk9STShRVCkgJiYgIU9TKFdJTkNFKSkK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIHZvaWQgUGx1Z2luVmlldzo6a2VlcEFs
aXZlKE5QUCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5NzU3Y2M0
MWY4Y2VjYTE1NzA1MjZlOWYwOWI0ZmVlYmY1NzA4Y2M5Li4yMjU0YTk4ODE0ZDgyYTlhNDBmNTg2
NmIyOWMwMjRmMjE3OTg1ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0xMjYsMTQgKzEyNiw2IEBACiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVk
ZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNs
dWRlICJHcmFwaGljc0xheWVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tp
bmcuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKICNpbmNsdWRl
ICJDRE0uaCIKICNpbmNsdWRlICJNb2NrQ0RNLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAppbmRleCA3Nzk1NDRmNjI5OTI4MGRhYzI4ZGI4N2MyODNlOTk1YTUxNmQ5OTY2Li44
OWI1MzVkMmU2OTdiMWMxNzM5YTFhZDdmOGQwYjEzZDE0YzM1Y2ZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTc2NSw3ICs3NjUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QobV91cmwpOwogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChtX21ldGhvZCk7
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExB
VEZPUk0oQkxBQ0tCRVJSWSkKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc1hIUik7CiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>