<?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>105696</bug_id>
          
          <creation_ts>2012-12-23 12:28:52 -0800</creation_ts>
          <short_desc>JITThunks should not compile only because of luck</short_desc>
          <delta_ts>2013-02-11 10:18:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>105744</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</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>796798</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-23 12:28:52 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796800</commentid>
    <comment_count>1</comment_count>
      <attachid>180628</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-23 12:34:40 -0800</bug_when>
    <thetext>Created attachment 180628
the patch

This will probably still have random build errors.  I&apos;m still checking if I need to add #include Operations.h into WebCore and elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796801</commentid>
    <comment_count>2</comment_count>
      <attachid>180628</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-23 12:37:49 -0800</bug_when>
    <thetext>Comment on attachment 180628
the patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796802</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-23 12:38:42 -0800</bug_when>
    <thetext>Attachment 180628 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObject...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:337:  The parameter name &quot;plan&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:338:  The parameter name &quot;plan&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796803</commentid>
    <comment_count>4</comment_count>
      <attachid>180628</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-23 12:42:23 -0800</bug_when>
    <thetext>Comment on attachment 180628
the patch

Attachment 180628 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15492228</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796804</commentid>
    <comment_count>5</comment_count>
      <attachid>180628</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-23 12:42:35 -0800</bug_when>
    <thetext>Comment on attachment 180628
the patch

Attachment 180628 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15492224</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796805</commentid>
    <comment_count>6</comment_count>
      <attachid>180628</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-23 12:44:23 -0800</bug_when>
    <thetext>Comment on attachment 180628
the patch

Attachment 180628 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15513025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796808</commentid>
    <comment_count>7</comment_count>
      <attachid>180629</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-23 13:12:29 -0800</bug_when>
    <thetext>Created attachment 180629
another attempt

I think I still have a lot of work to do adding #include &quot;Operations.h&quot; in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796863</commentid>
    <comment_count>8</comment_count>
      <attachid>180641</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-23 21:25:14 -0800</bug_when>
    <thetext>Created attachment 180641
patch for landing

Hopefully this will make all of the things happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796864</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-23 21:28:33 -0800</bug_when>
    <thetext>Attachment 180641 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/RegExpCachedResult.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/SmallStrings.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 164 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796866</commentid>
    <comment_count>10</comment_count>
      <attachid>180641</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-23 21:37:04 -0800</bug_when>
    <thetext>Comment on attachment 180641
patch for landing

Attachment 180641 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15503295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796867</commentid>
    <comment_count>11</comment_count>
      <attachid>180641</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-23 21:39:19 -0800</bug_when>
    <thetext>Comment on attachment 180641
patch for landing

Attachment 180641 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15498328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796874</commentid>
    <comment_count>12</comment_count>
      <attachid>180641</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-23 22:13:36 -0800</bug_when>
    <thetext>Comment on attachment 180641
patch for landing

Attachment 180641 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15511197</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797008</commentid>
    <comment_count>13</comment_count>
      <attachid>180679</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 10:21:40 -0800</bug_when>
    <thetext>Created attachment 180679
patch for landing

Try to fix Qt build.  Hopefully it also fixes EFL build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797009</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 10:24:47 -0800</bug_when>
    <thetext>Attachment 180679 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/RegExpCachedResult.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/SmallStrings.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 165 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797033</commentid>
    <comment_count>15</comment_count>
      <attachid>180679</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 11:59:34 -0800</bug_when>
    <thetext>Comment on attachment 180679
patch for landing

Attachment 180679 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15507533</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797035</commentid>
    <comment_count>16</comment_count>
      <attachid>180679</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 12:04:03 -0800</bug_when>
    <thetext>Comment on attachment 180679
patch for landing

Attachment 180679 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15512476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797037</commentid>
    <comment_count>17</comment_count>
      <attachid>180685</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 12:09:02 -0800</bug_when>
    <thetext>Created attachment 180685
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797038</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 12:13:09 -0800</bug_when>
    <thetext>Attachment 180685 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 166 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797041</commentid>
    <comment_count>19</comment_count>
      <attachid>180685</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 12:38:29 -0800</bug_when>
    <thetext>Comment on attachment 180685
patch for landing

Attachment 180685 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15491629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797044</commentid>
    <comment_count>20</comment_count>
      <attachid>180689</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 13:26:36 -0800</bug_when>
    <thetext>Created attachment 180689
patch for landing

And try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797045</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 13:29:28 -0800</bug_when>
    <thetext>Attachment 180689 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 178 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797046</commentid>
    <comment_count>22</comment_count>
      <attachid>180689</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 13:39:19 -0800</bug_when>
    <thetext>Comment on attachment 180689
patch for landing

Attachment 180689 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15492607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797047</commentid>
    <comment_count>23</comment_count>
      <attachid>180690</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 14:02:53 -0800</bug_when>
    <thetext>Created attachment 180690
patch for landing

Trying again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797048</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 14:07:12 -0800</bug_when>
    <thetext>Attachment 180690 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 184 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797049</commentid>
    <comment_count>25</comment_count>
      <attachid>180690</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 14:14:23 -0800</bug_when>
    <thetext>Comment on attachment 180690
patch for landing

Attachment 180690 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15527125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797050</commentid>
    <comment_count>26</comment_count>
      <attachid>180691</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 14:26:57 -0800</bug_when>
    <thetext>Created attachment 180691
trying to touch Platform.h

Trying to see if the build error is due to EFL&apos;s build system not doing dependencies correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797053</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 14:30:31 -0800</bug_when>
    <thetext>Attachment 180691 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 185 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797054</commentid>
    <comment_count>28</comment_count>
      <attachid>180691</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-24 14:40:13 -0800</bug_when>
    <thetext>Comment on attachment 180691
trying to touch Platform.h

Attachment 180691 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15495588</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797055</commentid>
    <comment_count>29</comment_count>
      <attachid>180691</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-24 14:43:51 -0800</bug_when>
    <thetext>Comment on attachment 180691
trying to touch Platform.h

Attachment 180691 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15496609</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797056</commentid>
    <comment_count>30</comment_count>
      <attachid>180691</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 15:05:59 -0800</bug_when>
    <thetext>Comment on attachment 180691
trying to touch Platform.h

Attachment 180691 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15490715</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797076</commentid>
    <comment_count>31</comment_count>
      <attachid>180696</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-24 19:28:09 -0800</bug_when>
    <thetext>Created attachment 180696
trying more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797077</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 19:32:55 -0800</bug_when>
    <thetext>Attachment 180696 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 186 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797078</commentid>
    <comment_count>33</comment_count>
      <attachid>180696</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-24 19:41:42 -0800</bug_when>
    <thetext>Comment on attachment 180696
trying more things

Attachment 180696 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15497652</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797079</commentid>
    <comment_count>34</comment_count>
      <attachid>180696</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-24 19:44:32 -0800</bug_when>
    <thetext>Comment on attachment 180696
trying more things

Attachment 180696 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15496679</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797080</commentid>
    <comment_count>35</comment_count>
      <attachid>180696</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-24 20:01:09 -0800</bug_when>
    <thetext>Comment on attachment 180696
trying more things

Attachment 180696 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15492693</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797110</commentid>
    <comment_count>36</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-25 00:07:37 -0800</bug_when>
    <thetext>FYI, the patch is building just fine on my machine for EFL port (despite the EWS saying otherwise). It probably just requires a clean build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797218</commentid>
    <comment_count>37</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-12-25 20:05:38 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; FYI, the patch is building just fine on my machine for EFL port (despite the EWS saying otherwise). It probably just requires a clean build?

Hmm, there are still linking errors on my PC though I build this patch from scratch.

Linking CXX executable ../../../bin/jsc
../../../lib/libjavascriptcore_efl.so.0.1.0: undefined reference to `JSC::JSValue::isGetterSetter() const&apos;
../../../lib/libjavascriptcore_efl.so.0.1.0: undefined reference to `JSC::JSValue::JSValue(JSC::JSCell*)&apos;
../../../lib/libjavascriptcore_efl.so.0.1.0: undefined reference to `JSC::JSValue::asCell() const&apos;
../../../lib/libjavascriptcore_efl.so.0.1.0: undefined reference to `JSC::JSValue::decode(long)&apos;
../../../lib/libjavascriptcore_efl.so.0.1.0: undefined reference to `JSC::JSCell::structure() const&apos;
collect2: ld returned 1 exit status
make[2]: *** [bin/jsc] Error 1
make[1]: *** [Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/all] Error 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797541</commentid>
    <comment_count>38</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-12-27 06:48:39 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (From update of attachment 180696 [details])
&gt; Attachment 180696 [details] did not pass qt-wk2-ews (qt):
&gt; Output: http://queues.webkit.org/results/15496679

There are many conflicts and I can&apos;t apply the patch on ToT:
Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/GNUmakefile.list.am
Source/JavaScriptCore/Target.pri
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/jit/JITStubs.cpp

Let&apos;s see an earlier revision - r138446. The build failed for me 
as the EWS said. I tracked down in which objects are these missing 
symbols an then I added #include &quot;Operations.h&quot; to the following 
files and now Qt build is happy on r138446:
- ErrorInstance.cpp
- NameInstance.cpp
- JSVariableObject.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799980</commentid>
    <comment_count>39</comment_count>
      <attachid>180628</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 00:41:20 -0800</bug_when>
    <thetext>Comment on attachment 180628
the patch

Cleared Sam Weinig&apos;s review+ from obsolete attachment 180628 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804731</commentid>
    <comment_count>40</comment_count>
      <attachid>182210</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-10 14:31:43 -0800</bug_when>
    <thetext>Created attachment 182210
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804748</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 14:43:50 -0800</bug_when>
    <thetext>Attachment 182210 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 178 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804750</commentid>
    <comment_count>42</comment_count>
      <attachid>182210</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-10 14:45:17 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15806116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804751</commentid>
    <comment_count>43</comment_count>
      <attachid>182210</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-10 14:46:52 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15809079</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804761</commentid>
    <comment_count>44</comment_count>
      <attachid>182210</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-10 14:56:12 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15806117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804773</commentid>
    <comment_count>45</comment_count>
      <attachid>182210</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-10 15:17:06 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15775910</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804794</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 15:44:53 -0800</bug_when>
    <thetext>Attachment 182210 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 178 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804795</commentid>
    <comment_count>47</comment_count>
      <attachid>182210</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-10 15:46:05 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15795388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804798</commentid>
    <comment_count>48</comment_count>
      <attachid>182210</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-10 15:50:15 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15811051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804821</commentid>
    <comment_count>49</comment_count>
      <attachid>182210</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-10 16:47:29 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15803142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804827</commentid>
    <comment_count>50</comment_count>
      <attachid>182210</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-10 17:03:00 -0800</bug_when>
    <thetext>Comment on attachment 182210
patch for landing

Attachment 182210 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15805138</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805573</commentid>
    <comment_count>51</comment_count>
      <attachid>182406</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-11 13:31:41 -0800</bug_when>
    <thetext>Created attachment 182406
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805575</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 13:34:15 -0800</bug_when>
    <thetext>Attachment 182406 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSBase.cpp&apos;, u&apos;S...&quot; exit_code: 1
Source/JavaScriptCore/runtime/NumberConstructor.cpp:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 181 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805826</commentid>
    <comment_count>53</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-11 20:51:10 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/139541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805828</commentid>
    <comment_count>54</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-11 20:56:06 -0800</bug_when>
    <thetext>Fixed changelogs in http://trac.webkit.org/changeset/139542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828479</commentid>
    <comment_count>55</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-08 05:42:17 -0800</bug_when>
    <thetext>(In reply to comment #53)
&gt; Landed in http://trac.webkit.org/changeset/139541
After this one https://trac.webkit.org/changeset/141185/trunk/Source/JavaScriptCore/runtime/JSGlobalData.h fixed the !ENABLE_JIT build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829842</commentid>
    <comment_count>56</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-11 10:18:43 -0800</bug_when>
    <thetext>(In reply to comment #53)
&gt; Landed in http://trac.webkit.org/changeset/139541

One more buildfix for !ENABLE(JIT) case - http://trac.webkit.org/changeset/142489</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180628</attachid>
            <date>2012-12-23 12:34:40 -0800</date>
            <delta_ts>2013-01-04 00:41:19 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>145363</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggd2FzIHN1cHBvc2VkIHRv
IGp1c3QgbW92ZSBKSVRUaHVua3MgaW50byBpdHMgb3duIGZpbGUuIEJ1dCB0aGVuIEkKKyAgICAg
ICAgcmVhbGl6ZWQgdGhhdCB0aGVyZSBpcyBhIGhvcnJpYmxlIGNpcmN1bGFyIGRlcGVuZGVuY3kg
Y2hhaW4gYmV0d2VlbiBKU0NlbGwsCisgICAgICAgIEpTR2xvYmFsRGF0YSwgQ2FsbEZyYW1lLCBh
bmQgV2Vhaywgd2hpY2ggb25seSB3b3JrcyBiZWNhdXNlIG9mIG1hZ2ljYWwgaW5jbHVkZQorICAg
ICAgICBvcmRlciBpbiBKSVRTdHVicy5oLCBhbmQgdGhlIGZhY3QgdGhhdCBKU0dsb2JhbERhdGEu
aCBpbmNsdWRlcyBKSVRTdHVicy5oCisgICAgICAgIGJlZm9yZSBpdCBpbmNsdWRlcyBKU0NlbGwg
b3IgSlNWYWx1ZS4KKyAgICAgICAgCisgICAgICAgIEkgZmlyc3QgdHJpZWQgdG8ganVzdCBnZXQg
SklUVGh1bmtzLmggdG8ganVzdCBtYWdpY2FsbHkgZG8gdGhlIHNhbWUgcG9pbnRsZXNzCisgICAg
ICAgIGluY2x1ZGVzIHRoYXQgSklUU3R1YnMuaCBoYWQsIGJ1dCB0aGVuIEkgZGVjaWRlZCB0byBh
Y3R1YWxseSBmaXggdGhlIHVuZGVyZmx5aW5nCisgICAgICAgIHByb2JsZW0sIHdoaWNoIHdhcyB0
aGF0IEpTQ2VsbCBuZWVkZWQgQ2FsbEZyYW1lLCBDYWxsRnJhbWUgbmVlZGVkIEpTR2xvYmFsRGF0
YSwKKyAgICAgICAgSlNHbG9iYWxEYXRhIG5lZWRlZCBKSVRUaHVua3MsIEpJVFRodW5rcyBuZWVk
ZWQgV2VhaywgYW5kIFdlYWsgbmVlZGVkIEpTQ2VsbC4KKyAgICAgICAgTm93LCBhbGwgb2YgSlND
ZWxsJ3Mgb3V0Z29pbmcgZGVwZW5kZW5jaWVzIGFyZSBwbGFjZWQgaW4gSlNDZWxsSW5saW5lcy5o
LiBUaGlzCisgICAgICAgIGFsc28gZ2F2ZSBtZSBhbiBvcHBvcnR1bml0eSB0byBtb3ZlIEpTVmFs
dWUgaW5saW5lIG1ldGhvZHMgZnJvbSBKU0NlbGwuaCBpbnRvCisgICAgICAgIEpTVmFsdWVJbmxp
bmVzLmguIEJ1dCB0byBtYWtlIHRoaXMgcmVhbGx5IHdvcmssIEkgbmVlZGVkIHRvIHJlbW92ZSBp
bmNsdWRlcyBvZgorICAgICAgICAqSW5saW5lcy5oIGZyb20gb3RoZXIgaGVhZGVycyAoQ29kZUJs
b2NrLmggZm9yIGV4YW1wbGUgaW5jbHVkZWQgSlNWYWx1ZUlubGluZXMuaCwKKyAgICAgICAgd2hp
Y2ggZGVmZWF0cyB0aGUgd2hvbGUgZW50aXJlIHB1cnBvc2Ugb2YgaGF2aW5nIGFuIElubGluZXMu
aCBmaWxlKSwgYW5kIEkgbmVlZGVkCisgICAgICAgIHRvIGFkZCBpbmNsdWRlcyBvZiAqSW5saW5l
cy5oIGludG8gYSBidW5jaCBvZiAuY3BwIGZpbGVzLiBJIGRpZCB0aGlzIG1vc3RseSBieQorICAg
ICAgICBoYXZpbmcgLmNwcCBmaWxlcyBpbmNsdWRlIE9wZXJhdGlvbnMuaC4gSW4gZnV0dXJlLCBp
ZiB5b3UncmUgYWRkaW5nIGEgLmNwcCBmaWxlCisgICAgICAgIHRvIEpTQywgeW91J2xsIGFsbW9z
dCBjZXJ0YWlubHkgaGF2ZSB0byBpbmNsdWRlIE9wZXJhdGlvbnMuaCB1bmxlc3MgeW91IGVuam95
CisgICAgICAgIGxpbmsgZXJyb3JzLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwOgorICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDb250
ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
SlNDVHlwZWRBcnJheVN0dWJzLmg6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVu
dFNhdmVQbGFuRm9yR1BSKToKKyAgICAgICAgKERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yRlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c2lsZW50U3BpbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzaWxlbnRGaWxsKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHA6CisgICAgICAgICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGludGVy
cHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgICog
aml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAgICAg
ICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoKKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKSVRTdGFja0ZyYW1lKToKKyAgICAgICAgKEpTQzo6SklUU3Rh
Y2tGcmFtZTo6cmV0dXJuQWRkcmVzc1Nsb3QpOgorICAgICAgICAoSlNDOjpyZXR1cm5BZGRyZXNz
SXNJbkN0aVRyYW1wb2xpbmUpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6SklUVGh1bmtzKToKKyAg
ICAgICAgKEpTQzo6SklUVGh1bmtzOjp+SklUVGh1bmtzKToKKyAgICAgICAgKEpTQzo6SklUVGh1
bmtzOjpjdGlTdHViKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHVi
KToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjbGVhckhvc3RGdW5jdGlvblN0dWJzKToKKyAg
ICAgICAgKiBqaXQvSklUVGh1bmtzLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KFRyYW1wb2xpbmVTdHJ1Y3R1cmUpOgorICAgICAgICAoSklUVGh1bmtzKToKKyAgICAgICAgKEpT
Qzo6SklUVGh1bmtzOjpjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKToKKyAgICAgICAgKEpTQzo6
SklUVGh1bmtzOjpjdGlWaXJ0dWFsQ2FsbExpbmspOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6
OmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlW
aXJ0dWFsQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmlydHVhbENvbnN0cnVj
dCk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KToKKyAgICAgICAgKiBqaXQvVGh1bmtH
ZW5lcmF0b3IuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAg
KiBwcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbXBsZXRpb24uY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHA6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0dsb2Jh
bERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0pTVmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OnRvSW50MzIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1VJbnQzMik6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc1VJbnQzMik6CisgICAgICAgIChKU0M6
OkpTVmFsdWU6OmFzVUludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNOdW1iZXIpOgor
ICAgICAgICAoSlNDOjpqc05hTik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OkpTVmFsdWUpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpk
ZWNvZGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpvcGVyYXRvciBib29sKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJh
dG9yIT0pOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6aXNVbmRlZmluZWQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc051bGwpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCk6CisgICAgICAgIChKU0M6
OkpTVmFsdWU6OmlzQ2VsbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzSW50MzIpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjppc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
VHJ1ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRmFsc2UpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjp0YWcpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwYXlsb2FkKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6YXNJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNDZWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aXNOdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0Jvb2xlYW4pOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjphc0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpyZWludGVycHJldERv
dWJsZVRvSW50NjQpOgorICAgICAgICAoSlNDOjpyZWludGVycHJldEludDY0VG9Eb3VibGUpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc1N0cmluZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6
OmlzUHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNHZXR0ZXJTZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc09iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6
OmdldFN0cmluZyk6CisgICAgICAgIChKU0M6Ojo6Z2V0U3RyaW5nKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0T2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0VUludDMyKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9QcmltaXRpdmUpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpnZXRQcmltaXRpdmVOdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b051bWJl
cik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L05hbWVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cC5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHA6CisgICAgICAgICogdGVz
dFJlZ0V4cC5jcHA6CisKIDIwMTItMTItMjEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNv
bT4KIAogICAgICAgICBERkcgQXJyYXlpZnkgc2xvdyBwYXRoIHNob3VsZCBiZSBvdXQtb2YtbGlu
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTM4NDE1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xNjYsNiArMTY2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcAogICAgIGpp
dC9KSVRTdHVicy5jcHAKKyAgICBqaXQvSklUVGh1bmtzLmNwcAogICAgIGppdC9KdW1wUmVwbGFj
ZW1lbnRXYXRjaHBvaW50LmNwcAogICAgIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMzg0
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDM0LDExICs0MzQsMTQgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5j
cHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
dW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0
b3JzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9VbnVzZWRQb2ludGVyLmggXApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KU0NUeXBlZEFycmF5U3R1YnMuaAkocmV2aXNpb24gMTM4NDE1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zsb2F0NjRB
cnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFy
Z2V0LnByaQkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1Rhcmdl
dC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgXAogICAgIGppdC9KSVRTdHViUm91dGlu
ZS5jcHAgXAogICAgIGppdC9KSVRTdHVicy5jcHAgXAorICAgIGppdC9KSVRUaHVua3MuY3BwIFwK
ICAgICBqaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgXAogICAgIGppdC9UaHVua0dl
bmVyYXRvcnMuY3BwIFwKICAgICBsbGludC9MTEludENMb29wLmNwcCBcCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0xvY2su
aCIKICNpbmNsdWRlICJKU1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSA8bWF0
aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dFJlZ0V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdF
eHAuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJl
Z0V4cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8
ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZp
c2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxs
YmFja09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAK
ICNpbmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgot
I2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlw
ZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJP
YmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvagkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTIxOTgsNiArMjE5OCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSklUVGh1bmtzLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XEpJVFRo
dW5rcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxqaXRcSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtMjIxNCw2ICsyMjIyLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxUaHVua0dlbmVyYXRvci5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcVGh1bmtHZW5lcmF0
b3JzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2
ICsxMzcsOSBAQAogCQkwRjU1RjBGNTE0RDEwNjNDMDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NUYwRjIxNEQx
MDYzNjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU2QTFEMzE1MDAwRjM1MDAyOTkyQjEgLyogRXhlY3V0
aW9uQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1NkExRDExNTAwMEYzMTAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU2QTFENTE1MDAx
Q0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhl
Y3V0aW9uQ291bnRlci5jcHAgKi87IH07CisJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBU
aHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1RUY5MUUxNjg3
OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtz
LmNwcCAqLzsgfTsKKwkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJVFRodW5rcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RUY5MUMxNjg3
OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNUYwOENGMTQ2Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRp
dGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXpl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
NjIwMTc0MTQzRkNEMzMwMDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjIwMTcyMTQzRkNEMkYw
MDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyog
REZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY2MjAxNzAxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Jhc2ljQmxvY2suaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTc1LDYgKzk3OCw5
IEBACiAJCTBGNTVGMEYyMTREMTA2MzYwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0UEMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1NkExRDExNTAwMEYzMTAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhlY3V0aW9uQ291bnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyog
RXhlY3V0aW9uQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFeGVjdXRpb25Db3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1
NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5rR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNUVGOTFCMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUVGh1bmtzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5r
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRUaHVua3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RjA4Q0MxNDZCRTYwMjAwMDQ3MkE5IC8qIERGR0J5
dGVDb2RlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQnl0ZUNv
ZGVDYWNoZS5oOyBwYXRoID0gZGZnL0RGR0J5dGVDb2RlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY1RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5jb25kaXRpb25h
bEZpbmFsaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2RDE0M0ZD
RDJGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBYnN0cmFjdFN0YXRlLmNwcDsgcGF0aCA9IGRmZy9ERkdBYnN0
cmFjdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MDQsNyArMTkx
MCw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjczRDdBQjE2NUExNDJBMDBBQ0FCNzEgLyog
Q2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJCQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNB
QjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAqLywKLQkJCQk2NTk4N0YyRjE2ODI4QTdF
MDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAogCQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3
OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAogCQkJCUE3QjQ4REI2MEVFNzRDRkMwMERD
QkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZD
MDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oICovLApAQCAtMTkzNywxMyArMTk0Miwx
NyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZS5oICov
LAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAvKiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJ
MTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0dWJzLmggKi8sCisJCQkJMEY1RUY5MUIx
Njg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgKi8sCisJCQkJMEY1RUY5MUMxNjg3OEY3
ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJD
RSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUg
LyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyog
SnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8sCiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAw
OEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCAqLywKIAkJCQlBNzM4NjU1MTEx
ODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVua0pJVC5oICovLAorCQkJCTBGNTcyRDRE
MTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLAogCQkJCUE3Mzg2NTUyMTE4
Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuY3BwICovLAogCQkJCUE3Mzg2NTUzMTE4
Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuaCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4
QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjAzLDggQEAKIAkJCQlB
N0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFj
ZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFGNDVCIC8q
IERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUVG
OTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0zODEzLDYgKzM4MjQsNyBAQAogCQkJCTBGMTM5MTJCMTY3NzFDM0EwMDlDQ0IwNyAvKiBQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QzBDNEFE
MTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVGQzlBQTE2ODFBM0IzMDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFjZWhvbGRlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5j
bHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJSZWR1Y2VXaGl0ZXNwYWNlLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgog
I2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNh
Y2hlLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkRGR0J5dGVD
b2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJHZXRC
eUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJQdXRC
eUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2JhbFN0YXR1cy5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgog
I2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJBcnJheVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkRGR0NhbGxBcnJheUFsbG9j
YXRvclNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlw
ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTM4
NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJERkdBcnJheWlmeVNs
b3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1Bh
dGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC0zNjQsNiArMzY1LDI3NiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjbGVhckdlbmVyYXRpb25JbmZvCiAgICAgbV9mcHJzID0gUmVnaXN0ZXJCYW5r
PEZQUkluZm8+KCk7CiB9CiAKK1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6
OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291
cmNlKQoreworICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tzcGls
bE1lXTsKKyAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKKyAgICBO
b2RlJiBub2RlID0gYXQobm9kZUluZGV4KTsKKyAgICBEYXRhRm9ybWF0IHJlZ2lzdGVyRm9ybWF0
ID0gaW5mby5yZWdpc3RlckZvcm1hdCgpOworICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBE
YXRhRm9ybWF0Tm9uZSk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXRE
b3VibGUpOworICAgICAgICAKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGlsbEFjdGlvbjsKKyAg
ICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAgIGlmICghaW5mby5u
ZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5nRm9yU3BpbGw7Cisg
ICAgZWxzZSB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkg
PT0gc291cmNlKTsKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRl
Z2VyKQorICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAg
ZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgcmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UpCisgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
UHRyOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAm
IERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlNjQ7CisgICAg
ICAgIH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGlmIChyZWdpc3RlckZvcm1h
dCAmIERhdGFGb3JtYXRKUykgeworICAgICAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0g
c291cmNlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQ
YXlsb2FkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkg
PT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7Cisg
ICAgICAgIH0KKyNlbmRpZgorICAgIH0KKyAgICAgICAgCisgICAgaWYgKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNv
dXJjZSk7CisgICAgICAgIEFTU0VSVChpc0pTSW50ZWdlcihpbmZvLnJlZ2lzdGVyRm9ybWF0KCkp
KTsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgQVNTRVJU
KGlzSW50MzJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBT
ZXRJbnQzMkNvbnN0YW50OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEJvb2xlYW4pIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IERvTm90aGluZ0ZvckZpbGw7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNC
b29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0
Qm9vbGVhbkNvbnN0YW50OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworI2VuZGlmCisgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9
PSBEYXRhRm9ybWF0Q2VsbCkgeworICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2Up
OworICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBKU1ZhbHVl
IHZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KTsKKyAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQodmFsdWUsIHZhbHVlLmlzQ2VsbCgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBTZXRDZWxsQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOworI2Vsc2UKKyAgICAgICAgICAgIGZp
bGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOworI2VuZGlmCisgICAgICAgIH0KKyAgICB9IGVsc2Ug
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7CisgICAgICAgIEFTU0VS
VChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRK
Uyk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291
cmNlKTsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgaWYg
KHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCkuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAg
ZmlsbEFjdGlvbiA9IFNldFRydXN0ZWRKU0NvbnN0YW50OworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRKU0NvbnN0YW50OworICAgICAgICB9IGVsc2Ug
aWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50ZWdlcikgeworICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOworICAgICAg
ICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWRCb3hJbnQ7CisgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUpIHsKKyAgICAgICAgICAg
IEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOworICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGVCb3hEb3VibGU7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbmZv
LnRhZ0dQUigpID09IHNvdXJjZSB8fCBpbmZvLnBheWxvYWRHUFIoKSA9PSBzb3VyY2UpOworICAg
ICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGlu
Zm8udGFnR1BSKCkgPT0gc291cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQ
YXlsb2FkOworICAgICAgICBlbHNlIGlmIChpbmZvLnBheWxvYWRHUFIoKSA9PSBzb3VyY2UpCisg
ICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKKyAgICAgICAgZWxzZSB7IC8v
IEZpbGwgdGhlIFRhZworICAgICAgICAgICAgc3dpdGNoIChpbmZvLnNwaWxsRm9ybWF0KCkpIHsK
KyAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludGVnZXI6CisgICAgICAgICAgICAgICAgQVNT
RVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOworICAgICAgICAgICAg
ICAgIGZpbGxBY3Rpb24gPSBTZXRJbnQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CisgICAgICAgICAgICAgICAgQVNTRVJUKHJl
Z2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0NlbGwpOworICAgICAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBTZXRDZWxsVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJG
b3JtYXQgPT0gRGF0YUZvcm1hdEpTQm9vbGVhbik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEJvb2xlYW5UYWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0K
KyAgICAgICAgCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4oc3BpbGxBY3Rpb24s
IGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAgICAKK1NpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdp
c3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQoreworICAgIEdlbmVyYXRpb25JbmZvJiBpbmZv
ID0gbV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1lXTsKKyAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKKyAgICBOb2RlJiBub2RlID0gYXQobm9kZUluZGV4KTsKKyAgICBB
U1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUpOworCisgICAg
U2lsZW50U3BpbGxBY3Rpb24gc3BpbGxBY3Rpb247CisgICAgU2lsZW50RmlsbEFjdGlvbiBmaWxs
QWN0aW9uOworICAgICAgICAKKyAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpKQorICAgICAgICBz
cGlsbEFjdGlvbiA9IERvTm90aGluZ0ZvclNwaWxsOworICAgIGVsc2UgeworICAgICAgICBBU1NF
UlQoIWF0KGluZm8ubm9kZUluZGV4KCkpLmhhc0NvbnN0YW50KCkpOworICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKKyAgICAgICAgQVNTRVJUKGlu
Zm8uZnByKCkgPT0gc291cmNlKTsKKyAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZURvdWJsZTsK
KyAgICB9CisgICAgICAgIAorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgeworICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsK
KyAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZSBpZiAo
aW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXROb25lICYmIGluZm8uc3BpbGxGb3JtYXQo
KSAhPSBEYXRhRm9ybWF0RG91YmxlKSB7CisgICAgICAgIC8vIGl0IHdhcyBhbHJlYWR5IHNwaWxs
ZWQgcHJldmlvdXNseSBhbmQgbm90IGFzIGEgZG91YmxlLCB3aGljaCBtZWFucyB3ZSBuZWVkIHVu
Ym94aW5nLgorICAgICAgICBBU1NFUlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpT
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRKU1VuYm94RG91YmxlOworICAgIH0gZWxzZQor
ICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERvdWJsZTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlIHx8
IGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOworICAgIGlmIChu
b2RlLmhhc0NvbnN0YW50KCkpIHsKKyAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQobm9k
ZUluZGV4KSk7CisgICAgICAgIGZpbGxBY3Rpb24gPSBTZXREb3VibGVDb25zdGFudDsKKyAgICB9
IGVsc2UKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7CisjZW5kaWYKKworICAgIHJl
dHVybiBTaWxlbnRSZWdpc3RlclNhdmVQbGFuKHNwaWxsQWN0aW9uLCBmaWxsQWN0aW9uLCBub2Rl
SW5kZXgsIHNvdXJjZSk7Cit9CisgICAgCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGls
bChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuKQoreworICAgIHN3aXRjaCAocGxh
bi5zcGlsbEFjdGlvbigpKSB7CisgICAgY2FzZSBEb05vdGhpbmdGb3JTcGlsbDoKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTdG9yZTMyVGFnOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBsYW4u
Z3ByKCksIEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZTMyUGF5bG9hZDoKKyAg
ICAgICAgbV9qaXQuc3RvcmUzMihwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6cGF5bG9hZEZvcihh
dChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFN0b3JlUHRyOgorICAgICAgICBtX2ppdC5zdG9yZVB0cihwbGFuLmdwcigpLCBK
SVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSkpOworICAgICAgICBicmVhazsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNhc2UgU3Rv
cmU2NDoKKyAgICAgICAgbV9qaXQuc3RvcmU2NChwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6YWRk
cmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgU3RvcmVEb3VibGU6CisgICAgICAgIG1faml0LnN0
b3JlRG91YmxlKHBsYW4uZnByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKyAgICAKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYg
cGxhbiwgR1BSUmVnIGNhblRyYW1wbGUpCit7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBV
TlVTRURfUEFSQU0oY2FuVHJhbXBsZSk7CisjZW5kaWYKKyAgICBzd2l0Y2ggKHBsYW4uZmlsbEFj
dGlvbigpKSB7CisgICAgY2FzZSBEb05vdGhpbmdGb3JGaWxsOgorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNldEludDMyQ29uc3RhbnQ6CisgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVP
ZkludDMyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuQ29uc3RhbnQ6CisgICAgICAgIG1faml0Lm1vdmUo
VHJ1c3RlZEltbTMyKHZhbHVlT2ZCb29sZWFuQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpLCBw
bGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRDZWxsQ29uc3RhbnQ6Cisg
ICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKS5hc0NlbGwoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhc2UgU2V0VHJ1c3RlZEpTQ29uc3RhbnQ6CisgICAgICAgIG1f
aml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbTY0KHBsYW4ubm9kZUluZGV4KCkpLmFzVHJ1
c3RlZEltbTY0KCksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEpT
Q29uc3RhbnQ6CisgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbTY0KHBs
YW4ubm9kZUluZGV4KCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBT
ZXREb3VibGVDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShJbW02NChyZWludGVycHJldERv
dWJsZVRvSW50NjQodmFsdWVPZk51bWJlckNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpKSksIGNh
blRyYW1wbGUpOworICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5UcmFtcGxlLCBwbGFu
LmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMzJQYXlsb2FkQm94SW50Ogor
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2Rl
SW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgbV9qaXQu
b3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBsYW4uZ3ByKCkpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIExvYWREb3VibGVCb3hEb3VibGU6CisgICAgICAgIG1faml0Lmxv
YWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFs
UmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5zdWI2NChHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIExvYWRKU1VuYm94RG91YmxlOgorICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBjYW5U
cmFtcGxlKTsKKyAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7Cisg
ICAgICAgIGJyZWFrOworI2Vsc2UKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRUYWc6CisgICAgICAg
IG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkudGFn
KCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRKU0NvbnN0YW50
UGF5bG9hZDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTZXRJbnQzMlRhZzoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6SW50MzJUYWcpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBT
ZXRDZWxsVGFnOgorICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0Qm9vbGVhblRh
ZzoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyks
IHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50
OgorICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRvdWJsZUNvbnN0YW50KHBsYW4u
bm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBj
YXNlIExvYWQzMlRhZzoKKyAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3Io
YXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5sb2Fk
MzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkUHRy
OgorICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4u
bm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJy
ZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBMb2FkNjQ6CisgICAgICAgIG1faml0
LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAg
IGNhc2UgTG9hZERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4u
ZnByKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisgICAgCiBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciog
U3BlY3VsYXRpdmVKSVQ6OnR5cGVkQXJyYXlEZXNjcmlwdG9yKEFycmF5TW9kZSBhcnJheU1vZGUp
CiB7CiAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxMzg0MTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzMiwyNzUgKzMzMiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gdGhleSBzcGlsbCBh
bGwgbGl2ZSB2YWx1ZXMgdG8gdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gc2xvdHMgaW4gdGhlIEpT
U3RhY2sgd2l0aG91dCBjaGFuZ2luZyBhbnkgc3RhdGUKICAgICAvLyBpbiB0aGUgR2VuZXJhdGlv
bkluZm8uCi0gICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckdQUihW
aXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIEdl
bmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1lXTsKLSAgICAgICAg
Tm9kZUluZGV4IG5vZGVJbmRleCA9IGluZm8ubm9kZUluZGV4KCk7Ci0gICAgICAgIE5vZGUmIG5v
ZGUgPSBhdChub2RlSW5kZXgpOwotICAgICAgICBEYXRhRm9ybWF0IHJlZ2lzdGVyRm9ybWF0ID0g
aW5mby5yZWdpc3RlckZvcm1hdCgpOwotICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0g
RGF0YUZvcm1hdE5vbmUpOwotICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZv
cm1hdERvdWJsZSk7Ci0gICAgICAgIAotICAgICAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGlsbEFj
dGlvbjsKLSAgICAgICAgU2lsZW50RmlsbEFjdGlvbiBmaWxsQWN0aW9uOwotICAgICAgICAKLSAg
ICAgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKLSAgICAgICAgICAgIHNwaWxsQWN0aW9uID0g
RG9Ob3RoaW5nRm9yU3BpbGw7Ci0gICAgICAgIGVsc2UgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYg
KHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKQotICAgICAgICAgICAgICAgIHNw
aWxsQWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7Ci0gICAgICAgICAgICBlbHNlIGlmIChyZWdpc3Rl
ckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
U3RvcmFnZSkKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlUHRyOwotICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0
YUZvcm1hdEpTKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlNjQ7Ci0gICAg
ICAgICAgICB9Ci0jZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgaWYgKHJlZ2lz
dGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGluZm8u
dGFnR1BSKCkgPT0gc291cmNlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7Ci0gICAg
ICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBzb3VyY2UgPT0gaW5mby50YWdHUFIoKSA/IFN0b3Jl
MzJUYWcgOiBTdG9yZTMyUGF5bG9hZDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOwotICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50
ZWdlcikgewotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKLSAgICAg
ICAgICAgIEFTU0VSVChpc0pTSW50ZWdlcihpbmZvLnJlZ2lzdGVyRm9ybWF0KCkpKTsKLSAgICAg
ICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQo
aXNJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBTZXRJbnQzMkNvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
ZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7Ci0gICAgICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJG
b3JtYXQgPT0gRGF0YUZvcm1hdEJvb2xlYW4pIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gRG9O
b3RoaW5nRm9yRmlsbDsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3Rh
bnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhbkNvbnN0YW50Owot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBh
eWxvYWQ7Ci0jZW5kaWYKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRh
Rm9ybWF0Q2VsbCkgewotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsK
LSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgICAgICBK
U1ZhbHVlIHZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KTsKLSAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCB2YWx1ZS5pc0NlbGwoKSk7Ci0gICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0j
aWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZFB0cjsK
LSNlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7Ci0jZW5k
aWYKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBE
YXRhRm9ybWF0U3RvcmFnZSkgewotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291
cmNlKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKLSNp
ZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KS5pc0NlbGwoKSkKLSAgICAgICAgICAg
ICAgICAgICAgZmlsbEFjdGlvbiA9IFNldFRydXN0ZWRKU0NvbnN0YW50OwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEpTQ29uc3RhbnQ7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0
SW50ZWdlcikgewotICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRh
Rm9ybWF0SlNJbnRlZ2VyKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZEJveEludDsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09
IERhdGFGb3JtYXREb3VibGUpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZERvdWJsZUJveERvdWJsZTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkNjQ7Ci0jZWxzZQotICAgICAgICAgICAgQVNTRVJUKGluZm8udGFn
R1BSKCkgPT0gc291cmNlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7Ci0gICAgICAg
ICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKQotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBpbmZvLnRhZ0dQUigpID09IHNvdXJjZSA/IFNldEpTQ29uc3RhbnRUYWcgOiBTZXRKU0NvbnN0
YW50UGF5bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNv
dXJjZSkKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSAgICAg
ICAgICAgIGVsc2UgeyAvLyBGaWxsIHRoZSBUYWcKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKGlu
Zm8uc3BpbGxGb3JtYXQoKSkgewotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludGVn
ZXI6Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9y
bWF0SlNJbnRlZ2VyKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMy
VGFnOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIERh
dGFGb3JtYXRDZWxsOgotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQg
PT0gRGF0YUZvcm1hdEpTQ2VsbCk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBT
ZXRDZWxsVGFnOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBj
YXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0
ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTQm9vbGVhbik7Ci0gICAgICAgICAgICAgICAgICAgIGZp
bGxBY3Rpb24gPSBTZXRCb29sZWFuVGFnOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDMyVGFnOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0
dXJuIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJ
bmRleCwgc291cmNlKTsKLSAgICB9Ci0gICAgCi0gICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBz
aWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJj
ZSkKLSAgICB7Ci0gICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5m
b1tzcGlsbE1lXTsKLSAgICAgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGluZm8ubm9kZUluZGV4
KCk7Ci0gICAgICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOwotICAgICAgICBBU1NFUlQo
aW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUpOwotCi0gICAgICAgIFNp
bGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRGaWxsQWN0aW9uIGZp
bGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpKQotICAg
ICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBBU1NFUlQoIWF0KGluZm8ubm9kZUluZGV4KCkpLmhhc0NvbnN0YW50KCkp
OwotICAgICAgICAgICAgQVNTRVJUKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0Tm9u
ZSk7Ci0gICAgICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZURvdWJsZTsKLSAgICAgICAgfQotICAgICAgICAKLSNpZiBV
U0UoSlNWQUxVRTY0KQotICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKLSAgICAgICAgICAgIGZp
bGxBY3Rpb24gPSBTZXREb3VibGVDb25zdGFudDsKLSAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNw
aWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERh
dGFGb3JtYXREb3VibGUpIHsKLSAgICAgICAgICAgIC8vIGl0IHdhcyBhbHJlYWR5IHNwaWxsZWQg
cHJldmlvdXNseSBhbmQgbm90IGFzIGEgZG91YmxlLCB3aGljaCBtZWFucyB3ZSBuZWVkIHVuYm94
aW5nLgotICAgICAgICAgICAgQVNTRVJUKGluZm8uc3BpbGxGb3JtYXQoKSAmIERhdGFGb3JtYXRK
Uyk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZEpTVW5ib3hEb3VibGU7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0jZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICBBU1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERh
dGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXRKU0Rv
dWJsZSk7Ci0gICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldERvdWJsZUNvbnN0YW50OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkRG91YmxlOwotI2VuZGlmCi0KLSAgICAgICAgcmV0dXJuIFNpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsK
LSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRTcGlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNh
dmVQbGFuJiBwbGFuKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkp
IHsKLSAgICAgICAgY2FzZSBEb05vdGhpbmdGb3JTcGlsbDoKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFN0b3JlMzJUYWc6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHBsYW4u
Z3ByKCksIEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFN0b3JlMzJQYXls
b2FkOgotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6
cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmVQdHI6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZVB0cihwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jaWYg
VVNFKEpTVkFMVUU2NCkKLSAgICAgICAgY2FzZSBTdG9yZTY0OgotICAgICAgICAgICAgbV9qaXQu
c3RvcmU2NChwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJ
bmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYK
LSAgICAgICAgY2FzZSBTdG9yZURvdWJsZToKLSAgICAgICAgICAgIG1faml0LnN0b3JlRG91Ymxl
KHBsYW4uZnByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkp
LnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAgfQot
ICAgIAotICAgIHZvaWQgc2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBw
bGFuLCBHUFJSZWcgY2FuVHJhbXBsZSkKLSAgICB7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAg
ICAgICAgVU5VU0VEX1BBUkFNKGNhblRyYW1wbGUpOwotI2VuZGlmCi0gICAgICAgIHN3aXRjaCAo
cGxhbi5maWxsQWN0aW9uKCkpIHsKLSAgICAgICAgY2FzZSBEb05vdGhpbmdGb3JGaWxsOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0SW50MzJDb25zdGFudDoKLSAgICAgICAg
ICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkludDMyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKHZhbHVl
T2ZCb29sZWFuQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpLCBwbGFuLmdwcigpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxDb25zdGFudDoKLSAgICAgICAgICAg
IG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRl
eCgpKS5hc0NlbGwoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jaWYgVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgY2FzZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKLSAgICAgICAg
ICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbTY0KHBsYW4ubm9kZUluZGV4KCkp
LmFzVHJ1c3RlZEltbTY0KCksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgU2V0SlNDb25zdGFudDoKLSAgICAgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpT
Q29uc3RhbnRBc0ltbTY0KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgotICAgICAgICAgICAg
bV9qaXQubW92ZShJbW02NChyZWludGVycHJldERvdWJsZVRvSW50NjQodmFsdWVPZk51bWJlckNv
bnN0YW50KHBsYW4ubm9kZUluZGV4KCkpKSksIGNhblRyYW1wbGUpOwotICAgICAgICAgICAgbV9q
aXQubW92ZTY0VG9Eb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBMb2FkMzJQYXlsb2FkQm94SW50OgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBtX2ppdC5vcjY0KEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlQm94RG91YmxlOgotICAgICAgICAgICAgbV9q
aXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdWI2NChH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6Ci0gICAgICAgICAgICBtX2pp
dC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmly
dHVhbFJlZ2lzdGVyKCkpLCBjYW5UcmFtcGxlKTsKLSAgICAgICAgICAgIHVuYm94RG91YmxlKGNh
blRyYW1wbGUsIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZWxzZQotICAgICAg
ICBjYXNlIFNldEpTQ29uc3RhbnRUYWc6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZh
bHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnRhZygpKSwgcGxhbi5ncHIoKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50UGF5bG9hZDoKLSAg
ICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5k
ZXgoKSkucGF5bG9hZCgpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMlRhZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBTZXRDZWxsVGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgU2V0Qm9vbGVhblRhZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkJvb2xlYW5UYWcpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQu
bG9hZERvdWJsZShhZGRyZXNzT2ZEb3VibGVDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSwgcGxh
bi5mcHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIExvYWQz
MlRhZzoKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKGF0KHBs
YW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMb2FkMzJQYXlsb2FkOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBMb2FkUHRyOgotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4u
Z3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAg
Y2FzZSBMb2FkNjQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigp
KTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZERvdWJsZToK
LSAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQo
cGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmZwcigpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBz
aWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIHNvdXJj
ZSk7CisgICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0
dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJjZSk7CisgICAgdm9pZCBzaWxlbnRTcGls
bChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuKTsKKyAgICB2b2lkIHNpbGVudEZp
bGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYgcGxhbiwgR1BSUmVnIGNhblRyYW1wbGUp
OwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgogICAgIHZvaWQg
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGJvb2wgZG9TcGlsbCwgQ29sbGVjdGlvblR5cGUm
IHBsYW5zLCBHUFJSZWcgZXhjbHVkZSwgR1BSUmVnIGV4Y2x1ZGUyID0gSW52YWxpZEdQUlJlZywg
RlBSUmVnIGZwckV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBACiAjaW5jbHVkZSAiQ29weVdvcmtMaXN0LmgiCiAjaW5jbHVkZSAiSGVhcEJsb2NrLmgi
CiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgotI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5oIgogI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCiAKIG5hbWVz
cGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJKHJldmlz
aW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUo
TExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCisjaW5jbHVkZSAi
SlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc2LDU4ICs3NzYsNyBAQCBfX2Fz
bSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQogICAgICNkZWZpbmUgQ1RJX1NBTVBMRVIgMAog
I2VuZGlmCiAKLUpJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkK
LSAgICA6IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcChhZG9wdFB0cihuZXcgSG9zdEZ1bmN0aW9uU3R1
Yk1hcCkpCi17Ci0gICAgaWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbV9leGVjdXRhYmxlTWVtb3J5ID0gSklUOjpjb21waWxlQ1RJTWFjaGluZVRy
YW1wb2xpbmVzKGdsb2JhbERhdGEsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VS
VCghIW1fZXhlY3V0YWJsZU1lbW9yeSk7Ci0jaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAgLy8gVW5m
b3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ugb2Ygb2Zmc2V0
b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0eXBlcyksCi0g
ICAgLy8gYW5kIHRoZSBPQkpFQ1RfT0ZGU0VUT0YgbWFjcm8gZG9lcyBub3QgYXBwZWFyIGNvbnN0
YW50aXNoIGVub3VnaCBmb3IgaXQgdG8gYmUgaGFwcHkgd2l0aCBpdHMgdXNlIGluIENPTVBJTEVf
QVNTRVJUCi0gICAgLy8gbWFjcm9zLgotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURfUjRfT0ZGU0VUKTsKLSAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNSkg
PT0gUFJFU0VSVkVEX1I1X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1
Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjYpID09IFBSRVNFUlZFRF9SNl9PRkZTRVQpOwot
ICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZl
ZFI3KSA9PSBQUkVTRVJWRURfUjdfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOCkgPT0gUFJFU0VSVkVEX1I4X09GRlNF
VCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJl
c2VydmVkUjkpID09IFBSRVNFUlZFRF9SOV9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMCkgPT0gUFJFU0VSVkVEX1Ix
MF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZFIxMSkgPT0gUFJFU0VSVkVEX1IxMV9PRkZTRVQpOwotCi0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVS
X0ZJTEVfT0ZGU0VUKTsKLSAgICAvLyBUaGUgZmlmdGggYXJndW1lbnQgaXMgdGhlIGZpcnN0IGl0
ZW0gYWxyZWFkeSBvbiB0aGUgc3RhY2suCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1
Y3QgSklUU3RhY2tGcmFtZSwgdW51c2VkMSkgPT0gRklSU1RfU1RBQ0tfQVJHVU1FTlQpOwotCi0g
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1
cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotCi0jZWxpZiBDUFUo
QVJNX1RSQURJVElPTkFMKQotCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19P
RkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURSNF9PRkZTRVQpOwotCi0KLSNlbGlmIENQVShNSVBT
KQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1MwX09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQUkVTRVJWRURf
UzJfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0g
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09
IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBnbG9iYWxEYXRhKSA9PSBHTE9CQUxfREFUQV9PRkZTRVQpOwotCi0j
ZW5kaWYKLX0KLQotSklUVGh1bmtzOjp+SklUVGh1bmtzKCkKLXsKLX0KLQotTkVWRVJfSU5MSU5F
IHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENv
ZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFs
dWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCitORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3Qg
UHV0UHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wg
ZGlyZWN0KQogewogICAgIC8vIFRoZSBpbnRlcnByZXRlciBjaGVja3MgZm9yIHJlY3Vyc2lvbiBo
ZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2FuIG9jY3VyIGluIENUSS4KIApAQCAtODgxLDcg
KzgzMCw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVQdXQKICAgICBK
SVQ6OnBhdGNoUHV0QnlJZFJlcGxhY2UoY29kZUJsb2NrLCBzdHViSW5mbywgc3RydWN0dXJlLCBz
bG90LmNhY2hlZE9mZnNldCgpLCByZXR1cm5BZGRyZXNzLCBkaXJlY3QpOwogfQogCi1ORVZFUl9J
TkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
SlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3Qg
UHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pCitORVZFUl9J
TkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1Zh
bHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykKIHsKICAgICAvLyBG
SVhNRTogV3JpdGUgYSB0ZXN0IHRoYXQgcHJvdmVzIHdlIG5lZWQgdG8gY2hlY2sgZm9yIHJlY3Vy
c2lvbiBoZXJlIGp1c3QKICAgICAvLyBsaWtlIHRoZSBpbnRlcnByZXRlciBkb2VzLCB0aGVuIGFk
ZCBhIGNoZWNrIGZvciByZWN1cnNpb24uCkBAIC0xNDQ0LDcgKzEzOTMsNyBAQCBERUZJTkVfU1RV
Ql9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWQpCiAgICAgICAgIGlmICghc3R1YkluZm8tPnNl
ZW5PbmNlKCkpCiAgICAgICAgICAgICBzdHViSW5mby0+c2V0U2VlbigpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVC
bG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwg
c2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKKyAgICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxs
RnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBd
LmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKICAgICB9CiAgICAgCiAgICAgQ0hF
Q0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAgLTE0NzAsNyArMTQxOSw3IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9pZF8KICAgICAgICAgaWYgKCFzdHViSW5mby0+
c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJbmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29k
ZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgp
LCBzbG90LCBzdHViSW5mbywgdHJ1ZSk7CisgICAgICAgICAgICB0cnlDYWNoZVB1dEJ5SUQoY2Fs
bEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIHN0YWNrRnJhbWUuYXJnc1sw
XS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKICAgICB9CiAgICAgCiAgICAgQ0hF
Q0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKQEAgLTE1NDUsNyArMTQ5NCw3IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF8KICAgICBpZiAoIXN0dWJJbmZvLT5zZWVu
T25jZSgpKQogICAgICAgICBzdHViSW5mby0+c2V0U2VlbigpOwogICAgIGVsc2UKLSAgICAgICAg
SklUVGh1bmtzOjp0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVU
VVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0dWJJbmZvKTsKKyAgICAgICAg
dHJ5Q2FjaGVHZXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNT
LCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCBzdHViSW5mbyk7CiAKICAgICBDSEVDS19GT1JfRVhD
RVBUSU9OX0FUX0VORCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAg
LTM0MTIsNDggKzMzNjEsNiBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwg
dG9fCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1
ZSgpLnRvT2JqZWN0KGNhbGxGcmFtZSkpOwogfQogCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgSklU
VGh1bmtzOjpjdGlTdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVGh1bmtHZW5lcmF0b3Ig
Z2VuZXJhdG9yKQotewotICAgIENUSVN0dWJNYXA6OkFkZFJlc3VsdCBlbnRyeSA9IG1fY3RpU3R1
Yk1hcC5hZGQoZ2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYoKSk7Ci0gICAgaWYgKGVu
dHJ5LmlzTmV3RW50cnkpCi0gICAgICAgIGVudHJ5Lml0ZXJhdG9yLT52YWx1ZSA9IGdlbmVyYXRv
cihnbG9iYWxEYXRhKTsKLSAgICByZXR1cm4gZW50cnkuaXRlcmF0b3ItPnZhbHVlOwotfQotCi1O
YXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29u
c3RydWN0b3IpCi17Ci0gICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUg
PSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBu
YXRpdmVFeGVjdXRhYmxlOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJs
ZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgSklUOjpjb21waWxlQ1RJ
TmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSks
IGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7Ci0gICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25T
dHViTWFwLCBmdW5jdGlvbiwgUGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0
YWJsZSkpOwotICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotfQotCi1OYXRpdmVFeGVjdXRh
YmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
LCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yLCBJbnRy
aW5zaWMgaW50cmluc2ljKQotewotICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVj
dXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rpb24pKQotICAgICAgICBy
ZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2Rl
OwotICAgIGlmIChnZW5lcmF0b3IpIHsKLSAgICAgICAgaWYgKGdsb2JhbERhdGEtPmNhblVzZUpJ
VCgpKQotICAgICAgICAgICAgY29kZSA9IGdlbmVyYXRvcihnbG9iYWxEYXRhKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29kZSA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOwotICAgIH0g
ZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRh
LCBmdW5jdGlvbik7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0g
TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBjb2RlLCBmdW5jdGlvbiwgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29u
c3RydWN0KCkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmluc2ljKTsKLSAg
ICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxOYXRp
dmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4ZWN1
dGFibGU7Ci19Ci0KLXZvaWQgSklUVGh1bmtzOjpjbGVhckhvc3RGdW5jdGlvblN0dWJzKCkKLXsK
LSAgICBtX2hvc3RGdW5jdGlvblN0dWJNYXAuY2xlYXIoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwyMzQgKzM2LDIyMiBAQAogI2luY2x1
ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiUmVzb2x2ZU9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxF
KEpJVCkKIAotICAgIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbzsKK3N0cnVjdCBTdHJ1Y3R1cmVT
dHViSW5mbzsKIAotICAgIGNsYXNzIEFycmF5QWxsb2NhdGlvblByb2ZpbGU7Ci0gICAgY2xhc3Mg
Q29kZUJsb2NrOwotICAgIGNsYXNzIEV4ZWN1dGFibGVQb29sOwotICAgIGNsYXNzIEZ1bmN0aW9u
RXhlY3V0YWJsZTsKLSAgICBjbGFzcyBJZGVudGlmaWVyOwotICAgIGNsYXNzIEpTR2xvYmFsRGF0
YTsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKLSAgICBjbGFzcyBKU09iamVjdDsKLSAgICBj
bGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgIGNsYXNzIEpTU3RhY2s7Ci0gICAgY2xh
c3MgSlNWYWx1ZTsKLSAgICBjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKLSAgICBjbGFz
cyBMZWdhY3lQcm9maWxlcjsKLSAgICBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOwotICAgIGNsYXNz
IFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBQdXRQcm9wZXJ0eVNsb3Q7Ci0gICAgY2xhc3MgUmVn
RXhwOwotICAgIGNsYXNzIFN0cnVjdHVyZTsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBj
bGFzcyBXZWFrOwotCi0gICAgdW5pb24gSklUU3R1YkFyZyB7Ci0gICAgICAgIHZvaWQqIGFzUG9p
bnRlcjsKLSAgICAgICAgRW5jb2RlZEpTVmFsdWUgYXNFbmNvZGVkSlNWYWx1ZTsKLSAgICAgICAg
aW50MzJfdCBhc0ludDMyOwotCi0gICAgICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQotICAgICAgICBKU09iamVjdCoganNP
YmplY3QoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAg
ICAgICAgUmVnaXN0ZXIqIHJlZygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4oYXNQ
b2ludGVyKTsgfQotICAgICAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0
YXRpY19jYXN0PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIGludDMyX3QgaW50
MzIoKSB7IHJldHVybiBhc0ludDMyOyB9Ci0gICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29kZUJsb2NrKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rp
b25FeGVjdXRhYmxlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdFeHAqIHJlZ0V4cCgpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFJlZ0V4cCo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxP
YmplY3QqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTU3RyaW5nKiBqc1N0cmluZygpIHsgcmV0
dXJuIHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0cnVjdHVyZSo+KGFzUG9pbnRl
cik7IH0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKCkgeyByZXR1cm4g
UmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJlc29sdmVPcGVyYXRpb25z
KiByZXNvbHZlT3BlcmF0aW9ucygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlc29sdmVPcGVyYXRp
b25zKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBQdXRUb0Jhc2VPcGVyYXRpb24qIHB1dFRvQmFz
ZU9wZXJhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFB1dFRvQmFzZU9wZXJhdGlvbio+KGFz
UG9pbnRlcik7IH0KLSAgICAgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgfTsKK2NsYXNzIEFycmF5QWxsb2NhdGlvblByb2ZpbGU7Citj
bGFzcyBDb2RlQmxvY2s7CitjbGFzcyBFeGVjdXRhYmxlUG9vbDsKK2NsYXNzIEZ1bmN0aW9uRXhl
Y3V0YWJsZTsKK2NsYXNzIElkZW50aWZpZXI7CitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBK
U0dsb2JhbE9iamVjdDsKK2NsYXNzIEpTT2JqZWN0OworY2xhc3MgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcjsKK2NsYXNzIEpTU3RhY2s7CitjbGFzcyBKU1ZhbHVlOworY2xhc3MgSlNWYWx1ZUVuY29k
ZWRBc1BvaW50ZXI7CitjbGFzcyBMZWdhY3lQcm9maWxlcjsKK2NsYXNzIE5hdGl2ZUV4ZWN1dGFi
bGU7CitjbGFzcyBQcm9wZXJ0eVNsb3Q7CitjbGFzcyBQdXRQcm9wZXJ0eVNsb3Q7CitjbGFzcyBS
ZWdFeHA7CitjbGFzcyBTdHJ1Y3R1cmU7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBX
ZWFrOworCit1bmlvbiBKSVRTdHViQXJnIHsKKyAgICB2b2lkKiBhc1BvaW50ZXI7CisgICAgRW5j
b2RlZEpTVmFsdWUgYXNFbmNvZGVkSlNWYWx1ZTsKKyAgICBpbnQzMl90IGFzSW50MzI7CisKKyAg
ICBKU1ZhbHVlIGpzVmFsdWUoKSB7IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUoYXNFbmNvZGVkSlNW
YWx1ZSk7IH0KKyAgICBKU09iamVjdCoganNPYmplY3QoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGFzUG9pbnRlcik7IH0KKyAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9CisgICAgSWRlbnRpZmllciYgaWRlbnRp
ZmllcigpIHsgcmV0dXJuICpzdGF0aWNfY2FzdDxJZGVudGlmaWVyKj4oYXNQb2ludGVyKTsgfQor
ICAgIGludDMyX3QgaW50MzIoKSB7IHJldHVybiBhc0ludDMyOyB9CisgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxvY2sqPihhc1BvaW50ZXIpOyB9
CisgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGFzUG9pbnRlcik7IH0KKyAgICBSZWdFeHAqIHJlZ0V4cCgp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ0V4cCo+KGFzUG9pbnRlcik7IH0KKyAgICBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5hbWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqPihhc1BvaW50ZXIpOyB9CisgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTU3RyaW5nKiBqc1N0cmluZygpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEpTU3RyaW5nKj4oYXNQb2ludGVyKTsgfQorICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQorICAgIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcygpIHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIo
YXNQb2ludGVyKTsgfQorICAgIFJlc29sdmVPcGVyYXRpb25zKiByZXNvbHZlT3BlcmF0aW9ucygp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlc29sdmVPcGVyYXRpb25zKj4oYXNQb2ludGVyKTsgfQor
ICAgIFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQorICAgIEFycmF5QWxs
b2NhdGlvblByb2ZpbGUqIGFycmF5QWxsb2NhdGlvblByb2ZpbGUoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxBcnJheUFsbG9jYXRpb25Qcm9maWxlKj4oYXNQb2ludGVyKTsgfQorfTsKICAgICAKLSAg
ICBzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdExpbms7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlWaXJ0dWFsQ2FsbDsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxD
b25zdHJ1Y3Q7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOwot
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ29uc3RydWN0OwotICAgIH07
Ci0KICNpZiBDUFUoWDg2XzY0KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAg
dm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07Ci0g
ICAgICAgIHZvaWQqIHBhZGRpbmdbMl07IC8vIE1haW50YWluIDMyLWJ5dGUgc3RhY2sgYWxpZ25t
ZW50IChwb3NzaWJseSBvdmVya2lsbCkuCi0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAg
SlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2
b2lkKiB1bnVzZWQxOwotICAgICAgICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGE7Ci0KLSAgICAgICAgdm9pZCogc2F2ZWRSQlg7Ci0gICAgICAgIHZvaWQq
IHNhdmVkUjE1OwotICAgICAgICB2b2lkKiBzYXZlZFIxNDsKLSAgICAgICAgdm9pZCogc2F2ZWRS
MTM7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEyOwotICAgICAgICB2b2lkKiBzYXZlZFJCUDsKLSAg
ICAgICAgdm9pZCogc2F2ZWRSSVA7Ci0KLSAgICAgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBh
IGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBv
ZiB0aGUgc3RhY2suCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90
KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAx
OyB9Ci0gICAgfTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICB2b2lkKiByZXNlcnZlZDsg
Ly8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzZdOworICAgIHZvaWQqIHBhZGRpbmdbMl07
IC8vIE1haW50YWluIDMyLWJ5dGUgc3RhY2sgYWxpZ25tZW50IChwb3NzaWJseSBvdmVya2lsbCku
CisKKyAgICB2b2lkKiBjb2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lOworICAgIHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisKKyAgICB2b2lkKiBzYXZlZFJCWDsKKyAgICB2b2lk
KiBzYXZlZFIxNTsKKyAgICB2b2lkKiBzYXZlZFIxNDsKKyAgICB2b2lkKiBzYXZlZFIxMzsKKyAg
ICB2b2lkKiBzYXZlZFIxMjsKKyAgICB2b2lkKiBzYXZlZFJCUDsKKyAgICB2b2lkKiBzYXZlZFJJ
UDsKKworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJl
dHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJldHVy
bkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2VsaWYgQ1BVKFg4NikKICNp
ZiBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0NDKSkKICNwcmFn
bWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykg
fHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJh
bWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJB
cmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICB2b2lkKiByZXNlcnZlZDsg
Ly8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzZdOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
Ci0gICAgICAgIHZvaWQqIHBhZGRpbmdbMl07IC8vIE1haW50YWluIDE2LWJ5dGUgc3RhY2sgYWxp
Z25tZW50LgorICAgIHZvaWQqIHBhZGRpbmdbMl07IC8vIE1haW50YWluIDE2LWJ5dGUgc3RhY2sg
YWxpZ25tZW50LgogI2VuZGlmCiAKLSAgICAgICAgdm9pZCogc2F2ZWRFQlg7Ci0gICAgICAgIHZv
aWQqIHNhdmVkRURJOwotICAgICAgICB2b2lkKiBzYXZlZEVTSTsKLSAgICAgICAgdm9pZCogc2F2
ZWRFQlA7Ci0gICAgICAgIHZvaWQqIHNhdmVkRUlQOwotCi0gICAgICAgIHZvaWQqIGNvZGU7Ci0g
ICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAg
ICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhOworICAgIHZvaWQqIHNhdmVkRUJYOworICAgIHZvaWQqIHNh
dmVkRURJOworICAgIHZvaWQqIHNhdmVkRVNJOworICAgIHZvaWQqIHNhdmVkRUJQOworICAgIHZv
aWQqIHNhdmVkRUlQOworCisgICAgdm9pZCogY29kZTsKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworICAgIHZvaWQqIHVu
dXNlZDI7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogICAgICAgICAKLSAgICAgICAg
Ly8gV2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJl
c3MganVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCi0gICAgICAgIFJldHVybkFkZHJl
c3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZXR1
cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Ci0gICAgfTsKKyAgICAvLyBXaGVuIEpJVCBjb2Rl
IG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRo
ZSByZXN0IG9mIHRoZSBzdGFjay4KKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMp
IC0gMTsgfQorfTsKICNpZiBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElM
RVIoR0NDKSkKICNwcmFnbWEgcGFjayhwb3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykgfHwg
KE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKEdDQykpCiAjZWxpZiBDUFUoQVJNX1RIVU1CMikKLSAg
ICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8v
IFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07Ci0KLSAgICAgICAgUmV0dXJuQWRk
cmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgdm9pZCogcHJlc2VydmVkUmV0
dXJuQWRkcmVzczsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjQ7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI1OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjc7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI4OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSOTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjEwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMg
KHIwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCi0g
ICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsK
K3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVz
ZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5r
UmV0dXJuQWRkcmVzczsKKworICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CisgICAg
dm9pZCogcHJlc2VydmVkUjQ7CisgICAgdm9pZCogcHJlc2VydmVkUjU7CisgICAgdm9pZCogcHJl
c2VydmVkUjY7CisgICAgdm9pZCogcHJlc2VydmVkUjc7CisgICAgdm9pZCogcHJlc2VydmVkUjg7
CisgICAgdm9pZCogcHJlc2VydmVkUjk7CisgICAgdm9pZCogcHJlc2VydmVkUjEwOworICAgIHZv
aWQqIHByZXNlcnZlZFIxMTsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gcjEu
LnIzIChyMCBjb250YWluZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHBy
ZXNlcnZlZCkKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsK
KworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgorICAgIHZvaWQq
IHVudXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogICAgICAgICAKLSAgICAg
ICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtS
ZXR1cm5BZGRyZXNzOyB9Ci0gICAgfTsKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRy
ZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUo
QVJNX1RSQURJVElPTkFMKQogI2lmIENPTVBJTEVSKE1TVkMpCiAjcHJhZ21hIHBhY2socHVzaCkK
ICNwcmFnbWEgcGFjayg0KQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpCi0gICAgc3RydWN0IEpJ
VFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJnIHBhZGRpbmc7IC8vIFVudXNlZAotICAg
ICAgICBKSVRTdHViQXJnIGFyZ3NbN107Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVu
a1JldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjQ7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI1OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lk
KiBwcmVzZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkTGluazsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNl
ZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICAvLyBXaGVu
IEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0
IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciog
cmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Ci0gICAg
fTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICBKSVRTdHViQXJnIHBhZGRpbmc7IC8vIFVu
dXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKKworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1
bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCogcHJlc2VydmVkUjQ7CisgICAgdm9pZCogcHJl
c2VydmVkUjU7CisgICAgdm9pZCogcHJlc2VydmVkUjY7CisgICAgdm9pZCogcHJlc2VydmVkUjg7
CisgICAgdm9pZCogcHJlc2VydmVkUjk7CisgICAgdm9pZCogcHJlc2VydmVkUjEwOworICAgIHZv
aWQqIHByZXNlcnZlZFIxMTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOworCisgICAgSlNTdGFj
ayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2VkMTsK
KworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgorICAgIHZvaWQq
IHVudXNlZDI7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworCisgICAgLy8gV2hlbiBK
SVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBi
ZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJu
QWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2lmIENP
TVBJTEVSKE1TVkMpCiAjcHJhZ21hIHBhY2socG9wKQogI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMp
CiAjZWxpZiBDUFUoTUlQUykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJ
VFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAotICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51
c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzZdOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAg
ICAgICAgdm9pZCogcGFkZGluZzsgLy8gTWFrZSB0aGUgb3ZlcmFsbCBzdGFjayBsZW5ndGggOC1i
eXRlIGFsaWduZWQuCisgICAgdm9pZCogcGFkZGluZzsgLy8gTWFrZSB0aGUgb3ZlcmFsbCBzdGFj
ayBsZW5ndGggOC1ieXRlIGFsaWduZWQuCiAjZW5kaWYKIAotICAgICAgICB2b2lkKiBwcmVzZXJ2
ZWRHUDsgLy8gc3RvcmUgR1Agd2hlbiB1c2luZyBQSUMgY29kZQotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzE7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFMyOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotCi0gICAgICAg
IFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotCi0gICAgICAgIC8vIFRoZXNl
IGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWluZWQgdGhlIGVudHJ5IGNvZGUg
cG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKLSAgICAgICAgSlNTdGFjayogc3RhY2s7
Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwot
Ci0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogcHJlc2VydmVkR1A7IC8vIHN0b3JlIEdQIHdoZW4gdXNpbmcgUElDIGNvZGUKKyAgICB2
b2lkKiBwcmVzZXJ2ZWRTMDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRTMTsKKyAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOworCisgICAgUmV0dXJu
QWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMg
cGFzc2VkIGluIGExLi5hMyAoYTAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdo
aWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2VkMTsKIAotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0K
LSAgICB9OworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgorICAg
IHZvaWQqIHVudXNlZDI7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworCisgICAgUmV0
dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5B
ZGRyZXNzOyB9Cit9OwogI2VsaWYgQ1BVKFNINCkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7
Ci0gICAgICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJB
cmcgYXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjExOwotICAg
ICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSUFI7Ci0gICAgICAgIHZv
aWQqIHNhdmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFRpbWVvdXRSZWc7Ci0KLSAgICAgICAg
SlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICBK
U1ZhbHVlKiBleGNlcHRpb247Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICBKSVRTdHVi
QXJnIHBhZGRpbmc7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKKworICAgIFJl
dHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworICAgIHZvaWQqIHNhdmVkUjEwOwor
ICAgIHZvaWQqIHNhdmVkUjExOworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVk
UlBSOworICAgIHZvaWQqIHNhdmVkUjE0OworICAgIHZvaWQqIHNhdmVkVGltZW91dFJlZzsKKwor
ICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIEpTVmFs
dWUqIGV4Y2VwdGlvbjsKKyAgICB2b2lkKiB1bnVzZWQxOworICAgIEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YTsKIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgp
IHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAgIFJldHVybkFkZHJl
c3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsg
fQorfTsKICNlbHNlCiAjZXJyb3IgIkpJVFN0YWNrRnJhbWUgbm90IGRlZmluZWQgZm9yIHRoaXMg
cGxhdGZvcm0uIgogI2VuZGlmCkBAIC0yNzQsMjAyICsyNjIsMTU1IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2RlZmluZSBTVFVCX0FSR1MgKGFyZ3MpCiAKICNpZiBDUFUoWDg2KQotICAgICNpZiBDT01Q
SUxFUihNU1ZDKQotICAgICNkZWZpbmUgSklUX1NUVUIgX19mYXN0Y2FsbAotICAgICNlbGlmIENP
TVBJTEVSKEdDQykKLSAgICAjZGVmaW5lIEpJVF9TVFVCICBfX2F0dHJpYnV0ZV9fICgoZmFzdGNh
bGwpKQotICAgICNlbGlmIENPTVBJTEVSKFNVTkNDKQotICAgICNkZWZpbmUgSklUX1NUVUIKLSAg
ICAjZWxzZQotICAgICNlcnJvciAiSklUX1NUVUIgZnVuY3Rpb24gY2FsbHMgcmVxdWlyZSBmYXN0
Y2FsbCBjb252ZW50aW9ucyBvbiB4ODYsIGFkZCBhcHByb3ByaWF0ZSBkaXJlY3RpdmUvYXR0cmli
dXRlIGhlcmUgZm9yIHlvdXIgY29tcGlsZXIhIgotICAgICNlbmRpZgorI2lmIENPTVBJTEVSKE1T
VkMpCisjZGVmaW5lIEpJVF9TVFVCIF9fZmFzdGNhbGwKKyNlbGlmIENPTVBJTEVSKEdDQykKKyNk
ZWZpbmUgSklUX1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCisjZWxpZiBDT01QSUxF
UihTVU5DQykKKyNkZWZpbmUgSklUX1NUVUIKICNlbHNlCi0gICAgI2RlZmluZSBKSVRfU1RVQgor
I2Vycm9yICJKSVRfU1RVQiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRp
b25zIG9uIHg4NiwgYWRkIGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3Ig
eW91ciBjb21waWxlciEiCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIEpJVF9TVFVCCiAjZW5kaWYK
IAotICAgIGV4dGVybiAiQyIgdm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpOwotICAgIGV4dGVy
biAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7Ci0gICAgZXh0ZXJuICJDIiBFbmNvZGVk
SlNWYWx1ZSBjdGlUcmFtcG9saW5lKHZvaWQqIGNvZGUsIEpTU3RhY2sqLCBDYWxsRnJhbWUqLCB2
b2lkKiAvKnVudXNlZDEqLywgdm9pZCogLyp1bnVzZWQyKi8sIEpTR2xvYmFsRGF0YSopOworZXh0
ZXJuICJDIiB2b2lkIGN0aVZNVGhyb3dUcmFtcG9saW5lKCk7CitleHRlcm4gIkMiIHZvaWQgY3Rp
T3BUaHJvd05vdENhdWdodCgpOworZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9s
aW5lKHZvaWQqIGNvZGUsIEpTU3RhY2sqLCBDYWxsRnJhbWUqLCB2b2lkKiAvKnVudXNlZDEqLywg
dm9pZCogLyp1bnVzZWQyKi8sIEpTR2xvYmFsRGF0YSopOwogI2lmIEVOQUJMRShERkdfSklUKQot
ICAgIGV4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CitleHRlcm4gIkMiIHZvaWQg
Y3RpVHJhbXBvbGluZUVuZCgpOwogCi0gICAgaW5saW5lIGJvb2wgcmV0dXJuQWRkcmVzc0lzSW5D
dGlUcmFtcG9saW5lKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHJldHVybiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigm
Y3RpVHJhbXBvbGluZSkKLSAgICAgICAgICAgICYmIHJldHVybkFkZHJlc3MudmFsdWUoKSA8IGJp
dHdpc2VfY2FzdDx2b2lkKj4oJmN0aVRyYW1wb2xpbmVFbmQpOwotICAgIH0KLSNlbmRpZgotCi0g
ICAgY2xhc3MgSklUVGh1bmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEpJVFRodW5rcyhKU0ds
b2JhbERhdGEqKTsKLSAgICAgICAgfkpJVFRodW5rcygpOwotCi0gICAgICAgIHN0YXRpYyB2b2lk
IHRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqLCBDb2RlQmxvY2sqLCBSZXR1cm5BZGRyZXNzUHRy
IHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
byk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHRyeUNhY2hlUHV0QnlJRChDYWxsRnJhbWUqLCBDb2Rl
QmxvY2sqLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVl
LCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJv
b2wgZGlyZWN0KTsKLQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVu
Z3RoVHJhbXBvbGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdM
ZW5ndGhUcmFtcG9saW5lOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0
dWFsQ2FsbExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENh
bGxMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0TGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ29uc3Ry
dWN0TGluazsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwo
KSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KLSAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3QoKSB7IHJldHVybiBt
X3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdDsgfQotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbCgpCi0gICAgICAgIHsKLSNpZiBFTkFCTEUo
TExJTlQpCi0gICAgICAgICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBt
X3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKLSAgICAgICAgfQotICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ29uc3RydWN0KCkKLSAgICAgICAgewotI2lm
IEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQotICAg
ICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29k
ZVB0cihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmUpOworaW5saW5lIGJvb2wgcmV0
dXJuQWRkcmVzc0lzSW5DdGlUcmFtcG9saW5lKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cykKK3sKKyAgICByZXR1cm4gcmV0dXJuQWRkcmVzcy52YWx1ZSgpID49IGJpdHdpc2VfY2FzdDx2
b2lkKj4oJmN0aVRyYW1wb2xpbmUpCisgICAgICAgICYmIHJldHVybkFkZHJlc3MudmFsdWUoKSA8
IGJpdHdpc2VfY2FzdDx2b2lkKj4oJmN0aVRyYW1wb2xpbmVFbmQpOworfQogI2VuZGlmCi0gICAg
ICAgICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsK
LSAgICAgICAgfQotCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjdGlTdHViKEpTR2xv
YmFsRGF0YSosIFRodW5rR2VuZXJhdG9yKTsKLQotICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBo
b3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5j
dGlvbiBjb25zdHJ1Y3Rvcik7Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlv
blN0dWIoSlNHbG9iYWxEYXRhKiwgTmF0aXZlRnVuY3Rpb24sIFRodW5rR2VuZXJhdG9yLCBJbnRy
aW5zaWMpOwotCi0gICAgICAgIHZvaWQgY2xlYXJIb3N0RnVuY3Rpb25TdHVicygpOwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPFRodW5rR2VuZXJhdG9yLCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY+IENUSVN0dWJNYXA7Ci0gICAgICAgIENUSVN0dWJNYXAgbV9jdGlTdHVi
TWFwOwotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8TmF0aXZl
RXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOwotICAgICAgICBPd25QdHI8SG9zdEZ1
bmN0aW9uU3R1Yk1hcD4gbV9ob3N0RnVuY3Rpb25TdHViTWFwOwotICAgICAgICBSZWZQdHI8RXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZT4gbV9leGVjdXRhYmxlTWVtb3J5OwotCi0gICAgICAgIFRyYW1w
b2xpbmVTdHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOwotICAgIH07CiAKIGV4dGVybiAi
QyIgewotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9hZGQoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2JpdGFuZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0b3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdHhvcihT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2V2
YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9Ob3RKU0NvbnN0cnVjdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVfdGhpcyhTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfY29udmVydF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVfYXJndW1lbnRzKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9kZWxfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV92YWwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9n
ZXRfYnlfaWRfYXJyYXlfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHVi
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5
X2lkX2dldHRlcl9zdHViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9p
ZF9wcm90b19saXN0X2Z1bGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9zZWxmX2ZhaWwoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dldF9ieV9pZF9zdHJpbmdfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9n
ZXRfYnlfdmFsX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW4oU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3Rh
bmNlb2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX2Jvb2xlYW4oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX2Z1bmN0
aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX29iamVjdChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2xlc3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2xlc3NlcShTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
Z3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sc2hpZnQo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbXVsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9u
ZWdhdGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbnN0cmljdGVxKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9wb3N0X2RlYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX3ByZV9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3ByZV9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29s
dmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlX3N0cmljdF9wdXQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF9iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dp
dGhfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcnNoaWZ0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9zdHJjYXQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9z
dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX2pzbnVtYmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRp
dmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3R5cGVvZihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdXJzaGlmdChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5
X3dpdGhfc2l6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVu
YyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklU
X1NUVUIgY3RpX29wX25ld19mdW5jX2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9v
cF9uZXdfcmVnZXhwKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpT
T2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfcHVzaF9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9z
Y29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wdXNoX3dpdGhfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfdHJhbnNpdGlv
bl9yZWFsbG9jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IqIEpJVF9TVFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9v
cF9lcV9zdHJpbmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9q
Z3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBK
SVRfU1RVQiBjdGlfb3BfanRydWUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2xvYWRfdmFyYXJncyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2so
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0
aV9oYXNfcHJvcGVydHkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
dm9pZCBKSVRfU1RVQiBjdGlfb3BfZGVidWcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2ptcF9zY29wZXMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlf
b3BfcG9wX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV93aWxsX2Nh
bGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWlsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklU
X1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaW5kZXgoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHV0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2dldHRlcl9zZXR0
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RV
QiBjdGlfb3BfaW5pdF9nbG9iYWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlv
bihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF90ZWFyX29mZl9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXRhbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0b3IoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfTm90SlNGdW5jdGlvbihTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxs
X2V2YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2No
ZWNrX2hhc19pbnN0YW5jZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVfdGhpcyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252
ZXJ0X3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRlX2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlf
aWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kaXYoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0
X2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9i
eV9pZF9jdXN0b21fc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2ZhaWwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3By
b3RvX2xpc3RfZnVsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc2VsZl9mYWlsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9zdHJpbmdfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsX3N0cmluZyhTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9pbnN0YW5jZW9mKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX2Jvb2xlYW4oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfbnVtYmVyKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lz
X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfdW5kZWZpbmVkKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2xlc3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXIoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tb2QoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfbXVsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ub3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbnN0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfaW5jKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3ByZV9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Jlc29sdmVfYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0
X3B1dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29s
dmVfd2l0aF9iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X3RvX2Jhc2Uo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfcnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9zdHJpY3Rl
cShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9zdWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1iZXIoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9f
cHJpbWl0aXZlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3R5cGVvZihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X3RvX29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0
aV9vcF9uZXdfYXJyYXlfYnVmZmVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuYyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhw
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVC
IGN0aV9vcF9uZXdfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
SlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfcmVnZXhwKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNoX2FjdGl2YXRp
b24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0
aV9vcF9wdXNoX25hbWVfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXNoX3dpdGhfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF90
cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitK
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKSVRfU1RVQiBjdGlfb3BfZ2V0X3BuYW1lcyhTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2Vx
X3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NU
VUIgY3RpX29wX2psZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50
IEpJVF9TVFVCIGN0aV9vcF9qbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworaW50IEpJVF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXJlcShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfanRydWUoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJ
VF9TVFVCIGN0aV90aW1lb3V0X2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworaW50IEpJVF9TVFVCIGN0aV9oYXNfcHJvcGVydHkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX2VuZChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX2ptcF9z
Y29wZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV93aWxsX2NhbGwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9v
cF9wdXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X2lkX2RpcmVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklU
X1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZ2Vu
ZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsX2dlbmVyaWMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3Zv
aWQgSklUX1NUVUIgY3RpX29wX2luaXRfZ2xvYmFsX2NvbnN0X2NoZWNrKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYWN0
aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Rocm93X3N0YXRpY19lcnJvcihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICB2
b2lkIEpJVF9TVFVCIGN0aV9vcHRpbWl6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwogI2VuZGlmCi0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2NhbGxfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2NhbGxfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3BfY29uc3RydWN0X2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9z
d2l0Y2hfaW1tKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQq
IEpJVF9TVFVCIGN0aV9vcF9zd2l0Y2hfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfc3RhY2tfY2hl
Y2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX3ZtX2xhenlMaW5rQ2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX3ZtX3Ro
cm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJO
QUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9h
cml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklU
X1NUVUIgY3RpX29wX2NhbGxfaml0Q29tcGlsZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGlsZShTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9z
d2l0Y2hfY2hhcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJ
VF9TVFVCIGN0aV9vcF9zd2l0Y2hfaW1tKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfdGhyb3coU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfc3RhY2tf
Y2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RV
QiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCogSklUX1NUVUIgY3RpX3ZtX2xhenlMaW5rQ29uc3RydWN0KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX3ZtX3Rocm93KFNUVUJf
QVJHU19ERUNMQVJBVElPTikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiB9IC8v
IGV4dGVybiAiQyIKIAogI2VsaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKKworI2lmIEVOQUJMRShKSVQp
CisKKyNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAi
SlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCituYW1lc3BhY2UgSlND
IHsKKworSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQorICAg
IDogbV9ob3N0RnVuY3Rpb25TdHViTWFwKGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFw
KSkKK3sKKyAgICBpZiAoIWdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2V4ZWN1dGFibGVNZW1vcnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBv
bGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJhbXBvbGluZVN0cnVjdHVyZSk7CisgICAgQVNTRVJUKCEh
bV9leGVjdXRhYmxlTWVtb3J5KTsKKyNpZiBDUFUoQVJNX1RIVU1CMikKKyAgICAvLyBVbmZvcnR1
bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRvZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBv
biBKSVRTdGFja0ZyYW1lIChzaW5jZSBpdCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKKyAgICAv
LyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRPRiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRp
c2ggZW5vdWdoIGZvciBpdCB0byBiZSBoYXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NF
UlQKKyAgICAvLyBtYWNyb3MuCisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRF9SNF9PRkZTRVQpOworICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQ
UkVTRVJWRURfUjVfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7CisgICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcp
ID09IFBSRVNFUlZFRF9SN19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsK
KyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2
ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09G
RlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjExKSA9PSBQUkVTRVJWRURfUjExX09GRlNFVCk7CisKKyAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklM
RV9PRkZTRVQpOworICAgIC8vIFRoZSBmaWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBh
bHJlYWR5IG9uIHRoZSBzdGFjay4KKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7CisKKyAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFk
ZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisKKyNlbGlmIENQVShBUk1f
VFJBRElUSU9OQUwpCisKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNF
VCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJl
c2VydmVkUjQpID09IFBSRVNFUlZFRFI0X09GRlNFVCk7CisKKworI2VsaWYgQ1BVKE1JUFMpCisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
R1ApID09IFBSRVNFUlZFRF9HUF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1MxX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9P
RkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZT
RVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRo
dW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVH
SVNURVJfRklMRV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIGdsb2JhbERhdGEpID09IEdMT0JBTF9EQVRBX09GRlNFVCk7CisKKyNlbmRp
ZgorfQorCitKSVRUaHVua3M6On5KSVRUaHVua3MoKQoreworfQorCitNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVGh1bmtH
ZW5lcmF0b3IgZ2VuZXJhdG9yKQoreworICAgIENUSVN0dWJNYXA6OkFkZFJlc3VsdCBlbnRyeSA9
IG1fY3RpU3R1Yk1hcC5hZGQoZ2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYoKSk7Cisg
ICAgaWYgKGVudHJ5LmlzTmV3RW50cnkpCisgICAgICAgIGVudHJ5Lml0ZXJhdG9yLT52YWx1ZSA9
IGdlbmVyYXRvcihnbG9iYWxEYXRhKTsKKyAgICByZXR1cm4gZW50cnkuaXRlcmF0b3ItPnZhbHVl
OworfQorCitOYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVu
Y3Rpb24gY29uc3RydWN0b3IpCit7CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4
ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAg
IHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOworCisgICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZl
RXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgSklUOjpj
b21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25z
dHJ1Y3QoKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CisgICAgd2Vha0FkZCgqbV9ob3N0
RnVuY3Rpb25TdHViTWFwLCBmdW5jdGlvbiwgUGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4obmF0
aXZlRXhlY3V0YWJsZSkpOworICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOworfQorCitOYXRp
dmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJh
dG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQoreworICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBu
YXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rpb24pKQor
ICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKKworICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBjb2RlOworICAgIGlmIChnZW5lcmF0b3IpIHsKKyAgICAgICAgaWYgKGdsb2JhbERhdGEt
PmNhblVzZUpJVCgpKQorICAgICAgICAgICAgY29kZSA9IGdlbmVyYXRvcihnbG9iYWxEYXRhKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29kZSA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigp
OworICAgIH0gZWxzZQorICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbChn
bG9iYWxEYXRhLCBmdW5jdGlvbik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVj
dXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBjb2RlLCBmdW5j
dGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3Rp
TmF0aXZlQ29uc3RydWN0KCkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmlu
c2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNz
V2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJuIG5h
dGl2ZUV4ZWN1dGFibGU7Cit9CisKK3ZvaWQgSklUVGh1bmtzOjpjbGVhckhvc3RGdW5jdGlvblN0
dWJzKCkKK3sKKyAgICBtX2hvc3RGdW5jdGlvblN0dWJNYXAuY2xlYXIoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRUaHVua3MuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBKSVRUaHVu
a3NfaAorI2RlZmluZSBKSVRUaHVua3NfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisK
KyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQ2FsbERhdGEuaCIKKyNpbmNsdWRlICJJbnRy
aW5zaWMuaCIKKyNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgiCisjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3IuaCIKKyNpbmNs
dWRlICJXZWFrLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xh
c3MgSlNHbG9iYWxEYXRhOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKKworc3RydWN0IFRyYW1w
b2xpbmVTdHJ1Y3R1cmUgeworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5n
dGhUcmFtcG9saW5lOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExp
bms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOwor
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbDsKKyAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpTmF0aXZlQ2FsbDsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ29u
c3RydWN0OworfTsKKworY2xhc3MgSklUVGh1bmtzIHsKK3B1YmxpYzoKKyAgICBKSVRUaHVua3Mo
SlNHbG9iYWxEYXRhKik7CisgICAgfkpJVFRodW5rcygpOworCisgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQorICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1
cmUuY3RpVmlydHVhbENhbGxMaW5rOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZp
cnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZp
cnR1YWxDb25zdHJ1Y3RMaW5rOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1
YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsOyB9
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3QoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdDsgfQorICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKKyAgICB7CisjaWYgRU5BQkxFKExMSU5U
KQorICAgICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKKyAgICAgICAgICAgIHJldHVybiBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2Fs
bF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0
dXJlLmN0aU5hdGl2ZUNhbGw7CisgICAgfQorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlO
YXRpdmVDb25zdHJ1Y3QoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICgh
bV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGlu
ZSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDb25zdHJ1Y3Q7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIo
SlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOworCisgICAgTmF0aXZlRXhlY3V0YWJsZSog
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlvbiwgTmF0aXZlRnVu
Y3Rpb24gY29uc3RydWN0b3IpOworICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0
dWIoSlNHbG9iYWxEYXRhKiwgTmF0aXZlRnVuY3Rpb24sIFRodW5rR2VuZXJhdG9yLCBJbnRyaW5z
aWMpOworCisgICAgdm9pZCBjbGVhckhvc3RGdW5jdGlvblN0dWJzKCk7CisKK3ByaXZhdGU6Cisg
ICAgdHlwZWRlZiBIYXNoTWFwPFRodW5rR2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY+
IENUSVN0dWJNYXA7CisgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPE5hdGl2ZUZ1bmN0aW9uLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+ID4gSG9zdEZ1bmN0
aW9uU3R1Yk1hcDsKKyAgICBPd25QdHI8SG9zdEZ1bmN0aW9uU3R1Yk1hcD4gbV9ob3N0RnVuY3Rp
b25TdHViTWFwOworICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1dGFi
bGVNZW1vcnk7CisKKyAgICBUcmFtcG9saW5lU3RydWN0dXJlIG1fdHJhbXBvbGluZVN0cnVjdHVy
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwor
I2VuZGlmIC8vIEpJVFRodW5rc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFRodW5rR2VuZXJhdG9yX2gKKyNkZWZpbmUgVGh1bmtHZW5lcmF0b3Jf
aAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoSklUKQorCituYW1l
c3BhY2UgSlNDIHsKK2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjsKKwordHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvciko
SlNHbG9iYWxEYXRhKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKKworI2VuZGlmIC8vIFRodW5rR2VuZXJhdG9yX2gKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAxMzg0MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUg
VGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgiCisKICNpZiBF
TkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0YWJsZVBvb2w7Ci0g
ICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAg
Y2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRh
Kik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVy
YXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5r
R2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
Zmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0
YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFs
RGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5l
cmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2Vu
ZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2Vu
ZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkocmV2aXNp
b24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29t
cGlsYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
UHJvZmlsZXJDb21waWxhdGlvbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
T1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlck9TUkV4aXQuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAKICNpbmNsdWRlICJCb29sZWFuUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJCb29sZWFuT2JqZWN0LmgiCiAKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1
ZGUgIlVubGlua2VkQ29kZUJsb2NrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21wbGV0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21wbGV0aW9uLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEx
ICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29kZVByb2Zp
bGluZy5oIgorI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgotI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBh
cnNlci5oIgotI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERh
dGEuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgog
I2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCisjaW5j
bHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNp
bmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8dGltZS5oPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAKICNpbmNsdWRlICJKU0RhdGVNYXRoLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAj
aW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCShyZXZp
c2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkxvb2t1cC5o
IgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJTb3VyY2VDb2RlLmgiCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0
LDcgQEAKICNpbmNsdWRlICJFcnJvclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJOb2Rlcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGlvbkhhcm5lc3MuaCIKICNpbmNsdWRlICJKSVQu
aCIKICNpbmNsdWRlICJKSVREcml2ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNp
bmNsdWRlICJDYWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNv
bnN0cnVjdERhdGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgi
CkBAIC0zOCw2ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7
CitjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCAr
MTY0LDYgQEAgcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVy
ZTsKIH07CiAKLWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsK
LX0KLQotaW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEpCi17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2Jh
bERhdGEuaXNJbml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFs
aXppbmdPYmplY3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEp
OwotI2VuZGlmCi0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVy
ZSogSlNDZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5n
ZXQoKTsKLX0KLQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3Is
IGNlbGwpOwotCi0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQot
Ly8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlu
bGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxs
KCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6Omlz
UHJpbWl0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5p
c1N0cmluZygpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBK
U1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0K
LWlubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
LXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3Ry
aW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVy
dGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewot
ICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmpl
Y3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8g
YXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFs
dWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7
Ci0gICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlz
RG91YmxlKCkpIHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0
aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBl
KSBjb25zdAotewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShl
eGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1
ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpT
VmFsdWUmIHZhbHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0g
YXNJbnQzMigpOwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUo
KTsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIGlmIChpc0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVO
dW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAg
IG51bWJlciA9IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgfQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVt
YmVyID0gMC4wOwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0g
ICAgdmFsdWUgPSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBk
b3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlm
IChpc0ludDMyKCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91Ymxl
KCkpCi0gICAgICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dD
YXNlKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9P
YmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nh
c2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2Jq
ZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRv
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2Jh
bE9iamVjdCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwo
SGVhcCYgaGVhcCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQp
KTsKLSNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0
YSgpLT5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0
SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwq
IHJlc3VsdCA9IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0
YWxTdHJ1Y3R1cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAu
YWxsb2NhdGVXaXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNl
IGlmIChUOjpuZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3Jt
YWxEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAg
IHJlc3VsdC0+Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAot
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewot
ICAgIHJldHVybiBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlu
bGluZSBib29sIGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2Vs
bC0+aXNaYXBwZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+
CiBpbmxpbmUgVG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gMTM4NDE1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5j
bHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgotI2luY2x1ZGUgIkpJVFN0dWJz
LmgiCisjaW5jbHVkZSAiSklUVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVk
ZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgpAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIlNtYWxsU3RyaW5ncy5oIgogI2luY2x1ZGUgIlN0cm9uZy5oIgogI2luY2x1ZGUg
IlRlcm1pbmF0b3IuaCIKKyNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJU
aW1lb3V0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSAiV2Vha1JhbmRvbS5oIgpAQCAtNjYsNiArNjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBjbGFzcyBDb2RlQmxvY2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwogICAgIGNsYXNzIENvbW1v
bklkZW50aWZpZXJzOworICAgIGNsYXNzIEV4ZWNTdGF0ZTsKICAgICBjbGFzcyBIYW5kbGVTdGFj
azsKICAgICBjbGFzcyBJZGVudGlmaWVyVGFibGU7CiAgICAgY2xhc3MgSW50ZXJwcmV0ZXI7CkBA
IC0xODgsNyArMTkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgR2xvYmFsRGF0YVR5
cGUgZ2xvYmFsRGF0YVR5cGU7CiAgICAgICAgIENsaWVudERhdGEqIGNsaWVudERhdGE7Ci0gICAg
ICAgIENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lOworICAgICAgICBFeGVjU3RhdGUqIHRvcENhbGxG
cmFtZTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5Q29uc3RydWN0b3JUYWJsZTsK
ICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheVByb3RvdHlwZVRhYmxlOwpAQCAtMzA4LDcg
KzMxMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgZXhj
ZXB0aW9uTG9jYXRpb247CiAgICAgICAgIEpTVmFsdWUgaG9zdENhbGxSZXR1cm5WYWx1ZTsKLSAg
ICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWVGb3JUaHJvdzsKKyAgICAgICAgRXhlY1N0YXRlKiBj
YWxsRnJhbWVGb3JUaHJvdzsKICAgICAgICAgdm9pZCogdGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7
CiAgICAgICAgIEluc3RydWN0aW9uKiB0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3c7CiAjaWYg
RU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDYgKzU3LDcgQEAKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5o
IgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkxvY2FsLmgiCiAjaW5jbHVkZSAiTG9jYWxTY29wZS5oIgogI2luY2x1ZGUg
Ikxvb2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNOb3RBbk9iamVjdC5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvU3RyaW5nRXh0cmFzLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1ZhbHVlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWVJbmxpbmVzLmgJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3
MSArMjYsNTgxIEBACiAjaWZuZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlu
bGluZXNfaAogCisjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1
ZTo6dG9JbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJ
bnQzMigpKQotICAgICAgICAgICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpT
Qzo6dG9JbnQzMih0b051bWJlcihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90
IEpTVmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAg
IC8vIFNlZSBjb21tZW50IG9uIEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4g
dG9JbnQzMihleGVjKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQz
MigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+
PSAwOwotICAgIH0KLQotICAgIGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGlu
dDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYg
KGlzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJu
IEpTQzo6dG9JbnQzMih0b051bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpT
VmFsdWU6OmFzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigp
KTsKLSAgICAgICAgcmV0dXJuIGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWUoUU5hTik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hh
ciBpKQotICAgIHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+
KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFy
IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
aSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAg
ewotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAg
ewotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhp
cyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUobG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9
IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlz
ID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRp
Y19jYXN0PHVpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUobG9uZyBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
aSkgIT0gaSkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBz
dGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0K
LQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAg
IHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAg
ICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4o
aSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNW
YWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0lu
dDMyID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQg
fHwgKCFhc0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAg
ICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMy
X3Q+KGQpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkSlNWYWx1ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAg
di51LmFzSW50NjQgPSBlbmNvZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQor
aW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
K3sKKyAgICAvLyBTZWUgY29tbWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1
cm4gdG9JbnQzMihleGVjKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBj
b25zdAoreworICAgIHJldHVybiBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lu
bGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlz
VUludDMyKCkpOworICAgIHJldHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNW
YWx1ZTo6YXNOdW1iZXIoKSBjb25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICBy
ZXR1cm4gaXNJbnQzMigpID8gYXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpT
VmFsdWUganNOYU4oKQoreworICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShjaGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19j
YXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQg
Y2hhciBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7
Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBK
U1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUodW5zaWduZWQgc2hvcnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBp
KQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRo
aXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50
MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAg
aWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1Zh
bHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkp
OworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAg
aWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNW
YWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlm
IChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7Cisg
ICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0g
SlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNv
bnN0IGludDMyX3QgYXNJbnQzMiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChh
c0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0w
LjAKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
ZCkpOworfQorCitpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUg
dmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFs
dWUgSlNWYWx1ZTo6ZGVjb2RlKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAg
IEpTVmFsdWUgdjsKKyAgICB2LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVy
biB2OworfQogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZSgpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAg
ICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShKU051bGxUYWcpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFn
OwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSgpCit7CisgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFn
KQoreworICAgIHUuYXNCaXRzLnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9
IDA7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSAwOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5k
ZWZpbmVkVGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMDsKK30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U1RydWVUYWcpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAg
ICAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1
ZShKU1RydWVUYWcpCit7CisgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMTsKK30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U0ZhbHNlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAg
ICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0Jp
dHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7
Ci0gICAgICAgIGlmIChwdHIpCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwot
ICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIp
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRy
KQotICAgIHsKLSAgICAgICAgaWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENl
bGxUYWc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFs
dWVUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMy
X3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFs
dWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9
IERlbGV0ZWRWYWx1ZVRhZyk7Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFn
OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNW
YWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90
aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRv
ciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUu
YXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1w
dHlWYWx1ZVRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5l
ZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1
cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENl
bGxUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRhZygpIDwgTG93ZXN0VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6
OmlzVHJ1ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiBwYXlsb2FkKCk7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRh
ZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxv
YWQgPSAwOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFs
dWVUYWcpCit7CisgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNC
aXRzLnBheWxvYWQgPSAwOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0
cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAg
IGVsc2UKKyAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0
cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dGFnKCkgPT0gQm9vbGVhblRhZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUu
YXNCaXRzLnRhZyA9IENlbGxUYWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBF
bXB0eVZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGlu
dDMyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMy
X3QgSlNWYWx1ZTo6dGFnKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50
YWc7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAg
IEFTU0VSVCh0YWcoKSAhPSBEZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBF
bXB0eVZhbHVlVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0
IEpTVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIu
dS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpT
VmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5h
c0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNVbmRlZmluZWQoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IE51bGxUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZp
bmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwo
KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdGFnKCkgPT0gQ2VsbFRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJl
dHVybiB0YWcoKSA9PSBCb29sZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNGYWxzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5U
YWcgJiYgIXBheWxvYWQoKTsKK30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjpwYXlsb2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFz
Qml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGlu
ZSBpbnQzMl90IEpTVmFsdWU6OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzSW50MzIoKSk7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lu
bGluZSBpbnQzMl90IEpTVmFsdWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0lu
dDMyKCkpOworICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGlu
ZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzRG91YmxlKCkpOwotICAgICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUg
ZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUo
KSk7CisgICAgcmV0dXJuIHUuYXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBK
U0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXND
ZWxsKCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUo
RW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9
IGQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9h
ZCA9IGk7Ci0gICAgfQorQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVl
OjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91Ymxl
ID0gZDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0Jp
dHMudGFnID0gSW50MzJUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBF
TkFCTEUoTExJTlRfQ19MT09QKQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3Qg
dGFnLCBpbnQzMl90IHBheWxvYWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7
Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0Jp
dHMudGFnID0gdGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlm
CiAKLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gaXNJbnQzMigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBp
c1RydWUoKSB8fCBpc0ZhbHNlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
YXNCb29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0g
ICAgICAgIHJldHVybiBwYXlsb2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNUcnVlKCkgfHwgaXNGYWxzZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xl
YW4oKSBjb25zdAoreworICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxv
YWQoKTsKK30KIAogI2Vsc2UgLy8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2
NCkKIAotICAgIC8vIDB4MCBjYW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFz
IGEgdGFnIG9mIDAwLCBpbmRpY2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBv
ZiAweDAsIHdoaWNoIGlzIGluIHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7
Ci0gICAgfQotCi0gICAgLy8gMHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBp
dCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXls
b2FkIG9mIDB4NCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5s
aW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAg
ICAgICAgdS5hc0ludDY0ID0gVmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoY29uc3QgSlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQg
PSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gdS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpT
VmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFz
VmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNUcnVlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0g
SlNWYWx1ZShKU1RydWUpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFs
c2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
RmFsc2UpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4g
YXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJf
dCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMy
KCkpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNOdW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2
NCA9IFZhbHVlTnVsbDsKLSAgICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBi
ZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1
dCBhIHBheWxvYWQgb2YgMHgwLCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4K
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5
OworfQorCisvLyAweDQgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBh
IHRhZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2Yg
MHg0LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBW
YWx1ZURlbGV0ZWQ7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQor
CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFz
SW50NjQgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihw
dHIpKTsKK30KKworaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAg
IHJldHVybiB1LmFzSW50NjQ7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBv
dGhlci51LmFzSW50NjQ7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29u
c3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhl
ci51LmFzSW50NjQ7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAor
eworICAgIHJldHVybiB1LmFzSW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0g
SlNWYWx1ZShKU1VuZGVmaW5lZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFs
dWUoKSA9PSBKU1ZhbHVlKEpTVHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFs
c2UoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NF
UlQoaXNCb29sZWFuKCkpOworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUp
OworfQorCitpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoaXNJbnQzMigpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0lu
dDY0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAg
IHJldHVybiBpc051bWJlcigpICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEpTTnVsbFRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAg
Ci0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAg
ICAgICB1LmFzSW50NjQgPSBWYWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1
ZVRydWU7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgLy8gVW5kZWZpbmVkIGFuZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1
bmRlZmluZWQnIGJpdCBpbiB0aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJ
bnQ2NCAmIH5UYWdCaXRVbmRlZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
ICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0lu
dDY0ICYgVGFnTWFzayk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQz
MigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1i
ZXIpID09IFRhZ1R5cGVOdW1iZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRl
cnByZXREb3VibGVUb0ludDY0KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJl
aW50ZXJwcmV0SW50NjRUb0RvdWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5M
SU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsK
LSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91Ymxl
RW5jb2RlT2Zmc2V0OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBp
KQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91
YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVP
ZmZzZXQpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAg
IH0KLQotICAgIEFMV0FZU19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwot
ICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUu
YXNJbnQ2NCA9IFZhbHVlVW5kZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U1RydWVUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sK
KyAgICAvLyBVbmRlZmluZWQgYW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUg
J3VuZGVmaW5lZCcgYml0IGluIHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50
NjQgJiB+VGFnQml0VW5kZWZpbmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gISh1LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdU
eXBlTnVtYmVyKSA9PSBUYWdUeXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVy
cHJldERvdWJsZVRvSW50NjQoZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8aW50NjRfdD4odmFsdWUpOworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9E
b3VibGUoaW50NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4o
dmFsdWUpOworfQorCitBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3Vi
bGVUYWcsIGRvdWJsZSBkKQoreworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9J
bnQ2NChkKSArIERvdWJsZUVuY29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoaW50IGkpCit7CisgICAgdS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKTsKK30KKworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldElu
dDY0VG9Eb3VibGUodS5hc0ludDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQg
JiBUYWdUeXBlTnVtYmVyOworfQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXND
ZWxsKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsK
K30KIAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6Omlz
U3RyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3Ry
aW5nKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlz
Q2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2Vs
bCgpLT5pc09iamVjdCgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhl
Y1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYm
IGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1
ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+Ojpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCku
Z2V0U3RyaW5nKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVj
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgp
IDogMDsKK30KKworQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJf
dCYgdikgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9
IGFzSW50MzIoKTsKKyAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAg
ICAgcmV0dXJuIGkgPj0gMDsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
ZG91YmxlIGQgPSBhc0RvdWJsZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGQpOworICAgICAgICByZXR1cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2lubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywg
UHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVy
biBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6
IGFzVmFsdWUoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVy
KEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAg
IGlmIChpc0ludDMyKCkpIHsKKyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2
YWx1ZSA9ICp0aGlzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91
YmxlKCkpIHsKKyAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAq
dGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAg
ICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2
YWx1ZSk7CisgICAgaWYgKGlzVHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAg
ICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChp
c0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2
YWx1ZSA9ICp0aGlzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlz
VW5kZWZpbmVkKCkpOworICAgIG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1i
ZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAg
IHJldHVybiBhc0ludDMyKCk7CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBh
c0RvdWJsZSgpOworICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxp
bmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVj
dChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9i
amVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNp
bmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJO
YXRpdmVFcnJvclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNv
bnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNs
dWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk51
bWJlck9iamVjdC5oIgogI2luY2x1ZGUgIk51bWJlclByb3RvdHlwZS5oIgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
CShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9i
amVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9w
ZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAJKHJldmlzaW9uIDEzODQx
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDE2ICsyNCwxNiBAQAogI2luY2x1ZGUgIlJlZ0V4cC5oIgogCiAjaW5jbHVk
ZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2Fj
aGUuaCIKLSNpbmNsdWRlICJ5YXJyL1lhcnIuaCIKLSNpbmNsdWRlICJ5YXJyL1lhcnJKSVQuaCIK
KyNpbmNsdWRlICJZYXJyLmgiCisjaW5jbHVkZSAiWWFyckpJVC5oIgogI2luY2x1ZGUgPHN0ZGlv
Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KIAotCiAjZGVm
aW5lIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4gMAogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogCiAjaW5jbHVkZSAiQnV0dGVyZmx5
SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFy
cmF5VmFsdWVNYXAuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkdldHRlclNldHRl
ci5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUgIlJlamVjdC5oIgogI2luY2x1ZGUgIlNs
b3RWaXNpdG9yLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180629</attachid>
            <date>2012-12-23 13:12:29 -0800</date>
            <delta_ts>2012-12-23 21:25:14 -0800</delta_ts>
            <desc>another attempt</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>189226</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dC5jcHA6CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0Nv
bnRleHRSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1Vu
bGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2ls
ZW50U2F2ZVBsYW5Gb3JHUFIpOgorICAgICAgICAoREZHKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNpbGVudEZpbGwpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
OgorICAgICAgICAoU3BlY3VsYXRpdmVKSVQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBoZWFwL0NvcGllZEJsb2NrLmg6CisgICAgICAgICogaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAgICAgICAg
KiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQpOgorICAg
ICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9G
VU5DVElPTik6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAg
ICAgICAoSlNDKToKKyAgICAgICAgKEpJVFN0YWNrRnJhbWUpOgorICAgICAgICAoSlNDOjpKSVRT
dGFja0ZyYW1lOjpyZXR1cm5BZGRyZXNzU2xvdCk6CisgICAgICAgIChKU0M6OnJldHVybkFkZHJl
c3NJc0luQ3RpVHJhbXBvbGluZSk6CisgICAgICAgICogaml0L0pJVFRodW5rcy5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOgor
ICAgICAgICAoSlNDOjpKSVRUaHVua3M6On5KSVRUaHVua3MpOgorICAgICAgICAoSlNDOjpKSVRU
aHVua3M6OmN0aVN0dWIpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0
dWIpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAg
ICAoVHJhbXBvbGluZVN0cnVjdHVyZSk6CisgICAgICAgIChKSVRUaHVua3MpOgorICAgICAgICAo
SlNDOjpKSVRUaHVua3M6OmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDYWxsTGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpVmlydHVhbENvbnN0cnVjdExpbmspOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0
aVZpcnR1YWxDYWxsKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlWaXJ0dWFsQ29uc3Ry
dWN0KToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKToKKyAgICAgICAg
KEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9UaHVu
a0dlbmVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L1RodW5r
R2VuZXJhdG9ycy5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAg
ICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwOgorICAgICAgICAqIHByb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhp
dC5jcHA6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9Db2RlQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6CisgICAgICAgICogcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTR2xv
YmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6dG9JbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvVUludDMyKToKKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVUludDMyKToKKyAgICAgICAgKEpT
Qzo6SlNWYWx1ZTo6YXNVSW50MzIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc051bWJlcik6
CisgICAgICAgIChKU0M6OmpzTmFOKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6
OmRlY29kZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yIGJvb2wpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRW1wdHkpOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjppc1VuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzTnVsbCk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKToKKyAgICAgICAgKEpT
Qzo6SlNWYWx1ZTo6aXNDZWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNJbnQzMik6Cisg
ICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6
aXNUcnVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNGYWxzZSk6CisgICAgICAgIChKU0M6
OkpTVmFsdWU6OnRhZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnBheWxvYWQpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjphc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjppc051bWJlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzQm9vbGVhbik6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmFzQm9vbGVhbik6CisgICAgICAgIChKU0M6OnJlaW50ZXJwcmV0
RG91YmxlVG9JbnQ2NCk6CisgICAgICAgIChKU0M6OnJlaW50ZXJwcmV0SW50NjRUb0RvdWJsZSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aXNQcmltaXRpdmUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0dldHRlclNldHRlcik6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6Z2V0U3RyaW5nKToKKyAgICAgICAgKEpTQzo6OjpnZXRTdHJpbmcpOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpnZXRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpnZXRVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpT
VmFsdWU6OmdldFByaW1pdGl2ZU51bWJlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVt
YmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRp
bWUvTmFtZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHA6
CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcDoKKyAgICAgICAgKiB0
ZXN0UmVnRXhwLmNwcDoKKwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1s
aW5lCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGpp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAg
aml0L0pJVFN0dWJzLmNwcAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBs
YWNlbWVudFdhdGNocG9pbnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEz
ODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtz
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2
NEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9U
YXJnZXQucHJpCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0
aW5lLmNwcCBcCiAgICAgaml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAg
XAogICAgIGppdC9KdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAgXAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9j
ay5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxt
YXRoLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0UmVnRXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJl
Z0V4cC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
UmVnRXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
IDxlcnJuby5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDE0ICsyOSwxNSBAQAogCiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1z
LmgiCisjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2lu
Y2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAi
T3BhcXVlSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291
cmNlQ29kZS5oIgotI2luY2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxl
dGlvbi5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAog
CiAjaW5jbHVkZSAiQVBJU2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8
cnVudGltZS9FcnJvci5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmg+CisjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgor
I2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1
bmN0aW9uLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEg
QEAKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uSGVscGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJGdW5jdGlvblByb3RvdHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIK
KyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiSlNDYWxsYmFja09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3Bw
CShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NS
ZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0Ns
YXNzUmVmLmgiCiAKICNpbmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNr
T2JqZWN0LmgiCisjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVj
dFJlZi5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFBy
b3RvdHlwZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9i
amVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYg
KzQ5LDcgQEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rv
ci5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAko
cmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJl
Zi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bERhdGEuaCIKICNpbmNsdWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFx
dWVKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MTUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsy
MTk4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXGppdFxKSVRUaHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRX
YXRjaHBvaW50LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0
XFRodW5rR2VuZXJhdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTRE
MTA2M0MwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQ
Qy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
NTZBMUQzMTUwMDBGMzUwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTky
QjEgLyogRXhlY3V0aW9uQ291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25D
b3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsK
KwkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBF
NTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVG
OTFCMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2
ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1
RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYw
MDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8q
IERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNjIwMTc2MTQzRkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2
OEI3N0MgLyogREZHQmFzaWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC05NzUsNiArOTc4LDkgQEAKIAkJMEY1NUYwRjIxNEQxMDYzNjAw
QUM3NjQ5IC8qIEFic3RyYWN0UEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QWJzdHJhY3RQQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU2QTFEMTE1MDAw
RjMxMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFeGVjdXRpb25Db3VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyog
VGh1bmtHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGh1bmtH
ZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RUY5MUIxNjg3OEY3
ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKSVRUaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVF
RjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpJVFRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjVGMDhDQzE0NkJFNjAyMDAwNDcyQTkgLyogREZHQnl0ZUNvZGVDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCeXRlQ29kZUNhY2hlLmg7IHBhdGggPSBkZmcvREZH
Qnl0ZUNvZGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGMDhDRTE0
NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNjIwMTZEMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdBYnN0cmFj
dFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Fic3Ry
YWN0U3RhdGUuY3BwOyBwYXRoID0gZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTkwNCw3ICsxOTEwLDYgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTBGNzNEN0FCMTY1QTE0MkEwMEFDQUI3MSAvKiBDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNw
cCAqLywKIAkJCQkwRjczRDdBQzE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91
dGluZS5oICovLAotCQkJCTY1OTg3RjJGMTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVy
LmggKi8sCiAJCQkJMEZEODJFMzcxNDFBQjE0MjAwMTc5Qzk0IC8qIENvbXBhY3RKSVRDb2RlTWFw
LmggKi8sCiAJCQkJQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0
b3IuY3BwICovLAogCQkJCUE3QjQ4REI1MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxs
b2NhdG9yLmggKi8sCkBAIC0xOTM3LDEzICsxOTQyLDE3IEBACiAJCQkJMEY3NjZEMUMxNUE1MDI4
RDAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmggKi8sCiAJCQkJMTRBMjNENkMwRjRFMTlDRTAw
MjNDREFEIC8qIEpJVFN0dWJzLmNwcCAqLywKIAkJCQkxNEE2NTgxQTBGNEUzNkY0MDAwMTUwRkQg
LyogSklUU3R1YnMuaCAqLywKKwkJCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1
bmtzLmNwcCAqLywKKwkJCQkwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmgg
Ki8sCiAJCQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICov
LAogCQkJCUE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovLAog
CQkJCTBGNzY2RDMyMTVBRTI1MzUwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50
LmNwcCAqLywKIAkJCQkwRjc2NkQzMzE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50
V2F0Y2hwb2ludC5oICovLAogCQkJCUE3Mzg2NTUxMTE4Njk3QjQwMDU0MDI3OSAvKiBTcGVjaWFs
aXplZFRodW5rSklULmggKi8sCisJCQkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggKi8sCiAJCQkJQTczODY1NTIxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2Vu
ZXJhdG9ycy5jcHAgKi8sCiAJCQkJQTczODY1NTMxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2Vu
ZXJhdG9ycy5oICovLAorCQkJCTY1OTg3RjJGMTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2lu
dGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGppdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0zMTk0LDYgKzMyMDMsOCBAQAogCQkJCUE3QzBDNEFDMTY4MTAzMDIwMDE3MDExRCAv
KiBKU1NjcmlwdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUZDOUFCMTY4MUEz
QjYwMDU2N0Y1MyAvKiBERkdPU1JFeGl0SnVtcFBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjA1QzNCNDE2ODNDRjkyMDBCQUY0NUIgLyogREZHQXJyYXlpZnlTbG93UGF0aEdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJ
VFRodW5rcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8q
IFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM4MTMsNiArMzgyNCw3IEBACiAJ
CQkJMEYxMzkxMkIxNjc3MUMzQTAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2Ny
aXB0UmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUZDOUFBMTY4MUEzQjMwMDU2N0Y1MyAv
KiBERkdPU1JFeGl0SnVtcFBsYWNlaG9sZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNUVG
OTFFMTY4NzhGN0EwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FycmF5QWxs
b2NhdGlvblByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcnJheUFs
bG9jYXRpb25Qcm9maWxlLmgiCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFj
ZSBKU0MgewogCiB2b2lkIEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnVwZGF0ZUluZGV4aW5nVHlw
ZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJK
U05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMb3dMZXZlbElu
dGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlZHVjZVdo
aXRlc3BhY2UuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiU2xvdFZp
c2l0b3JJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU1Njb3BlLmgiCiAjaW5jbHVkZSAiTExJbnREYXRhLmgi
CiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcAkocmV2aXNp
b24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5k
VmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYg
RU5BQkxFKFZBTFVFX1BST0ZJTEVSKQogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1l
c3BhY2UgSlNDIHsKIAogQ29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxlSG9sZGVyOjpD
b21wcmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXIoKSB7IH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUmVzb2x2ZUdsb2JhbFN0YXR1
cy5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVk
ZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJWYWx1
ZVByb2ZpbGUuaCIKICNpbmNsdWRlIDx3dGYvQm91bmRzQ2hlY2tlZFBvaW50ZXIuaD4KICNpbmNs
dWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM4
NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVDYWNo
ZS5oIgogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIK
ICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJQcm90ZWN0LmgiCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIkRlYnVnZ2VyQWN0aXZhdGlvbi5oIgogCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJh
bWUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBh
cnNlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0Jh
c2ljQmxvY2suaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVu
dHNTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZp
Y2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiREZHUGhhc2UuaCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1Zh
cmlhYmxlQWNjZXNzRGF0YUR1bXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCShyZXZpc2lvbiAxMzg0MTUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0VmFsdWUuaCIK
ICNpbmNsdWRlICJERkdHcmFwaC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdCeXRlQ29kZUNhY2hlLmgiCiAjaW5j
bHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR2V0QnlJZFN0YXR1cy5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgogI2lu
Y2x1ZGUgIlJlc29sdmVHbG9iYWxTdGF0dXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhh
c2UuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiREZHU3RydWN0dXJl
Q2hlY2tIb2lzdGluZ1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFsaWRhdGUuaCIKICNpbmNsdWRl
ICJERkdWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2UuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJE
RkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR0luc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkRGR1Bo
YXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShERkdfSklUKQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgogI2lu
Y2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUg
IkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiSklU
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyNjQuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5j
bHVkZSAiREZHT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3Bw
CShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVm
ZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIu
aCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNl
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFy
cmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdl
bmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0
UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZp
c2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0Fy
cmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0
b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgi
CisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJhdGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdp
c3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxh
dGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQ
UlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25J
bmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgp
OworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0
ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9y
bWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0
YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0
aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYg
KCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JT
cGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5m
by5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOwor
ICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdp
c3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9u
ID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVy
Rm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2
NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lz
dGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdH
UFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGluZm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDog
U3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5m
by5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICBpZiAocmVnaXN0
ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3By
KCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJUKGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJG
b3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAg
ICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICAgICAgZmlsbEFj
dGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9
PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxsQWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNv
dXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFT
U0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rp
b24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5kaWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVy
Rm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7CisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09
IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAg
IEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpOworICAgICAgICAg
ICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUuaXNDZWxsKCkpOworICAgICAgICAgICAgZmls
bEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAgICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisjZWxzZQorICAgICAg
ICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAg
IH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAg
ICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExv
YWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0
YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAg
ICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3RlZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAg
IH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Cisg
ICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7
CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAg
fSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAg
ICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7Cisg
ICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERvdWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNT
RVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJj
ZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0
aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgPyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlND
b25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2UgaWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNv
dXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOworICAgICAgICBl
bHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAgICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3Jt
YXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAg
ICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAg
ICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyVGFnOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgorICAgICAgICAgICAgICAgIEFTU0VSVChy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNCb29sZWFuKTsKKyAgICAgICAgICAgICAgICBm
aWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlm
CisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGls
bEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50
UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmly
dHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlvbklu
Zm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBub2Rl
SW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgp
OworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7
CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGlsbEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0
aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisg
ICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5nRm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAg
ICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAg
IEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdE5vbmUpOworICAgICAgICBB
U1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOworICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFTU0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBl
bHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGls
bEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUpIHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVh
ZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdl
IG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRh
Rm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9uID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAg
fSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXRE
b3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERhdGFGb3JtYXRKU0RvdWJsZSk7Cisg
ICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgeworICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25z
dGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50
OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgor
CisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rp
b24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAgICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNp
bGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dp
dGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlMzJUYWc6CisgICAgICAgIG1faml0LnN0b3Jl
MzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXls
b2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXls
b2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6CisgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4u
Z3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1
YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
Y2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBp
bGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7
CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAg
bV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQo
cGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorICAg
IAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNh
dmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBsZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxlKTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxh
bi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0z
Mih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJvb2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRl
eCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxDb25z
dGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50
KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAg
ICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgo
KSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFz
SW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1faml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1w
bGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRC
b3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChw
bGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAg
ICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZERvdWJsZUJveERvdWJsZToKKyAgICAgICAg
bV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkp
LnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRD
b21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIo
KSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJveERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZw
cigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQorICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoK
KyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRl
eCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEpT
Q29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0
YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgorICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRC
b29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29s
ZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0RG91Ymxl
Q29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWREb3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3Rh
bnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnByKCkpOworICAgICAgICBicmVhazsKKyNlbmRp
ZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3By
KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1f
aml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Io
YXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAg
ICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4
KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2Vu
ZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAgICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENv
bXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rlcigp
KSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNj
cmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRBcnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFy
cmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEz
ODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMyLDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5
IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUgYXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBp
biB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5nIGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBH
ZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFu
Rm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAg
ICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwot
ICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAg
Tm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJG
b3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZv
cm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAh
PSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAgCi0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9u
IHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAg
ICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpKQotICAgICAgICAgICAgc3BpbGxB
Y3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAgICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAg
ICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAg
ICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERh
dGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7
Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2
NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NF
UlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNl
KTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigp
ID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2FkOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFG
b3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2Up
OwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkp
OwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmls
bEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rp
b24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50
KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29u
c3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBz
b3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpOwotICAg
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAg
ICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2VsbENvbnN0YW50OwotICAgICAgICAgICAgfSBl
bHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9h
ZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9y
bWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9
PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAg
ICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAg
ICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlND
b25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERh
dGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChyZWdp
c3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOwotICAgICAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsKLSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQo
aW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsK
LSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpCi0gICAgICAgICAgICAgICAgZmls
bEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNl
dEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BS
KCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2Fk
OwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwgdGhlIFRhZwotICAgICAgICAgICAgICAgIHN3
aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09
IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3Rl
ckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFj
dGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VS
VChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAg
ICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5UYWc7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlv
biwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNh
dmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJS
ZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVy
YXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5u
b2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAg
ICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxBY3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxB
Y3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0gICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxs
KCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29u
c3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFG
b3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0g
ICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOwotICAgICAgICB9Ci0gICAgICAg
IAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsK
LSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAg
ICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OwotICAgICAgICB9IGVsc2UgaWYg
KGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0
KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAgICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkg
c3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5l
ZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NFUlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0
YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0
KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZv
cm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAg
ICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQobm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0jZW5kaWYKLQotICAgICAgICByZXR1cm4gU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBz
b3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJl
Z2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewotICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxB
Y3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRhZzoKLSAgICAgICAgICAgIG1faml0LnN0b3Jl
MzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3Rv
cmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rlcigp
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0
KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBs
YW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91YmxlOgotICAgICAgICAgICAgbV9qaXQuc3Rv
cmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2Rl
SW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRGaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxlKQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2FuVHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAg
c3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZp
bGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50Ogot
ICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
MzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAg
ICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4u
bm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIFNldFRydXN0ZWRKU0NvbnN0YW50Ogot
ICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2Rl
SW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2
YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAg
ICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9m
TnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAg
ICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAg
ICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIG1faml0
Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAg
ICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIG1faml0
LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMb2FkSlNVbmJveERvdWJsZToKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOwotICAgICAgICAgICAgdW5ib3hE
b3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNl
Ci0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
SW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdw
cigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXls
b2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFuVGFnOgotICAgICAgICAgICAgbV9qaXQubW92
ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAg
ICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRvdWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4
KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNh
c2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdG
b3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAg
ICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENv
bXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rlcigp
KSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxl
cjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBs
YW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2Fk
RG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVz
c0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNh
dmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJS
ZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9y
RlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNp
bGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVu
dEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsK
ICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29sIGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBw
bGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBleGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQ
UlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJlZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFz
ZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNl
LmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Zhcmlh
YmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDE1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1
ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVl
SW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hhbmRsZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGFuZGxlU2V0LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGFuZGxlU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1
ZGUgIkpTT05PYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiVHJh
Y2luZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiV2Vha1Nl
dElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTdGF0aXN0
aWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3Rh
dGlzdGljcy5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXBTdGF0aXN0aWNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNp
ZiBPUyhVTklYKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9y
LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSAi
SlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmlu
Zy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a0Jsb2NrLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvV2Vha0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1
ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJIZWFwUm9vdFZpc2l0b3IuaCIKICNpbmNsdWRlICJKU09i
amVjdC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJw
cmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJKU0ds
b2JhbERhdGEuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyAgewog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2xvc3VyZUNhbGxT
dHViUm91dGluZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRT
dHViUm91dGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1
ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2
ICs0Myw3IEBAIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1MKICNpbmNs
dWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtC
dWZmZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGlj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUg
IlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5j
cHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRl
ICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJ
KHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoSklUKSB8fCBF
TkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiSlNWYWx1ZS5o
IgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCisjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAi
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NzYsNTggKzc3
Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgpCiAgICAgI2RlZmluZSBDVElf
U0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFwKGFkb3B0UHRyKG5ldyBIb3N0
RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1vcnkgPSBKSVQ6OmNvbXBpbGVD
VElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJhbXBvbGluZVN0cnVjdHVyZSk7
Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNpZiBDUFUoQVJNX1RIVU1CMikK
LSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRvZXMgbm90IGxpa2UgdGhlIHVz
ZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBpdCBjb250YWlucyBub24gUE9E
IHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRPRiBtYWNybyBkb2VzIG5vdCBh
cHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBoYXBweSB3aXRoIGl0cyB1c2Ug
aW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJF
U0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRF9SNF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNikgPT0gUFJFU0VSVkVEX1I2
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI4KSA9PSBQUkVTRVJW
RURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09GRlNFVCk7Ci0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjEwKSA9PSBQ
UkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJWRURfUjExX09GRlNFVCk7Ci0K
LSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykg
PT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBmaWZ0aCBhcmd1bWVudCBpcyB0
aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9PSBGSVJTVF9TVEFDS19BUkdV
TUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0K
LSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0X09GRlNFVCk7Ci0KLQotI2Vs
aWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZTRVQpOwotICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMwKSA9PSBQUkVT
RVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1MxX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIpID09
IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEpID09IEdMT0JBTF9EQVRBX09G
RlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRUaHVua3MoKQotewotfQotCi1O
RVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0QnlJRChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRk
cmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYgc2xvdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkKK05FVkVSX0lOTElORSBzdGF0
aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayog
Y29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZh
bHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVycHJldGVyIGNoZWNrcyBmb3Ig
cmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBjYW4gb2NjdXIgaW4gQ1RJLgog
CkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNo
ZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2RlQmxvY2ssIHN0dWJJbmZvLCBz
dHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFkZHJlc3MsIGRpcmVjdCk7CiB9
CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1
cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKQog
ewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92ZXMgd2UgbmVlZCB0byBjaGVj
ayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2UgdGhlIGludGVycHJldGVyIGRv
ZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAgLTE0NDQsNyArMTM5Myw3IEBA
IERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9pZCkKICAgICAgICAgaWYgKCFz
dHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJbmZvLT5zZXRTZWVuKCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKGNhbGxG
cmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0u
anNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAgICAgICAgICAgdHJ5Q2FjaGVQ
dXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBzdGFja0Zy
YW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOwogICAgIH0KICAg
ICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpAQCAtMTQ3MCw3ICsxNDE5LDcg
QEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X2lkXwogICAgICAgICBpZiAo
IXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1YkluZm8tPnNldFNlZW4oKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5SUQoY2Fs
bEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIHN0YWNrRnJhbWUuYXJnc1sw
XS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAgICAgICAgICAgIHRyeUNhY2hl
UHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tG
cmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIHRydWUpOwogICAgIH0KICAg
ICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpAQCAtMTU0NSw3ICsxNDk0LDcg
QEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogICAgIGlmICghc3R1
YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5zZXRTZWVuKCk7CiAgICAgZWxz
ZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9j
aywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVudCwgc2xvdCwgc3R1YkluZm8p
OworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVU
VVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0dWJJbmZvKTsKIAogICAgIENI
RUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29k
ZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0YWNrRnJhbWUuYXJn
c1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9CiAKLU1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVu
a0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5
ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsK
LSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVl
ID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFs
dWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVG
dW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZl
RXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKLSAgICAg
ICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6
OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNv
bnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsKLSAgICB3ZWFrQWRkKCptX2hv
c3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihu
YXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci19Ci0KLU5h
dGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5l
cmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUq
IG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikp
Ci0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAgICAgICBpZiAoZ2xvYmFsRGF0
YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
KCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxs
KGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4
ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1
bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihj
dGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRy
aW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBh
c3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKLSAgICByZXR1cm4g
bmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9u
U3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5jbGVhcigpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDIzNCArMzYsMjIy
IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjaW5jbHVkZSAiUmVnaXN0
ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiVGh1bmtHZW5l
cmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAK
ICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOworc3RydWN0
IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsK
LSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0YWJsZVBvb2w7Ci0gICAgY2xh
c3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50aWZpZXI7Ci0gICAgY2xhc3Mg
SlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwotICAgIGNsYXNzIEpTT2Jq
ZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7Ci0gICAgY2xhc3MgSlNTdGFj
azsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFsdWVFbmNvZGVkQXNQb2ludGVy
OwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7
Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1dFByb3BlcnR5U2xvdDsKLSAg
ICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwotCi0gICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRTdHViQXJnIHsKLSAgICAgICAg
dm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlKCkg
eyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFsdWUpOyB9Ci0gICAgICAgIEpT
T2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2lu
dGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVn
aXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZpZXImIGlkZW50aWZpZXIoKSB7
IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9pbnRlcik7IH0KLSAgICAgICAg
aW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAgICAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxvY2sqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24oKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJlZ0V4cCog
cmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4oYXNQb2ludGVyKTsgfQotICAg
ICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5hbWVJdGVyYXRvcigpIHsgcmV0
dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqPihhc1BvaW50ZXIpOyB9Ci0g
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSlNTdHJpbmcqIGpzU3Ry
aW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIpOyB9Ci0gICAg
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RydWN0dXJl
Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Mo
KSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7IH0KLSAgICAgICAgUmVzb2x2
ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVz
b2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFB1dFRvQmFzZU9wZXJhdGlv
biogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHV0VG9CYXNlT3Bl
cmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBh
cnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xhc3MgQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1dGFibGVQb29sOworY2xhc3Mg
RnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsKK2NsYXNzIEpTR2xvYmFsRGF0
YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmplY3Q7CitjbGFzcyBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNzIEpTVmFsdWU7CitjbGFzcyBK
U1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVByb2ZpbGVyOworY2xhc3MgTmF0
aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2NsYXNzIFB1dFByb3BlcnR5U2xv
dDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgeworICAgIHZvaWQqIGFzUG9pbnRl
cjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVlOworICAgIGludDMyX3QgYXNJ
bnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShh
c0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAgIFJlZ2lzdGVyKiByZWcoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRlcik7IH0KKyAgICBJZGVudGlm
aWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0PElkZW50aWZpZXIqPihhc1Bv
aW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KKyAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PENvZGVCbG9jayo+KGFz
UG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uKCkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2ludGVyKTsgfQorICAgIFJlZ0V4
cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4oYXNQb2ludGVyKTsgfQor
ICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+KGFzUG9pbnRlcik7IH0KKyAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNH
bG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIpOyB9CisgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmUqPihhc1BvaW50ZXIp
OyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKCkgeyByZXR1cm4gUmV0dXJu
QWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVP
cGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1Bv
aW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24oKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24qPihhc1BvaW50ZXIpOyB9Cisg
ICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0aW9uUHJvZmlsZSgpIHsgcmV0
dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUqPihhc1BvaW50ZXIpOyB9Cit9
OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJlIHsKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7Ci0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0gICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1
Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUg
ewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBz
dGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQotICAgICAgICB2b2lkKiBjb2Rl
OwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7
Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAg
IEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2b2lkKiBzYXZlZFJCWDsKLSAg
ICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjE0OwotICAgICAgICB2
b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAgICAgICAvLyBXaGVuIEpJVCBj
b2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93
IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJu
QWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIq
Pih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAgIHZvaWQq
IHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CisgICAgdm9pZCog
cGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5
IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNTdGFjayogc3RhY2s7CisgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2VkMTsKKyAgICB2b2lkKiB1bnVz
ZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKworICAgIHZvaWQqIHNhdmVkUkJY
OworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVkUjE0OworICAgIHZvaWQqIHNh
dmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQqIHNhdmVkUkJQOworICAgIHZv
aWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1
c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2su
CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWlu
dGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KK307CiAjZWxpZiBD
UFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihH
Q0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2soNCkKICNlbmRpZiAvLyBDT01Q
SUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0NDKSkKLSAgICBzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAg
ICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAgIHZvaWQq
IHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMTYtYnl0
ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMTYt
Ynl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAgICB2b2lkKiBzYXZlZEVCWDsK
LSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQqIHNhdmVkRVNJOwotICAgICAg
ICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRFSVA7Ci0KLSAgICAgICAgdm9p
ZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAgICB2b2lkKiB1bnVzZWQyOwot
ICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAgdm9pZCogc2F2ZWRFQlg7Cisg
ICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7CisgICAgdm9pZCogc2F2ZWRF
QlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBjb2RlOworICAgIEpTU3RhY2sq
IHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIHZvaWQqIHVudXNlZDE7Cisg
ICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAgICAgICAg
IAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyBy
ZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAg
UmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJl
dF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9OworICAgIC8vIFdo
ZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1
c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJldHVybkFkZHJlc3NQdHIqIHJl
dHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZXR1cm5BZGRyZXNz
UHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5ET1dT
KSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkKICNlbmRpZiAvLyBDT01QSUxF
UihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0NDKSkKICNlbGlmIENQVShBUk1f
VEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBy
ZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLQotICAgICAg
ICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAg
ICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI2OwotICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjg7Ci0gICAgICAg
IHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSMTA7Ci0gICAgICAg
IHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2Vk
IGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdoaWNoIGlz
IG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcmVzZXJ2
ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKKworICAgIFJldHVybkFkZHJl
c3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRk
cmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKKyAgICB2b2lkKiBw
cmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRS
MTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGlj
aCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3RhY2su
CisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAgICAg
ICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0
dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAgIFJldHVybkFkZHJlc3NQdHIq
IHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQorfTsK
ICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEg
cGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKLSAg
ICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8g
VW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQotICAgICAgICBSZXR1cm5BZGRy
ZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsK
LSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI2Owot
ICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjk7Ci0g
ICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjExOwot
ICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwot
ICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLQot
ICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAg
dm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwotCi0gICAg
ICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBh
ZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgotICAgICAgICBSZXR1cm5B
ZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJl
c3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFk
ZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzddOworCisgICAgUmV0dXJuQWRk
cmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBw
cmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRS
MTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQqIHByZXNlcnZlZExpbms7CisK
KyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lk
KiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3RhY2su
CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisKKyAg
ICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRk
cmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KKyAgICBSZXR1cm5BZGRyZXNz
UHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0K
K307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhwb3ApCiAjZW5kaWYgLy8gQ09N
UElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsK
LSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJB
cmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAgICBKSVRTdHViQXJnIHJlc2Vy
dmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07CiAKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNr
IGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtlIHRoZSBv
dmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNlbmRpZgogCi0gICAgICAgIHZv
aWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5nIFBJQyBjb2RlCi0gICAgICAg
IHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMTsKLSAgICAgICAg
dm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7
Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7Ci0KLSAgICAg
ICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMgKGEwIGNvbnRhaW5lZCB0aGUg
ZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQotICAgICAgICBKU1N0
YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3Rh
Y2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUgR1Agd2hlbiB1c2luZyBQSUMg
Y29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQqIHByZXNlcnZlZFMxOworICAg
IHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CisK
KyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKKworICAgIC8vIFRoZXNl
IGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWluZWQgdGhlIGVudHJ5IGNvZGUg
cG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOwogCi0gICAgICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJu
QWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUg
c3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7
CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0
aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0KQotICAgIHN0cnVjdCBKSVRT
dGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKLSAgICAg
ICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtS
ZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsKLSAgICAgICAgdm9pZCogc2F2
ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAgICB2b2lkKiBzYXZlZFJQUjsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQqIHNhdmVkVGltZW91dFJlZzsK
LQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7
Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAg
ICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzZd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisgICAgdm9pZCog
c2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9pZCogc2F2ZWRSMTM7CisgICAg
dm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7CisgICAgdm9pZCogc2F2ZWRUaW1l
b3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7
CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVudXNlZDE7CisgICAgSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFk
ZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAg
UmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1
cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3RhY2tGcmFtZSBub3QgZGVmaW5l
ZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwyMDIgKzI2MiwxNTUgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykKIAogI2lmIENQVShYODYpCi0g
ICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRfU1RVQiBfX2Zhc3RjYWxsCi0g
ICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklUX1NUVUIgIF9fYXR0cmlidXRl
X18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VOQ0MpCi0gICAgI2RlZmluZSBK
SVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RVQiBmdW5jdGlvbiBjYWxscyBy
ZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRkIGFwcHJvcHJpYXRlIGRpcmVj
dGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEiCi0gICAgI2VuZGlmCisjaWYg
Q09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0Y2FsbAorI2VsaWYgQ09NUElM
RVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKKyNl
bGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgogI2Vsc2UKLSAgICAjZGVmaW5l
IEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNhbGxzIHJlcXVpcmUgZmFzdGNh
bGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUgZGlyZWN0aXZlL2F0dHJpYnV0
ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vsc2UKKyNkZWZpbmUgSklUX1NU
VUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZNVGhyb3dUcmFtcG9saW5lKCk7
Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKTsKLSAgICBleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1wb2xpbmUoKTsKK2V4dGVybiAi
QyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVl
IGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8q
dW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CiAjaWYgRU5BQkxF
KERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1wb2xpbmVFbmQoKTsKK2V4dGVy
biAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBpbmxpbmUgYm9vbCByZXR1cm5B
ZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFsdWUoKSA+PSBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAgJiYgcmV0dXJuQWRkcmVzcy52
YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZUVuZCk7Ci0gICAgfQot
I2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1YmxpYzoKLSAgICAgICAgSklU
VGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1bmtzKCk7Ci0KLSAgICAgICAg
c3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQdXRCeUlEKENhbGxG
cmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1
ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJl
LmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5j
dGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZp
cnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZp
cnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlW
aXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2Fs
bDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdCgp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0OyB9Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKLSAgICAgICAgewot
I2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQot
ICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50
Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsKLSNlbmRpZgotICAgICAgICAg
ICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOwotICAgICAgICB9
Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKQotICAg
ICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVN
ZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSk7Citpbmxp
bmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0ciBy
ZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRyZXNzLnZhbHVlKCkgPj0gYml0
d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAgICAgJiYgcmV0dXJuQWRkcmVz
cy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZUVuZCk7Cit9CiAj
ZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZl
Q29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0
aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwotCi0gICAgICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiwgTmF0aXZlRnVuY3Rpb24s
IE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSog
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlvbiwgVGh1bmtHZW5l
cmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVhckhvc3RGdW5jdGlvblN0dWJz
KCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKLSAgICAgICAgQ1RJU3R1Yk1h
cCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxOYXRpdmVGdW5jdGlvbiwg
V2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0dWJNYXA7Ci0gICAgICAgIE93
blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7Ci0gICAgICAg
IFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1dGFibGVNZW1vcnk7Ci0KLSAg
ICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmU7Ci0gICAgfTsK
IAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2FkZChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVuY3Rpb24oU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X05vdEpTQ29uc3RydWN0KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NyZWF0ZV90
aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NyZWF0ZV9h
cmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGVsX2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRf
Y3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90
b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Nl
bGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsX2dlbmVyaWMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pbihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJlcihTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
aXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3Vu
ZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzc2VxKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3Ry
aWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wb3N0X2luYyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2luYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZW5zdXJlX3Byb3BlcnR5
X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hp
ZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyaWN0ZXEoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1iZXIoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF91cnNo
aWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXkoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9v
cF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5X2J1ZmZlcihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3Rp
X29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpT
T2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X29iamVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklU
X1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNoX2FjdGl2YXRpb24oU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX3B1dF9ieV9p
ZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIgY3RpX29wX2dldF9wbmFtZXMo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0
aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklU
X1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qZ3Jl
YXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NU
VUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3BfbG9hZF92YXJhcmdzKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfdGlt
ZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQg
SklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9lbmQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1w
X3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9kaWRfY2FsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9m
aWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2
b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2ZhaWwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRf
ZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9p
bmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRf
Z2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2
b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9jaGVjayhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF90ZWFyX29m
Zl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF90aHJvd19zdGF0aWNf
ZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFuZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXRv
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfTm90SlNDb25zdHJ1Y3QoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVfYXJndW1lbnRzKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RpdihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2FycmF5X2ZhaWwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZW5lcmlj
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRf
cHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9n
ZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9zZWxmX2ZhaWwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWwo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3Ry
aW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNlb2YoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNf
Ym9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19udW1iZXIoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmluZyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc191
bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzZXEoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
Z3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbHNoaWZ0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVnYXRlKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25v
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9kZWMoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfaW5jKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVf
YmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX3RoaXMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9w
dXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyY2F0KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19qc251bWJlcihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Vyc2hp
ZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV93
aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVj
dCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX3B1
c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQg
SklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3Bf
cHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9TVFVCIGN0aV9vcF9nZXRfcG5h
bWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0
aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RV
QiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9vcF9qZ3JlYXRlcmVx
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVCIGN0aV9v
cF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9T
VFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX2RlYnVnKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3Bf
ZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBj
dGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3Zv
aWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVfZGlkX2NhbGwoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9maWxl
X3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklU
X1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWlsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVy
aWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0
aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9mYWlsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lk
X2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X3ZhbChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9iYWxfY29uc3RfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF90
ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
dm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGhyb3dfc3RhdGljX2Vy
cm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogI2lmIEVOQUJMRShERkdf
SklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0aW1pemUoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlf
b3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJpdHlDaGVjayhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2Fs
bF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZv
aWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGlsZShTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2No
YXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3Rocm93KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0
aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NvbnN0cnVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VEX0ZST01fQVNN
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2FyaXR5Q2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
Y29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9qaXRD
b21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NU
VUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX3N0cmluZyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF90
aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVC
IGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3Zv
aWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDb25zdHJ1Y3QoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1f
dGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRF
Uk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUoTExJTlRfQ19MT09QKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJVFRodW5rcy5oIgorCisjaWYg
RU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKKyNpbmNsdWRlICJKSVQuaCIK
KyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKK25h
bWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRvcHRQdHIobmV3IEhvc3RGdW5j
dGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9IEpJVDo6Y29tcGlsZUNUSU1h
Y2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9saW5lU3RydWN0dXJlKTsKKyAg
ICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQVShBUk1fVEhVTUIyKQorICAg
IC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBub3QgbGlrZSB0aGUgdXNlIG9m
IG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNvbnRhaW5zIG5vbiBQT0QgdHlw
ZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1hY3JvIGRvZXMgbm90IGFwcGVh
ciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5IHdpdGggaXRzIHVzZSBpbiBD
T01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJW
RURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEX1I0X09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9PSBQUkVTRVJWRURfUjZfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjgpID09IFBSRVNFUlZFRF9S
OF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTApID09IFBSRVNF
UlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9SMTFfT0ZGU0VUKTsKKworICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBS
RUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRoIGFyZ3VtZW50IGlzIHRoZSBm
aXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJUlNUX1NUQUNLX0FSR1VNRU5U
KTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRo
dW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKworI2Vs
aWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FE
RFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZGU0VUKTsKKworCisjZWxpZiBD
UFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzApID09IFBSRVNFUlZF
RF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMikgPT0gUFJF
U0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZT
RVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHN0
YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0gR0xPQkFMX0RBVEFfT0ZGU0VU
KTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5rcygpCit7Cit9CisKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAgQ1RJU3R1Yk1hcDo6QWRkUmVz
dWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAgICAgICAgZW50cnkuaXRlcmF0
b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgIHJldHVybiBlbnRyeS5pdGVy
YXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0
aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9u
LCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBpZiAoTmF0aXZlRXhlY3V0YWJs
ZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KGZ1bmN0aW9u
KSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisKKyAgICBOYXRpdmVFeGVjdXRh
YmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxE
YXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKSwgZnVu
Y3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0
aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsKKyAgICB3ZWFr
QWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxOYXRpdmVFeGVj
dXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7
Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBUaHVua0dlbmVy
YXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7CisgICAgaWYgKE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChm
dW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOworCisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRvcikgeworICAgICAgICBpZiAo
Z2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBjb2RlID0gZ2VuZXJhdG9yKGds
b2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb2RlID0gTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUgPSBKSVQ6OmNvbXBpbGVDVElO
YXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAgIE5hdGl2ZUV4ZWN1dGFibGUq
IG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2JhbERhdGEs
IGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2Vk
Q29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVj
dG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwgZnVu
Y3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKKyAg
ICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBKSVRUaHVua3M6OmNsZWFySG9z
dEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5jbGVhcigpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisKKyNpbmNsdWRlIDx3dGYvUGxh
dGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDYWxsRGF0YS5oIgorI2lu
Y2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNp
bmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNsdWRlICJUaHVua0dlbmVyYXRv
ci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBK
U0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOworCitz
dHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZp
cnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0
cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOworICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0OworICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVua3MgeworcHVibGljOgorICAg
IEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1bmtzKCk7CisKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSgpIHsgcmV0dXJuIG1f
dHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lOyB9CisgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1
Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmly
dHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVj
dCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0OyB9
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoKQorICAgIHsKKyNpZiBF
TkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAg
ICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50
X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAgICAgIHJldHVybiBtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9CisgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lmIEVOQUJMRShMTElOVCkKKyAg
ICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAgICAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfbmF0aXZlX2NvbnN0cnVj
dF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0
dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRvcik7CisKKyAgICBOYXRpdmVF
eGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSosIE5hdGl2ZUZ1bmN0aW9u
LCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0aXZlRXhlY3V0YWJsZSogaG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlvbiwgVGh1bmtHZW5lcmF0
b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKTsKKwor
cHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8TmF0aXZlRXhlY3V0YWJsZT4g
PiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBt
X2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+
IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVTdHJ1Y3R1cmUgbV90cmFtcG9s
aW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0b3JfaAorI2RlZmluZSBUaHVu
a0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShK
SVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxEYXRhOworY2xhc3MgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiAoKlRodW5r
R2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaAorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCShyZXZpc2lv
biAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNpbmNsdWRlICJUaHVua0dlbmVy
YXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9JbmxpbmVB
U00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtH
ZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgiCisKICNpZiBFTkFCTEUo
SklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0YWJsZVBvb2w7Ci0gICAgY2xh
c3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3Mg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihK
U0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dl
bmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZmxvb3JU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSop
OworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcihKU0ds
b2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0ds
b2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAj
ZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUg
IkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2Zp
bGVyLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2Zp
bGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiUHJvZmlsZU5v
ZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFjaW5nLmgiCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5j
cHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFBy
b2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Qnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJKHJldmlzaW9uIDEzODQxNSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlU2VxdWVu
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJPcGVyYW5kcy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5j
cHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAJ
KHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2Uu
aCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmgiCiAKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAJKHJldmlzaW9u
IDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFi
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29k
ZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIg
ewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0
U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUg
IkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxlck9yaWdpbi5oIgogCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9maWxlckRhdGFiYXNlLmgiCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGVy
RGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCShyZXZpc2lvbiAxMzg0
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4
NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNp
b24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAi
Qm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQx
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiQm9vbGVhbk9iamVjdC5o
IgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1N0
cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2Fj
aGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVD
YWNoZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9u
S2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNp
bmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEyIEBACiAKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgiCisjaW5jbHVkZSAiRGVidWdn
ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCi0jaW5jbHVkZSAiRGVidWdn
ZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnN0cnVjdERhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnN0cnVjdERh
dGEuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2lu
Y2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQs
NyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCisjaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RQ
cm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5o
IgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHJldmlz
aW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRXJy
b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBl
LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRl
ICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIk5v
ZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHJldmlz
aW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXhlY3V0aW9u
SGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpJVERyaXZlci5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIk5v
ZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJp
bmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJMZXhlci5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkocmV2aXNp
b24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkdldHRlclNl
dHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgog
I2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmljU3RyaW5ncy5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50cy5o
IgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5k
RnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNp
bmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsy
NCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJDYWxsRGF0YS5oIgotI2luY2x1
ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERhdGEuaCIKICNpbmNsdWRlICJI
ZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9y
LmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2ICszNiw3IEBACiBuYW1lc3Bh
Y2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBK
U0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgTExJbnRP
ZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAgcHJpdmF0ZToKICAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAKLWlubGluZSBKU0NlbGw6OkpT
Q2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5saW5lIHZvaWQgSlNDZWxsOjpm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17Ci0jaWYgRU5BQkxFKEdD
X1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJbml0aWFsaXppbmdPYmplY3Qo
KSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFzcygwKTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlmCi0gICAgQVNTRVJUKG1fc3Ry
dWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxsOjpzdHJ1Y3R1cmUoKSBjb25z
dAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0KLQotaW5saW5lIHZvaWQgSlND
ZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17
Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwotCi0gICAgdmlzaXRvci5hcHBl
bmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5n
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7
Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOwotfQotCi1pbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgp
ICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5p
c09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2Vs
bCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0
U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBh
c0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJp
bmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3Ry
aW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsK
LX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikg
Y29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAgIGludDMyX3QgaSA9IGFzSW50
MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAgICAgICAgcmV0
dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgZG91Ymxl
IGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOwot
ICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAotewotICAgIHJldHVybiBpc0Nl
bGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFs
dWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNT
dGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQotewotICAgIGlmIChp
c0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOwotICAgICAgICB2YWx1ZSA9
ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChpc0NlbGwoKSkKLSAgICAgICAg
cmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7
Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9IDEuMDsKLSAgICAgICAgdmFs
dWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChpc0ZhbHNl
KCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4wOwotICAgICAgICB2YWx1ZSA9
ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgQVNTRVJUKGlzVW5kZWZp
bmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUgPSAqdGhpczsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHJldHVy
biBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAgICAgIHJldHVybiBhc0RvdWJs
ZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNP
YmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkg
OiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Ci19Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCwgc2l6ZV90IHNpemUpCi17
Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBFTkFCTEUoR0NfVkFMSURBVElP
TikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0luaXRpYWxpemluZ09iamVjdCgp
KTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoJlQ6
OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9IDA7Ci0gICAgaWYgKFQ6Om5l
ZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1cmUpCi0gICAgICAgIHJlc3Vs
dCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVXaXRoSW1tb3J0YWxTdHJ1Y3R1
cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpuZWVkc0Rlc3RydWN0aW9uICYm
ICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8
SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBl
bHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRl
V2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+Y2xlYXJTdHJ1Y3R1cmUoKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQq
IGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVybiBhbGxvY2F0ZUNlbGw8VD4o
aGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29sIGlzWmFwcGVkKGNvbnN0IEpT
Q2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBwZWQoKTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUgVG8ganNDYXN0KEZyb20qIGZy
b20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRo
LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAq
IENvcHlyaWdodCAoQykgMjAxMCAmeWV0LCBMTEMuIChuYXRlQGFuZHlldC5uZXQpCkBAIC03NCw2
ICs3NCw3IEBACiAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVk
ZSA8bGltaXRzLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNs
dWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDEz
ODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZUFsbG9j
YXRvci5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKLSNpbmNs
dWRlICJKSVRTdHVicy5oIgorI2luY2x1ZGUgIkpJVFRodW5rcy5oIgogI2luY2x1ZGUgIkpTTG9j
ay5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTbWFsbFN0cmluZ3MuaCIKICNpbmNsdWRlICJTdHJvbmcu
aCIKICNpbmNsdWRlICJUZXJtaW5hdG9yLmgiCisjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgi
CiAjaW5jbHVkZSAiVGltZW91dENoZWNrZXIuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5RGVzY3Jp
cHRvci5oIgogI2luY2x1ZGUgIldlYWtSYW5kb20uaCIKQEAgLTY2LDYgKzY3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgY2xhc3MgQ29kZUJsb2NrOwogICAgIGNsYXNzIENvZGVDYWNoZTsKICAg
ICBjbGFzcyBDb21tb25JZGVudGlmaWVyczsKKyAgICBjbGFzcyBFeGVjU3RhdGU7CiAgICAgY2xh
c3MgSGFuZGxlU3RhY2s7CiAgICAgY2xhc3MgSWRlbnRpZmllclRhYmxlOwogICAgIGNsYXNzIElu
dGVycHJldGVyOwpAQCAtMTg4LDcgKzE5MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEdsb2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGll
bnREYXRhOwotICAgICAgICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKKyAgICAgICAgRXhlY1N0
YXRlKiB0b3BDYWxsRnJhbWU7CiAKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheUNvbnN0
cnVjdG9yVGFibGU7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlQcm90b3R5cGVUYWJs
ZTsKQEAgLTMwOCw3ICszMTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBSZXR1cm5B
ZGRyZXNzUHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwogICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0
dXJuVmFsdWU7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lRm9yVGhyb3c7CisgICAgICAg
IEV4ZWNTdGF0ZSogY2FsbEZyYW1lRm9yVGhyb3c7CiAgICAgICAgIHZvaWQqIHRhcmdldE1hY2hp
bmVQQ0ZvclRocm93OwogICAgICAgICBJbnN0cnVjdGlvbiogdGFyZ2V0SW50ZXJwcmV0ZXJQQ0Zv
clRocm93OwogI2lmIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAi
SlNOYW1lU2NvcGUuaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVBy
b2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShy
ZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKICNpbmNsdWRlICJO
b2Rlcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNp
bmNsdWRlIDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcg
KzI1LDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
ICNpZiBVU0UoUFRIUkVBRFMpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDE1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKIAog
I2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkxvY2FsLmgiCiAjaW5jbHVkZSAiTG9jYWxTY29wZS5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJh
eS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94
eS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
SlNQcm94eS5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Njb3BlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3Bl
LmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJp
YWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgiCiAKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBpbnQgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdDo6ZmluZFJlZ2lzdGVySW5kZXgodm9pZCogcmVnaXN0ZXJBZGRyZXNz
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9p
bmVyLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmdKb2luZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdJbXBsLmg+CiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIC8vIFRoZSBkZXN0aW5h
dGlvbiBpcyAxNmJpdHMsIGF0IGxlYXN0IG9uZSBzdHJpbmcgaXMgMTYgYml0cy4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIK
ICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTTm90QW5PYmplY3QuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIk51bWJlck9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNWYWx1ZUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhbHVlSW5saW5lcy5oCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw0
NzEgKzI2LDU4MSBAQAogI2lmbmRlZiBKU1ZhbHVlSW5saW5lc19oCiAjZGVmaW5lIEpTVmFsdWVJ
bmxpbmVzX2gKIAorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU1ZhbHVl
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFs
dWU6OnRvSW50MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlz
SW50MzIoKSkKLSAgICAgICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgICAgIHJldHVybiBK
U0M6OnRvSW50MzIodG9OdW1iZXIoZXhlYykpOwotICAgIH0KLQotICAgIGlubGluZSB1aW50MzJf
dCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAg
ICAvLyBTZWUgY29tbWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KLSAgICAgICAgcmV0dXJu
IHRvSW50MzIoZXhlYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50
MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkg
Pj0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBj
b25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVUludDMyKCkpOworQUxXQVlTX0lOTElORSBp
bnQzMl90IEpTVmFsdWU6OnRvSW50MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlm
IChpc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgfQorICAgIHJldHVy
biBKU0M6OnRvSW50MzIodG9OdW1iZXIoZXhlYykpOworfQogCi0gICAgaW5saW5lIGRvdWJsZSBK
U1ZhbHVlOjphc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNOdW1iZXIo
KSk7Ci0gICAgICAgIHJldHVybiBpc0ludDMyKCkgPyBhc0ludDMyKCkgOiBhc0RvdWJsZSgpOwot
ICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlIGpzTmFOKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlKFFOYU4pOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNo
YXIgaSkKLSAgICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90
PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hh
ciBpKQotICAgIHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+
KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQotICAg
IHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBzaG9ydCBpKQotICAg
IHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQotICAgIHsKLSAg
ICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpIDwgMCkgewotICAgICAgICAgICAgKnRo
aXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKGxvbmcgaSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAh
PSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRp
Y19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQotICAgIHsKLSAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhp
cyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0
aWNfY2FzdDx1aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+
KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGxvbmcgaSkKLSAg
ICB7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGludDMyX3QgYXNJ
bnQzMiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOwotICAgICAgICBpZiAoYXNJbnQzMiAhPSBk
IHx8ICghYXNJbnQzMiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCi0gICAgICAg
ICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIGQpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQz
Ml90PihkKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVu
Y29kZShKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLnUuYXNJbnQ2
NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpkZWNvZGUoRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEpTVmFsdWUpCi0gICAgewotICAgICAgICBKU1ZhbHVlIHY7Ci0gICAgICAg
IHYudS5hc0ludDY0ID0gZW5jb2RlZEpTVmFsdWU7Ci0gICAgICAgIHJldHVybiB2OwotICAgIH0K
K2lubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
Cit7CisgICAgLy8gU2VlIGNvbW1lbnQgb24gSlNDOjp0b1VJbnQzMiwgYWJvdmUuCisgICAgcmV0
dXJuIHRvSW50MzIoZXhlYyk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVUludDMyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOworfQorCitp
bmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChp
c1VJbnQzMigpKTsKKyAgICByZXR1cm4gYXNJbnQzMigpOworfQorCitpbmxpbmUgZG91YmxlIEpT
VmFsdWU6OmFzTnVtYmVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNOdW1iZXIoKSk7CisgICAg
cmV0dXJuIGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Cit9CisKK2lubGluZSBK
U1ZhbHVlIGpzTmFOKCkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShRTmFOKTsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNf
Y2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVk
IGNoYXIgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkp
OworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQoreworICAgICp0aGlzID0g
SlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19j
YXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQg
aSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgPCAwKSB7CisgICAgICAgICp0
aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQoreworICAg
IGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNW
YWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkp
KTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQoreworICAg
IGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
aSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGxvbmcgaSkKK3sKKyAgICBp
ZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7
Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQorewor
ICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJf
dD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkKK3sKKyAgICBj
b25zdCBpbnQzMl90IGFzSW50MzIgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihkKTsKKyAgICBpZiAo
YXNJbnQzMiAhPSBkIHx8ICghYXNJbnQzMiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAt
MC4wCisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+
KGQpKTsKK30KKworaW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVl
IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZS51LmFzSW50NjQ7Cit9CisKK2lubGluZSBKU1Zh
bHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1ZSkKK3sKKyAg
ICBKU1ZhbHVlIHY7CisgICAgdi51LmFzSW50NjQgPSBlbmNvZGVkSlNWYWx1ZTsKKyAgICByZXR1
cm4gdjsKK30KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAg
ICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoSlNOdWxsVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gTnVsbFRh
ZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5h
c0JpdHMucGF5bG9hZCA9IDA7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRh
ZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQg
PSAwOworfQogICAgIAotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFn
KQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gVW5kZWZpbmVkVGFnOwotICAgICAgICB1
LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Vu
ZGVmaW5lZFRhZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7CisgICAgdS5h
c0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
SlNUcnVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAg
ICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDE7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSlNUcnVlVGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7CisgICAgdS5h
c0JpdHMucGF5bG9hZCA9IDE7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
SlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7Ci0g
ICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNC
aXRzLnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7
Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCi0gICAg
ewotICAgICAgICBpZiAocHRyKQotICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsK
LSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRy
KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0
cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIpCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBD
ZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQz
Ml90Pihjb25zdF9jYXN0PEpTQ2VsbCo+KHB0cikpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0YWcoKSAh
PSBEZWxldGVkVmFsdWVUYWcpOwotICAgICAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRh
ZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpT
VmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBv
dGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0
b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1
LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpT
VmFsdWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEVt
cHR5VmFsdWVUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IFVuZGVmaW5lZFRhZzsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRhZygpID09IE51bGxUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxsKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBD
ZWxsVGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEludDMyVGFnOwotICAgIH0KLQotICAg
IGlubGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0YWcoKSA8IExvd2VzdFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppc1RydWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5U
YWcgJiYgcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VU
YWcpCit7CisgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZh
bHVlVGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBw
dHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKKyAg
ICBlbHNlCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0Jp
dHMucGF5bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKK30KIAotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB1
LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5hc0JpdHMudGFnID0g
RW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxp
bnQzMl90Pihjb25zdF9jYXN0PEpTQ2VsbCo+KHB0cikpOworfQogCi0gICAgaW5saW5lIHVpbnQz
Ml90IEpTVmFsdWU6OnRhZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMu
dGFnOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQodGFnKCkgIT0gRGVsZXRlZFZhbHVlVGFnKTsKKyAgICByZXR1cm4gdGFnKCkgIT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3I9PShjb25z
dCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVy
LnUuYXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBK
U1ZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUu
YXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRhZygpID09IEVtcHR5VmFsdWVUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVk
VGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJl
dHVybiB0YWcoKSA9PSBOdWxsVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxs
KCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IENlbGxUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIo
KSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBJbnQzMlRhZzsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA8IExvd2Vz
dFRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29sZWFu
VGFnICYmICFwYXlsb2FkKCk7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0YWcoKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzQml0cy50YWc7Cit9CiAgICAgCi0gICAgaW5saW5lIGlu
dDMyX3QgSlNWYWx1ZTo6cGF5bG9hZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0JpdHMucGF5bG9hZDsKLSAgICB9CitpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXlsb2FkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxp
bmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChpc0ludDMyKCkpOwotICAgICAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9Citp
bmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJ
bnQzMigpKTsKKyAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxp
bmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHUuYXNEb3VibGU7Ci0gICAgfQoraW5saW5l
IGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzRG91Ymxl
KCkpOworICAgIHJldHVybiB1LmFzRG91YmxlOworfQogICAgIAotICAgIEFMV0FZU19JTkxJTkUg
SlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlz
Q2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0Jp
dHMucGF5bG9hZCk7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVl
KEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7Ci0gICAgICAgIHUuYXNEb3VibGUg
PSBkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxv
YWQgPSBpOwotICAgIH0KK0FMV0FZU19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBj
b25zdAoreworICAgIEFTU0VSVChpc0NlbGwoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8SlNDZWxsKj4odS5hc0JpdHMucGF5bG9hZCk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1
ZTo6SlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlIGQpCit7CisgICAgdS5hc0RvdWJs
ZSA9IGQ7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQoreworICAgIHUuYXNC
aXRzLnRhZyA9IEludDMyVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBpOworfQogCiAjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90
IHRhZywgaW50MzJfdCBwYXlsb2FkKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gdGFn
OwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gcGF5bG9hZDsKLSAgICB9CitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShpbnQzMl90IHRhZywgaW50MzJfdCBwYXlsb2FkKQoreworICAgIHUuYXNC
aXRzLnRhZyA9IHRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcGF5bG9hZDsKK30KICNlbmRp
ZgogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGlzSW50MzIoKSB8fCBpc0RvdWJsZSgpOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
aXNUcnVlKCkgfHwgaXNGYWxzZSgpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6
OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwot
ICAgICAgICByZXR1cm4gcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBib29sIEpTVmFsdWU6Omlz
TnVtYmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNJbnQzMigpIHx8IGlzRG91YmxlKCk7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGlzVHJ1ZSgpIHx8IGlzRmFsc2UoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29s
ZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOworICAgIHJldHVybiBwYXls
b2FkKCk7Cit9CiAKICNlbHNlIC8vICFVU0UoSlNWQUxVRTMyXzY0KSBpLmUuIFVTRShKU1ZBTFVF
NjQpCiAKLSAgICAvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhh
cyBhIHRhZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQg
b2YgMHgwLCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KLSAgICBpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5
OwotICAgIH0KLQotICAgIC8vIDB4NCBjYW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2Ug
aXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRpY2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5
bG9hZCBvZiAweDQsIHdoaWNoIGlzIGluIHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0g
ICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRGVsZXRlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7
Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBK
U1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0Owot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5lZCk7Ci0gICAgfQotCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
c1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpT
VmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09
IEpTVmFsdWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Zh
bHNlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShK
U0ZhbHNlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBj
b25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQm9vbGVhbigpKTsKLSAgICAgICAgcmV0dXJu
IGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTVHJ1ZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDMy
X3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNJbnQz
MigpKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGlzTnVtYmVyKCkgJiYgIWlzSW50MzIoKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50
NjQgPSBWYWx1ZU51bGw7Ci0gICAgfQorLy8gMHgwIGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkg
YmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBi
dXQgYSBwYXlsb2FkIG9mIDB4MCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2Uu
CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVFbXB0
eTsKK30KKworLy8gMHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMg
YSB0YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9m
IDB4NCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikK
K3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKK30K
KworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3QgSlNDZWxsKiBwdHIpCit7CisgICAgdS5h
c0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4o
cHRyKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gdS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09
KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0g
b3RoZXIudS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNv
bnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3Ro
ZXIudS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdS5hc0ludDY0ID09IFZhbHVlRW1wdHk7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09
IEpTVmFsdWUoSlNVbmRlZmluZWQpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwo
KSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiBhc1Zh
bHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Zh
bHNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNGYWxzZSk7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgQVNT
RVJUKGlzQm9vbGVhbigpKTsKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVl
KTsKK30KKworaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlzSW50MzIoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJ
bnQ2NCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXNOdW1iZXIoKSAmJiAhaXNJbnQzMigpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShKU051bGxUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVOdWxsOworfQogICAg
IAotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAg
ICAgICAgdS5hc0ludDY0ID0gVmFsdWVVbmRlZmluZWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFs
dWVUcnVlOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcp
Ci0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUZhbHNlOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIC8vIFVuZGVmaW5lZCBhbmQgbnVsbCBzaGFyZSB0aGUgc2FtZSB2YWx1ZSwgYmFyIHRoZSAn
dW5kZWZpbmVkJyBiaXQgaW4gdGhlIGV4dGVuZGVkIHRhZy4KLSAgICAgICAgcmV0dXJuICh1LmFz
SW50NjQgJiB+VGFnQml0VW5kZWZpbmVkKSA9PSBWYWx1ZU51bGw7Ci0gICAgfQotCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biAodS5hc0ludDY0ICYgfjEpID09IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAhKHUuYXNJ
bnQ2NCAmIFRhZ01hc2spOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50
MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVt
YmVyKSA9PSBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIGlubGluZSBpbnQ2NF90IHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NChkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKTsKLSAgICB9Ci0gICAgaW5saW5lIGRvdWJsZSBy
ZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lO
TElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7
Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJs
ZUVuY29kZU9mZnNldDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQg
aSkKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFRhZ1R5cGVOdW1iZXIgfCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oaSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0Rv
dWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNEb3VibGUoKSk7Ci0gICAgICAg
IHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0ludDY0IC0gRG91YmxlRW5jb2Rl
T2Zmc2V0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ICYgVGFnVHlwZU51bWJlcjsKLSAg
ICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0NlbGwoKSk7Ci0gICAgICAgIHJldHVybiB1LnB0cjsK
LSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVmaW5lZFRhZykKK3sKKyAgICB1
LmFzSW50NjQgPSBWYWx1ZVVuZGVmaW5lZDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
SlNUcnVlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVHJ1ZTsKK30KKworaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUZhbHNl
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0Cit7
CisgICAgLy8gVW5kZWZpbmVkIGFuZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhl
ICd1bmRlZmluZWQnIGJpdCBpbiB0aGUgZXh0ZW5kZWQgdGFnLgorICAgIHJldHVybiAodS5hc0lu
dDY0ICYgflRhZ0JpdFVuZGVmaW5lZCkgPT0gVmFsdWVOdWxsOworfQorCitpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAoreworICAgIHJldHVybiAodS5hc0ludDY0ICYgfjEp
ID09IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAoreworICAgIHJldHVybiAodS5hc0ludDY0ICYgVGFn
VHlwZU51bWJlcikgPT0gVGFnVHlwZU51bWJlcjsKK30KKworaW5saW5lIGludDY0X3QgcmVpbnRl
cnByZXREb3VibGVUb0ludDY0KGRvdWJsZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9j
YXN0PGludDY0X3Q+KHZhbHVlKTsKK30KK2lubGluZSBkb3VibGUgcmVpbnRlcnByZXRJbnQ2NFRv
RG91YmxlKGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxkb3VibGU+
KHZhbHVlKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91
YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJldERvdWJsZVRv
SW50NjQoZCkgKyBEb3VibGVFbmNvZGVPZmZzZXQ7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKGludCBpKQoreworICAgIHUuYXNJbnQ2NCA9IFRhZ1R5cGVOdW1iZXIgfCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oaSk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3VibGUoKSBj
b25zdAoreworICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKHUuYXNJbnQ2NCAtIERvdWJsZUVuY29kZU9mZnNldCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0
ICYgVGFnVHlwZU51bWJlcjsKK30KKworQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gdS5wdHI7
Cit9CiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc1N0
cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1ByaW1pdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICFpc0NlbGwoKSB8fCBhc0NlbGwoKS0+aXNTdHJpbmcoKTsKK30KKworaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdAoreworICAgIHJldHVybiBp
c0NlbGwoKSAmJiBhc0NlbGwoKS0+aXNHZXR0ZXJTZXR0ZXIoKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0Nl
bGwoKS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4
ZWNTdGF0ZSogZXhlYywgU3RyaW5nJiBzKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAm
JiBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMsIHMpOworfQorCitpbmxpbmUgU3RyaW5nIEpTVmFs
dWU6OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPmdldFN0cmluZyhleGVjKSA6IFN0cmluZygpOworfQorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgQmFzZT4gU3RyaW5nIEhhbmRsZUNvbnZlcnRlcjxCYXNlLCBVbmtub3duPjo6
Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4ganNWYWx1ZSgp
LmdldFN0cmluZyhleGVjKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjpnZXRPYmpl
Y3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5nZXRPYmplY3Qo
KSA6IDA7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpnZXRVSW50MzIodWludDMy
X3QmIHYpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IGkg
PSBhc0ludDMyKCk7CisgICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSk7CisgICAg
ICAgIHJldHVybiBpID49IDA7CisgICAgfQorICAgIGlmIChpc0RvdWJsZSgpKSB7CisgICAgICAg
IGRvdWJsZSBkID0gYXNEb3VibGUoKTsKKyAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihkKTsKKyAgICAgICAgcmV0dXJuIHYgPT0gZDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1ByaW1pdGl2ZShFeGVjU3RhdGUqIGV4ZWMs
IFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9QcmltaXRpdmUoZXhlYywgcHJlZmVycmVkVHlwZSkg
OiBhc1ZhbHVlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmdldFByaW1pdGl2ZU51bWJl
cihFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1ZSkKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIG51bWJlciA9IGFzSW50MzIoKTsKKyAgICAgICAg
dmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0Rv
dWJsZSgpKSB7CisgICAgICAgIG51bWJlciA9IGFzRG91YmxlKCk7CisgICAgICAgIHZhbHVlID0g
KnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaXNDZWxsKCkpCisg
ICAgICAgIHJldHVybiBhc0NlbGwoKS0+Z2V0UHJpbWl0aXZlTnVtYmVyKGV4ZWMsIG51bWJlciwg
dmFsdWUpOworICAgIGlmIChpc1RydWUoKSkgeworICAgICAgICBudW1iZXIgPSAxLjA7CisgICAg
ICAgIHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAo
aXNGYWxzZSgpIHx8IGlzTnVsbCgpKSB7CisgICAgICAgIG51bWJlciA9IDAuMDsKKyAgICAgICAg
dmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVChp
c1VuZGVmaW5lZCgpKTsKKyAgICBudW1iZXIgPSBRTmFOOworICAgIHZhbHVlID0gKnRoaXM7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK0FMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVt
YmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQorICAgICAg
ICByZXR1cm4gYXNJbnQzMigpOworICAgIGlmIChpc0RvdWJsZSgpKQorICAgICAgICByZXR1cm4g
YXNEb3VibGUoKTsKKyAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKK30KKworaW5s
aW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAor
eworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBnbG9iYWxP
YmplY3QpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBnbG9iYWxPYmplY3QpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTVmFsdWVJbmxpbmVzX2gKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dpdGhTY29wZS5jcHAJKHJldmlzaW9uIDEz
ODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVz
cGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNXaXRoU2NvcGU6OnNfaW5mbyA9IHsgIldp
dGhTY29wZSIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXaXRo
U2NvcGUpIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
V3JhcHBlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMjAwNiBNYWtzIE9ybG92aWNoCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA5LCAyMDEyIEFwcGxlLCBJbmMuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiAr
MjIsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV3JhcHBlck9iamVjdC5o
IgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJU
X0hBU19UUklWSUFMX0RFU1RSVUNUT1IoSlNXcmFwcGVyT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQVND
SUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Mb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2lu
Y2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJOYW1lUHJvdG90eXBlLmgiCiAKICNpbmNsdWRl
ICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJK
U1N0cmluZy5oIgogI2luY2x1ZGUgIk5hdGl2ZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk5h
dGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJOdW1iZXJDb25zdHJ1Y3Rvci5oIgogCiAjaW5j
bHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJO
dW1iZXJPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJQcm90b3R5cGUuaCIKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIk51bWJlclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQx
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5RGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4
NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNiArMjQsMTYgQEAKICNp
bmNsdWRlICJSZWdFeHAuaCIKIAogI2luY2x1ZGUgIkxleGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCi0jaW5jbHVkZSAieWFyci9ZYXJyLmgi
Ci0jaW5jbHVkZSAieWFyci9ZYXJySklULmgiCisjaW5jbHVkZSAiWWFyci5oIgorI2luY2x1ZGUg
IllhcnJKSVQuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2lu
Y2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8
d3RmL093bkFycmF5UHRyLmg+CiAKLQogI2RlZmluZSBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VO
IDAKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCShyZXZpc2lvbiAxMzg0MTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiAr
MSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUmVuYXRhIEhvZG92YW4gKGhvZG92YW5AaW5mLnUtc3plZ2Vk
Lmh1KQorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiw4ICsy
Nyw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCiAjaW5jbHVkZSAiUmVnRXhwQ2Fj
aGUuaCIKKworI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcAkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGVkUmVz
dWx0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4
cENhY2hlZFJlc3VsdC5oIgogCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29u
c3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAi
UmVnRXhwQ29uc3RydWN0b3IuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogI2luY2x1ZGUgIlJl
Z0V4cFByb3RvdHlwZS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBNYXRjaGVzQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXku
aCIKIAogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxleGVyLmgi
CiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAj
aW5jbHVkZSAiUmVnRXhwUHJvdG90eXBlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIK
ICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUg
IlJlZ0V4cC5oIgogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHJldmlzaW9uIDEzODQxNSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTbWFsbFN0cmluZ3MuaCIKIAog
I2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDE1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIK
ICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJS
ZWplY3QuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cAkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5j
bHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQ
cm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAko
cmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVy
cm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAJKHJldmlzaW9uIDEzODQxNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNp
bmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJT
dHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEz
ODQxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1l
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVkZSA8bWFjaC9tYWNoLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180641</attachid>
            <date>2012-12-23 21:25:14 -0800</date>
            <delta_ts>2012-12-24 10:21:40 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>205834</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1
ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUu
aAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDkgQEAKIAogI2lmIEVOQUJMRShKSVQpIHx8
IEVOQUJMRShMTElOVCkKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVl
LmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCisjaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNp
bmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRl
ICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0ds
b2JhbERhdGEuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiAjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3Niw1OCAr
Nzc2LDcgQEAgX19hc20gdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCkKICAgICAjZGVmaW5lIENU
SV9TQU1QTEVSIDAKICNlbmRpZgogCi1KSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEpCi0gICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRvcHRQdHIobmV3IEhv
c3RGdW5jdGlvblN0dWJNYXApKQotewotICAgIGlmICghZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9IEpJVDo6Y29tcGls
ZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9saW5lU3RydWN0dXJl
KTsKLSAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOwotI2lmIENQVShBUk1fVEhVTUIy
KQotICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBub3QgbGlrZSB0aGUg
dXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNvbnRhaW5zIG5vbiBQ
T0QgdHlwZXMpLAotICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1hY3JvIGRvZXMgbm90
IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5IHdpdGggaXRzIHVz
ZSBpbiBDT01QSUxFX0FTU0VSVAotICAgIC8vIG1hY3Jvcy4KLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEX1I0X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9PSBQUkVTRVJWRURf
UjZfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjgpID09IFBSRVNF
UlZFRF9SOF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VUKTsKLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTApID09
IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9SMTFfT0ZGU0VUKTsK
LQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHN0YWNr
KSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7Ci0gICAgLy8gVGhlIGZpZnRoIGFyZ3VtZW50IGlz
IHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJUlNUX1NUQUNLX0FS
R1VNRU5UKTsKLQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsK
LQotI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKLQotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZGU0VUKTsKLQotCi0j
ZWxpZiBDUFUoTUlQUykKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7Ci0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzApID09IFBS
RVNFUlZFRF9TMF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZGU0VUKTsKLSAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMikg
PT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1
Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JF
VFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVT
U19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0gR0xPQkFMX0RBVEFf
T0ZGU0VUKTsKLQotI2VuZGlmCi19Ci0KLUpJVFRodW5rczo6fkpJVFRodW5rcygpCi17Ci19Ci0K
LU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiBzbG90LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wgZGlyZWN0KQorTkVWRVJfSU5MSU5FIHN0
YXRpYyB2b2lkIHRyeUNhY2hlUHV0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBib29sIGRpcmVjdCkKIHsKICAgICAvLyBUaGUgaW50ZXJwcmV0ZXIgY2hlY2tzIGZv
ciByZWN1cnNpb24gaGVyZTsgSSBkbyBub3QgYmVsaWV2ZSB0aGlzIGNhbiBvY2N1ciBpbiBDVEku
CiAKQEAgLTg4MSw3ICs4MzAsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNh
Y2hlUHV0CiAgICAgSklUOjpwYXRjaFB1dEJ5SWRSZXBsYWNlKGNvZGVCbG9jaywgc3R1YkluZm8s
IHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSwgcmV0dXJuQWRkcmVzcywgZGlyZWN0KTsK
IH0KIAotTkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZUdldEJ5SUQoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvKQorTkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIHRyeUNhY2hlR2V0QnlJRChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0dXJu
QWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8p
CiB7CiAgICAgLy8gRklYTUU6IFdyaXRlIGEgdGVzdCB0aGF0IHByb3ZlcyB3ZSBuZWVkIHRvIGNo
ZWNrIGZvciByZWN1cnNpb24gaGVyZSBqdXN0CiAgICAgLy8gbGlrZSB0aGUgaW50ZXJwcmV0ZXIg
ZG9lcywgdGhlbiBhZGQgYSBjaGVjayBmb3IgcmVjdXJzaW9uLgpAQCAtMTQ0NCw3ICsxMzkzLDcg
QEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X2lkKQogICAgICAgICBpZiAo
IXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1YkluZm8tPnNldFNlZW4oKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0cnlDYWNoZVB1dEJ5SUQoY2Fs
bEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIHN0YWNrRnJhbWUuYXJnc1sw
XS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCBmYWxzZSk7CisgICAgICAgICAgICB0cnlDYWNo
ZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIHN0YWNr
RnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCBmYWxzZSk7CiAgICAgfQog
ICAgIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CkBAIC0xNDcwLDcgKzE0MTks
NyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWRfCiAgICAgICAgIGlm
ICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgICAgICBzdHViSW5mby0+c2V0U2Vlbigp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlUHV0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdz
WzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIHRydWUpOworICAgICAgICAgICAgdHJ5Q2Fj
aGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBzdGFj
a0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgdHJ1ZSk7CiAgICAgfQog
ICAgIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CkBAIC0xNTQ1LDcgKzE0OTQs
NyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfCiAgICAgaWYgKCFz
dHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgc3R1YkluZm8tPnNldFNlZW4oKTsKICAgICBl
bHNlCi0gICAgICAgIEpJVFRodW5rczo6dHJ5Q2FjaGVHZXRCeUlEKGNhbGxGcmFtZSwgY29kZUJs
b2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCBzdHViSW5m
byk7CisgICAgICAgIHRyeUNhY2hlR2V0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9S
RVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVudCwgc2xvdCwgc3R1YkluZm8pOwogCiAgICAg
Q0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CkBAIC0zNDEyLDQ4ICszMzYxLDYgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5j
b2RlZEpTVmFsdWUsIHRvXwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3RhY2tGcmFtZS5h
cmdzWzBdLmpzVmFsdWUoKS50b09iamVjdChjYWxsRnJhbWUpKTsKIH0KIAotTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIEpJVFRodW5rczo6Y3RpU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFRo
dW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKLXsKLSAgICBDVElTdHViTWFwOjpBZGRSZXN1bHQgZW50
cnkgPSBtX2N0aVN0dWJNYXAuYWRkKGdlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCkp
OwotICAgIGlmIChlbnRyeS5pc05ld0VudHJ5KQotICAgICAgICBlbnRyeS5pdGVyYXRvci0+dmFs
dWUgPSBnZW5lcmF0b3IoZ2xvYmFsRGF0YSk7Ci0gICAgcmV0dXJuIGVudHJ5Lml0ZXJhdG9yLT52
YWx1ZTsKLX0KLQotTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHVi
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2
ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQotewotICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rpb24pKQotICAg
ICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLQotICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5h
dGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2JhbERhdGEsIEpJ
VDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwoZ2xvYmFsRGF0YSwgZnVuY3Rpb24pLCBmdW5jdGlvbiwg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZl
Q29uc3RydWN0KCkpLCBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1f
aG9zdEZ1bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+
KG5hdGl2ZUV4ZWN1dGFibGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQot
TmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFRodW5rR2VuZXJhdG9yIGdl
bmVyYXRvciwgSW50cmluc2ljIGludHJpbnNpYykKLXsKLSAgICBpZiAoTmF0aXZlRXhlY3V0YWJs
ZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KGZ1bmN0aW9u
KSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgY29kZTsKLSAgICBpZiAoZ2VuZXJhdG9yKSB7Ci0gICAgICAgIGlmIChnbG9iYWxE
YXRhLT5jYW5Vc2VKSVQoKSkKLSAgICAgICAgICAgIGNvZGUgPSBnZW5lcmF0b3IoZ2xvYmFsRGF0
YSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY29kZSA9IEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNh
bGwoZ2xvYmFsRGF0YSwgZnVuY3Rpb24pOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZl
RXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgY29kZSwg
ZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVm
KGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGlu
dHJpbnNpYyk7Ci0gICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBmdW5jdGlvbiwg
UGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOwotICAgIHJldHVy
biBuYXRpdmVFeGVjdXRhYmxlOwotfQotCi12b2lkIEpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rp
b25TdHVicygpCi17Ci0gICAgbV9ob3N0RnVuY3Rpb25TdHViTWFwLmNsZWFyKCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjM0ICszNiwy
MjIgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNsdWRlICJSZWdp
c3Rlci5oIgogI2luY2x1ZGUgIlJlc29sdmVPcGVyYXRpb24uaCIKLSNpbmNsdWRlICJUaHVua0dl
bmVyYXRvcnMuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IAogI2lmIEVOQUJMRShKSVQpCiAKLSAgICBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm87CitzdHJ1
Y3QgU3RydWN0dXJlU3R1YkluZm87CiAKLSAgICBjbGFzcyBBcnJheUFsbG9jYXRpb25Qcm9maWxl
OwotICAgIGNsYXNzIENvZGVCbG9jazsKLSAgICBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKLSAgICBj
bGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgSWRlbnRpZmllcjsKLSAgICBjbGFz
cyBKU0dsb2JhbERhdGE7Ci0gICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci0gICAgY2xhc3MgSlNP
YmplY3Q7Ci0gICAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjsKLSAgICBjbGFzcyBKU1N0
YWNrOwotICAgIGNsYXNzIEpTVmFsdWU7Ci0gICAgY2xhc3MgSlNWYWx1ZUVuY29kZWRBc1BvaW50
ZXI7Ci0gICAgY2xhc3MgTGVnYWN5UHJvZmlsZXI7Ci0gICAgY2xhc3MgTmF0aXZlRXhlY3V0YWJs
ZTsKLSAgICBjbGFzcyBQcm9wZXJ0eVNsb3Q7Ci0gICAgY2xhc3MgUHV0UHJvcGVydHlTbG90Owot
ICAgIGNsYXNzIFJlZ0V4cDsKLSAgICBjbGFzcyBTdHJ1Y3R1cmU7Ci0KLSAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgV2VhazsKLQotICAgIHVuaW9uIEpJVFN0dWJBcmcgewotICAgICAg
ICB2b2lkKiBhc1BvaW50ZXI7Ci0gICAgICAgIEVuY29kZWRKU1ZhbHVlIGFzRW5jb2RlZEpTVmFs
dWU7Ci0gICAgICAgIGludDMyX3QgYXNJbnQzMjsKLQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUo
KSB7IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUoYXNFbmNvZGVkSlNWYWx1ZSk7IH0KLSAgICAgICAg
SlNPYmplY3QqIGpzT2JqZWN0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihhc1Bv
aW50ZXIpOyB9Ci0gICAgICAgIFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxS
ZWdpc3Rlcio+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgSWRlbnRpZmllciYgaWRlbnRpZmllcigp
IHsgcmV0dXJuICpzdGF0aWNfY2FzdDxJZGVudGlmaWVyKj4oYXNQb2ludGVyKTsgfQotICAgICAg
ICBpbnQzMl90IGludDMyKCkgeyByZXR1cm4gYXNJbnQzMjsgfQotICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7
IH0KLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgUmVnRXhw
KiByZWdFeHAoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdFeHAqPihhc1BvaW50ZXIpOyB9Ci0g
ICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+KGFzUG9pbnRlcik7IH0K
LSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PEpTR2xvYmFsT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBKU1N0cmluZyoganNT
dHJpbmcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGFzUG9pbnRlcik7IH0KLSAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1Y3R1
cmUqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cygpIHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIoYXNQb2ludGVyKTsgfQotICAgICAgICBSZXNv
bHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnMoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxS
ZXNvbHZlT3BlcmF0aW9ucyo+KGFzUG9pbnRlcik7IH0KLSAgICAgICAgUHV0VG9CYXNlT3BlcmF0
aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VP
cGVyYXRpb24qPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
IGFycmF5QWxsb2NhdGlvblByb2ZpbGUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxBcnJheUFsbG9j
YXRpb25Qcm9maWxlKj4oYXNQb2ludGVyKTsgfQotICAgIH07CitjbGFzcyBBcnJheUFsbG9jYXRp
b25Qcm9maWxlOworY2xhc3MgQ29kZUJsb2NrOworY2xhc3MgRXhlY3V0YWJsZVBvb2w7CitjbGFz
cyBGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFzcyBJZGVudGlmaWVyOworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBKU09iamVjdDsKK2NsYXNzIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3I7CitjbGFzcyBKU1N0YWNrOworY2xhc3MgSlNWYWx1ZTsKK2NsYXNz
IEpTVmFsdWVFbmNvZGVkQXNQb2ludGVyOworY2xhc3MgTGVnYWN5UHJvZmlsZXI7CitjbGFzcyBO
YXRpdmVFeGVjdXRhYmxlOworY2xhc3MgUHJvcGVydHlTbG90OworY2xhc3MgUHV0UHJvcGVydHlT
bG90OworY2xhc3MgUmVnRXhwOworY2xhc3MgU3RydWN0dXJlOworCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gY2xhc3MgV2VhazsKKwordW5pb24gSklUU3R1YkFyZyB7CisgICAgdm9pZCogYXNQb2lu
dGVyOworICAgIEVuY29kZWRKU1ZhbHVlIGFzRW5jb2RlZEpTVmFsdWU7CisgICAgaW50MzJfdCBh
c0ludDMyOworCisgICAgSlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2Rl
KGFzRW5jb2RlZEpTVmFsdWUpOyB9CisgICAgSlNPYmplY3QqIGpzT2JqZWN0KCkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgUmVnaXN0ZXIqIHJlZygp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4oYXNQb2ludGVyKTsgfQorICAgIElkZW50
aWZpZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFz
UG9pbnRlcik7IH0KKyAgICBpbnQzMl90IGludDMyKCkgeyByZXR1cm4gYXNJbnQzMjsgfQorICAg
IENvZGVCbG9jayogY29kZUJsb2NrKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29kZUJsb2NrKj4o
YXNQb2ludGVyKTsgfQorICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24oKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9CisgICAgUmVn
RXhwKiByZWdFeHAoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdFeHAqPihhc1BvaW50ZXIpOyB9
CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IoKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKj4oYXNQb2ludGVyKTsgfQor
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxK
U0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KKyAgICBKU1N0cmluZyoganNTdHJpbmcoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGFzUG9pbnRlcik7IH0KKyAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0cnVjdHVyZSo+KGFzUG9pbnRl
cik7IH0KKyAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1
cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7IH0KKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2
ZU9wZXJhdGlvbnMoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZXNvbHZlT3BlcmF0aW9ucyo+KGFz
UG9pbnRlcik7IH0KKyAgICBQdXRUb0Jhc2VPcGVyYXRpb24qIHB1dFRvQmFzZU9wZXJhdGlvbigp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFB1dFRvQmFzZU9wZXJhdGlvbio+KGFzUG9pbnRlcik7IH0K
KyAgICBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0K
K307CiAgICAgCi0gICAgc3RydWN0IFRyYW1wb2xpbmVTdHJ1Y3R1cmUgewotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOwotICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlWaXJ0dWFsQ29uc3RydWN0OwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
TmF0aXZlQ2FsbDsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0
cnVjdDsKLSAgICB9OwotCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFy
ZyBhcmdzWzZdOwotICAgICAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAzMi1ieXRl
IHN0YWNrIGFsaWdubWVudCAocG9zc2libHkgb3ZlcmtpbGwpLgotCi0gICAgICAgIHZvaWQqIGNv
ZGU7Ci0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZTsKLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwotCi0gICAgICAgIHZvaWQqIHNhdmVkUkJYOwot
ICAgICAgICB2b2lkKiBzYXZlZFIxNTsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAg
IHZvaWQqIHNhdmVkUjEzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMjsKLSAgICAgICAgdm9pZCog
c2F2ZWRSQlA7Ci0gICAgICAgIHZvaWQqIHNhdmVkUklQOwotCi0gICAgICAgIC8vIFdoZW4gSklU
IGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVs
b3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1
cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0
cio+KHRoaXMpIC0gMTsgfQotICAgIH07CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgdm9p
ZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKKyAgICB2b2lk
KiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAzMi1ieXRlIHN0YWNrIGFsaWdubWVudCAocG9zc2li
bHkgb3ZlcmtpbGwpLgorCisgICAgdm9pZCogY29kZTsKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworICAgIHZvaWQqIHVu
dXNlZDI7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworCisgICAgdm9pZCogc2F2ZWRS
Qlg7CisgICAgdm9pZCogc2F2ZWRSMTU7CisgICAgdm9pZCogc2F2ZWRSMTQ7CisgICAgdm9pZCog
c2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSMTI7CisgICAgdm9pZCogc2F2ZWRSQlA7CisgICAg
dm9pZCogc2F2ZWRSSVA7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQg
cHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFj
ay4KKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMpIC0gMTsgfQorfTsKICNlbGlm
IENQVShYODYpCiAjaWYgQ09NUElMRVIoTVNWQykgfHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVS
KEdDQykpCiAjcHJhZ21hIHBhY2socHVzaCkKICNwcmFnbWEgcGFjayg0KQogI2VuZGlmIC8vIENP
TVBJTEVSKE1TVkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAotICAg
ICAgICBKSVRTdHViQXJnIGFyZ3NbNl07CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgdm9p
ZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKICNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAxNi1i
eXRlIHN0YWNrIGFsaWdubWVudC4KKyAgICB2b2lkKiBwYWRkaW5nWzJdOyAvLyBNYWludGFpbiAx
Ni1ieXRlIHN0YWNrIGFsaWdubWVudC4KICNlbmRpZgogCi0gICAgICAgIHZvaWQqIHNhdmVkRUJY
OwotICAgICAgICB2b2lkKiBzYXZlZEVESTsKLSAgICAgICAgdm9pZCogc2F2ZWRFU0k7Ci0gICAg
ICAgIHZvaWQqIHNhdmVkRUJQOwotICAgICAgICB2b2lkKiBzYXZlZEVJUDsKLQotICAgICAgICB2
b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQqIHVudXNlZDI7
Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBzYXZlZEVCWDsK
KyAgICB2b2lkKiBzYXZlZEVESTsKKyAgICB2b2lkKiBzYXZlZEVTSTsKKyAgICB2b2lkKiBzYXZl
ZEVCUDsKKyAgICB2b2lkKiBzYXZlZEVJUDsKKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNTdGFj
ayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2VkMTsK
KyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKICAgICAg
ICAgCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgotICAgICAg
ICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8UmV0dXJuQWRkcmVzc1B0cio+KHRoaXMpIC0gMTsgfQotICAgIH07CisgICAgLy8g
V2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3Mg
anVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciog
cmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJl
c3NQdHIqPih0aGlzKSAtIDE7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykgfHwgKE9TKFdJTkRP
V1MpICYmIENPTVBJTEVSKEdDQykpCiAjcHJhZ21hIHBhY2socG9wKQogI2VuZGlmIC8vIENPTVBJ
TEVSKE1TVkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI2VsaWYgQ1BVKEFS
TV9USFVNQjIpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJn
IHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAg
ICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotCi0gICAgICAgIHZvaWQq
IHByZXNlcnZlZFJldHVybkFkZHJlc3M7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI0OwotICAg
ICAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjY7Ci0gICAg
ICAgIHZvaWQqIHByZXNlcnZlZFI3OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAg
ICAgdm9pZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAg
ICAgdm9pZCogcHJlc2VydmVkUjExOwotCi0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNz
ZWQgaW4gcjEuLnIzIChyMCBjb250YWluZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2gg
aXMgbm90IHByZXNlcnZlZCkKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAgICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lOwotCi0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24g
dGhlIHN0YWNrLgotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyByZXNl
cnZlZDsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRk
cmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzOworICAgIHZvaWQqIHByZXNlcnZlZFI0OworICAgIHZvaWQqIHByZXNlcnZlZFI1Owor
ICAgIHZvaWQqIHByZXNlcnZlZFI2OworICAgIHZvaWQqIHByZXNlcnZlZFI3OworICAgIHZvaWQq
IHByZXNlcnZlZFI4OworICAgIHZvaWQqIHByZXNlcnZlZFI5OworICAgIHZvaWQqIHByZXNlcnZl
ZFIxMDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMg
cGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdo
aWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWU7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFj
ay4KKyAgICB2b2lkKiB1bnVzZWQxOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKICAg
ICAgICAgCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0
ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9
OwogI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdt
YSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2soNCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQot
ICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAv
LyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzddOwotCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI0
OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjY7
Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI4OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsK
LSAgICAgICAgdm9pZCogcHJlc2VydmVkUjEwOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7
Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZExpbms7Ci0KLSAgICAgICAgSlNTdGFjayogc3RhY2s7
Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwot
Ci0gICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7Ci0KLSAg
ICAgICAgLy8gV2hlbiBKSVQgY29kZSBtYWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJu
IGFkZHJlc3MganVzdCBiZWxvdyB0aGUgcmVzdCBvZiB0aGUgc3RhY2suCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRk
cmVzczsgfQotICAgIH07CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CisgICAgSklUU3R1YkFyZyBw
YWRkaW5nOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbN107CisKKyAgICBSZXR1cm5B
ZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKKworICAgIHZvaWQqIHByZXNlcnZlZFI0Owor
ICAgIHZvaWQqIHByZXNlcnZlZFI1OworICAgIHZvaWQqIHByZXNlcnZlZFI2OworICAgIHZvaWQq
IHByZXNlcnZlZFI4OworICAgIHZvaWQqIHByZXNlcnZlZFI5OworICAgIHZvaWQqIHByZXNlcnZl
ZFIxMDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSMTE7CisgICAgdm9pZCogcHJlc2VydmVkTGluazsK
KworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIHZv
aWQqIHVudXNlZDE7CisKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFj
ay4KKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRzIHJldHVybiBh
ZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJldHVybkFkZHJl
c3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsg
fQorfTsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSBwYWNrKHBvcCkKICNlbmRpZiAvLyBD
T01QSUxFUihNU1ZDKQogI2VsaWYgQ1BVKE1JUFMpCi0gICAgc3RydWN0IEpJVFN0YWNrRnJhbWUg
ewotICAgICAgICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1
YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcmVz
ZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKIAogI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgICAgIHZvaWQqIHBhZGRpbmc7IC8vIE1ha2UgdGhlIG92ZXJhbGwgc3Rh
Y2sgbGVuZ3RoIDgtYnl0ZSBhbGlnbmVkLgorICAgIHZvaWQqIHBhZGRpbmc7IC8vIE1ha2UgdGhl
IG92ZXJhbGwgc3RhY2sgbGVuZ3RoIDgtYnl0ZSBhbGlnbmVkLgogI2VuZGlmCiAKLSAgICAgICAg
dm9pZCogcHJlc2VydmVkR1A7IC8vIHN0b3JlIEdQIHdoZW4gdXNpbmcgUElDIGNvZGUKLSAgICAg
ICAgdm9pZCogcHJlc2VydmVkUzA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMxOwotICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRTMjsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVz
czsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAg
ICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIGluIGExLi5hMyAoYTAgY29udGFpbmVkIHRo
ZSBlbnRyeSBjb2RlIHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpT
U3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAgdm9p
ZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBz
dGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhOworICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5nIFBJ
QyBjb2RlCisgICAgdm9pZCogcHJlc2VydmVkUzA7CisgICAgdm9pZCogcHJlc2VydmVkUzE7Cisg
ICAgdm9pZCogcHJlc2VydmVkUzI7CisgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgLy8gVGhl
c2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMgKGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29k
ZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNrOwor
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAgIHZvaWQqIHVudXNlZDE7CiAKLSAgICAgICAg
UmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1
cm5BZGRyZXNzOyB9Ci0gICAgfTsKKyAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YTsKKworICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4g
JnRodW5rUmV0dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShTSDQpCi0gICAgc3RydWN0IEpJ
VFN0YWNrRnJhbWUgewotICAgICAgICBKSVRTdHViQXJnIHBhZGRpbmc7IC8vIFVudXNlZAotICAg
ICAgICBKSVRTdHViQXJnIGFyZ3NbNl07Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVu
a1JldHVybkFkZHJlc3M7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEwOwotICAgICAgICB2b2lkKiBz
YXZlZFIxMTsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTM7Ci0gICAgICAgIHZvaWQqIHNhdmVkUlBS
OwotICAgICAgICB2b2lkKiBzYXZlZFIxNDsKLSAgICAgICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVn
OwotCi0gICAgICAgIEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZTsKLSAgICAgICAgSlNWYWx1ZSogZXhjZXB0aW9uOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwot
ICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CitzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7
CisgICAgSklUU3R1YkFyZyBwYWRkaW5nOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3Nb
Nl07CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKKyAgICB2b2lk
KiBzYXZlZFIxMDsKKyAgICB2b2lkKiBzYXZlZFIxMTsKKyAgICB2b2lkKiBzYXZlZFIxMzsKKyAg
ICB2b2lkKiBzYXZlZFJQUjsKKyAgICB2b2lkKiBzYXZlZFIxNDsKKyAgICB2b2lkKiBzYXZlZFRp
bWVvdXRSZWc7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZTsKKyAgICBKU1ZhbHVlKiBleGNlcHRpb247CisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGE7CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJu
QWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Ci0gICAgfTsKKyAg
ICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1Jl
dHVybkFkZHJlc3M7IH0KK307CiAjZWxzZQogI2Vycm9yICJKSVRTdGFja0ZyYW1lIG5vdCBkZWZp
bmVkIGZvciB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgpAQCAtMjc0LDIwMiArMjYyLDE1NSBAQCBu
YW1lc3BhY2UgSlNDIHsKICNkZWZpbmUgU1RVQl9BUkdTIChhcmdzKQogCiAjaWYgQ1BVKFg4NikK
LSAgICAjaWYgQ09NUElMRVIoTVNWQykKLSAgICAjZGVmaW5lIEpJVF9TVFVCIF9fZmFzdGNhbGwK
LSAgICAjZWxpZiBDT01QSUxFUihHQ0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1
dGVfXyAoKGZhc3RjYWxsKSkKLSAgICAjZWxpZiBDT01QSUxFUihTVU5DQykKLSAgICAjZGVmaW5l
IEpJVF9TVFVCCi0gICAgI2Vsc2UKLSAgICAjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNhbGxz
IHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUgZGly
ZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKLSAgICAjZW5kaWYKKyNp
ZiBDT01QSUxFUihNU1ZDKQorI2RlZmluZSBKSVRfU1RVQiBfX2Zhc3RjYWxsCisjZWxpZiBDT01Q
SUxFUihHQ0MpCisjZGVmaW5lIEpJVF9TVFVCICBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQor
I2VsaWYgQ09NUElMRVIoU1VOQ0MpCisjZGVmaW5lIEpJVF9TVFVCCiAjZWxzZQotICAgICNkZWZp
bmUgSklUX1NUVUIKKyNlcnJvciAiSklUX1NUVUIgZnVuY3Rpb24gY2FsbHMgcmVxdWlyZSBmYXN0
Y2FsbCBjb252ZW50aW9ucyBvbiB4ODYsIGFkZCBhcHByb3ByaWF0ZSBkaXJlY3RpdmUvYXR0cmli
dXRlIGhlcmUgZm9yIHlvdXIgY29tcGlsZXIhIgorI2VuZGlmCisjZWxzZQorI2RlZmluZSBKSVRf
U1RVQgogI2VuZGlmCiAKLSAgICBleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1wb2xpbmUo
KTsKLSAgICBleHRlcm4gIkMiIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgpOwotICAgIGV4dGVy
biAiQyIgRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiBjb2RlLCBKU1N0YWNrKiwg
Q2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0dsb2Jh
bERhdGEqKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpOworZXh0ZXJu
ICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKTsKK2V4dGVybiAiQyIgRW5jb2RlZEpTVmFs
dWUgY3RpVHJhbXBvbGluZSh2b2lkKiBjb2RlLCBKU1N0YWNrKiwgQ2FsbEZyYW1lKiwgdm9pZCog
Lyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0dsb2JhbERhdGEqKTsKICNpZiBFTkFC
TEUoREZHX0pJVCkKLSAgICBleHRlcm4gIkMiIHZvaWQgY3RpVHJhbXBvbGluZUVuZCgpOworZXh0
ZXJuICJDIiB2b2lkIGN0aVRyYW1wb2xpbmVFbmQoKTsKIAotICAgIGlubGluZSBib29sIHJldHVy
bkFkZHJlc3NJc0luQ3RpVHJhbXBvbGluZShSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Mp
Ci0gICAgewotICAgICAgICByZXR1cm4gcmV0dXJuQWRkcmVzcy52YWx1ZSgpID49IGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oJmN0aVRyYW1wb2xpbmUpCi0gICAgICAgICAgICAmJiByZXR1cm5BZGRyZXNz
LnZhbHVlKCkgPCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lRW5kKTsKLSAgICB9
Ci0jZW5kaWYKLQotICAgIGNsYXNzIEpJVFRodW5rcyB7Ci0gICAgcHVibGljOgotICAgICAgICBK
SVRUaHVua3MoSlNHbG9iYWxEYXRhKik7Ci0gICAgICAgIH5KSVRUaHVua3MoKTsKLQotICAgICAg
ICBzdGF0aWMgdm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8pOwotICAgICAgICBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2Fs
bEZyYW1lKiwgQ29kZUJsb2NrKiwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1Zh
bHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBib29sIGRpcmVjdCk7Ci0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1
cmUuY3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJl
LmN0aVZpcnR1YWxDYWxsTGluazsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3Rp
VmlydHVhbENvbnN0cnVjdExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxD
YWxsOyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0
KCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3Q7IH0K
LSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoKQotICAgICAgICB7
Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJ
bnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOwotI2VuZGlmCi0gICAgICAg
ICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGw7Ci0gICAgICAg
IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCi0g
ICAgICAgIHsKLSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAgICAgICBpZiAoIW1fZXhlY3V0YWJs
ZU1lbW9yeSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpj
cmVhdGVMTEludENvZGVQdHIobGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKK2lu
bGluZSBib29sIHJldHVybkFkZHJlc3NJc0luQ3RpVHJhbXBvbGluZShSZXR1cm5BZGRyZXNzUHRy
IHJldHVybkFkZHJlc3MpCit7CisgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFsdWUoKSA+PSBi
aXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQorICAgICAgICAmJiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lRW5kKTsKK30K
ICNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDb25zdHJ1Y3Q7Ci0gICAgICAgIH0KLQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
Y3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRvcik7Ci0KLSAgICAgICAgTmF0aXZl
RXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5jdGlv
biwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpOwotICAgICAgICBOYXRpdmVFeGVjdXRhYmxl
KiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSosIE5hdGl2ZUZ1bmN0aW9uLCBUaHVua0dl
bmVyYXRvciwgSW50cmluc2ljKTsKLQotICAgICAgICB2b2lkIGNsZWFySG9zdEZ1bmN0aW9uU3R1
YnMoKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxUaHVua0dlbmVy
YXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPiBDVElTdHViTWFwOwotICAgICAgICBDVElTdHVi
TWFwIG1fY3RpU3R1Yk1hcDsKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPE5hdGl2ZUZ1bmN0aW9u
LCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+ID4gSG9zdEZ1bmN0aW9uU3R1Yk1hcDsKLSAgICAgICAg
T3duUHRyPEhvc3RGdW5jdGlvblN0dWJNYXA+IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcDsKLSAgICAg
ICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKLQot
ICAgICAgICBUcmFtcG9saW5lU3RydWN0dXJlIG1fdHJhbXBvbGluZVN0cnVjdHVyZTsKLSAgICB9
OwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRk
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9iaXRhbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdG9yKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfTm90SlNGdW5jdGlvbihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfY2FsbF9ldmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfTm90SlNDb25zdHJ1Y3Qo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX2NoZWNrX2hhc19pbnN0YW5jZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRl
X3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRl
X2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGVsX2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxf
YnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kaXYoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9p
ZF9jdXN0b21fc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3By
b3RvX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19saXN0KFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRf
c2VsZl9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc3RyaW5nX2ZhaWwoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfZ2VuZXJpYyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9pbnN0YW5jZW9mKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19ib29sZWFuKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19mdW5jdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfbnVtYmVyKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9pc19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNf
dW5kZWZpbmVkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2dyZWF0ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXJlcShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tb2QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX211bChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfbmVnYXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
ICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ub3QoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25z
dHJpY3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfaW5j
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9wcmVfZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfaW5jKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9yZXNvbHZlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2UoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9lbnN1cmVfcHJvcGVy
dHlfZXhpc3RzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfcmVzb2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X3RvX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Jz
aGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9zdHJpY3RlcShTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3Bfc3ViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19qc251bWJlcihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfdG9fcHJpbWl0aXZlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90eXBlb2YoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Vy
c2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX3RvX29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3Rp
X29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfYnVmZmVyKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBj
dGlfb3BfbmV3X2Z1bmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
SlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfb2Jq
ZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBK
SVRfU1RVQiBjdGlfb3BfbmV3X3JlZ2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9v
cF9wdXNoX25hbWVfc2NvcGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF93aXRoX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKSVRfU1RVQiBjdGlfb3BfZ2V0X3BuYW1l
cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIg
Y3RpX29wX2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBK
SVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3NlcShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGludCBKSVRf
U1RVQiBjdGlfb3BfamdyZWF0ZXJlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2p0cnVlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV90
aW1lb3V0X2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfaGFzX3Byb3BlcnR5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX2VuZChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9q
bXBfc2NvcGVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQg
SklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3By
b2ZpbGVfd2lsbF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZmFpbChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9v
cF9wdXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9p
ZF9kaXJlY3RfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2
b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2dlbmVyaWMoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X2luZGV4KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklU
X1NUVUIgY3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1
dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQgSklUX1NUVUIgY3RpX29wX2luaXRfZ2xvYmFsX2NvbnN0X2NoZWNrKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJf
b2ZmX2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
dm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3Rocm93X3N0YXRp
Y19lcnJvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9hZGQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Jp
dG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX2JpdHhvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVuY3Rpb24oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfY2FsbF9ldmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9Ob3RKU0NvbnN0cnVjdChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY3JlYXRlX3RoaXMoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RV
QiBjdGlfb3BfY29udmVydF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZGVsX2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2dldF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfYXJyYXlfZmFpbChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dlbmVy
aWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dldHRlcl9zdHViKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9p
ZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9wcm90b19saXN0KFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9wcm90b19saXN0X2Z1bGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFp
bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc3RyaW5nX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3Zh
bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9z
dHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaW4oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9p
c19ib29sZWFuKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX2Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJlcihT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9T
VFVCIGN0aV9vcF9pc19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfc3RyaW5nKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lz
X3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sZXNzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2xlc3NlcShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2dyZWF0ZXJlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9sc2hpZnQoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbW9kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX211bChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uZWdhdGUoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
bm90KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25zdHJpY3RlcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wb3N0X2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9wcmVfZGVjKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3ByZV9pbmMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2UoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2
ZV9iYXNlX3N0cmljdF9wdXQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX3dpdGhfdGhpcyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29w
X3B1dF90b19iYXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3JzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9zdHJjYXQoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfc3ViKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3RvX2pzbnVtYmVyKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90eXBlb2YoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdXJz
aGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheShTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5
X3dpdGhfc2l6ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2FycmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jX2V4cChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2Jq
ZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X3JlZ2V4cChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3Bf
cHVzaF9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF93aXRoX3Njb3BlKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9v
cF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9yZWFsbG9jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIgY3RpX29wX2dldF9w
bmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIg
Y3RpX29wX2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9T
VFVCIGN0aV9vcF9lcV9zdHJpbmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3NlcShTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfamdyZWF0ZXIoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVy
ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3Rp
X29wX2p0cnVlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklU
X1NUVUIgY3RpX29wX2xvYWRfdmFyYXJncyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfaGFzX3Byb3BlcnR5KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfZGVidWco
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9v
cF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVC
IGN0aV9vcF9qbXBfc2NvcGVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
dm9pZCBKSVRfU1RVQiBjdGlfb3BfcG9wX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9kaWRfY2FsbChTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2Zp
bGVfd2lsbF9jYWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBK
SVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZ2Vu
ZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV9pZF9kaXJlY3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlf
aWRfZGlyZWN0X2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaW5kZXgoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X3Zh
bF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRf
U1RVQiBjdGlfb3BfcHV0X2dldHRlcl9zZXR0ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9jaGVjayhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29w
X3RlYXJfb2ZmX2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF90aHJvd19zdGF0aWNf
ZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjaWYgRU5BQkxFKERG
R19KSVQpCi0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3B0aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9TVFVCIGN0aV9vcHRpbWl6ZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKICNlbmRpZgotICAgIHZvaWQqIEpJVF9TVFVCIGN0
aV9vcF9jYWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9hcml0eUNoZWNrKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAg
dm9pZCogSklUX1NUVUIgY3RpX29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9zd2l0Y2hf
Y2hhcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRf
U1RVQiBjdGlfb3Bfc3dpdGNoX2ltbShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3BfdGhyb3co
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIg
Y3RpX3N0YWNrX2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX3ZtX2xhenlMaW5rQ29uc3Ry
dWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9T
VFVCIGN0aV92bV90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFJFRkVSRU5DRURfRlJPTV9B
U00gV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX2NhbGxfYXJpdHlDaGVjayhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9v
cF9jb25zdHJ1Y3RfYXJpdHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jYWxsX2ppdENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2pp
dENvbXBpbGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRf
U1RVQiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bfc3dpdGNoX2ltbShTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9zd2l0Y2hfc3RyaW5nKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29w
X3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NU
VUIgY3RpX3N0YWNrX2NoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
dm9pZCogSklUX1NUVUIgY3RpX3ZtX2xhenlMaW5rQ2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NvbnN0cnVjdChT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92
bV90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lO
VEVSTkFMOwogfSAvLyBleHRlcm4gIkMiCiAKICNlbGlmIEVOQUJMRShMTElOVF9DX0xPT1ApCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSklUVGh1bmtzLmgiCisKKyNp
ZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkpJVC5o
IgorI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKK0pJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YSkKKyAgICA6IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcChhZG9wdFB0cihuZXcgSG9zdEZ1
bmN0aW9uU3R1Yk1hcCkpCit7CisgICAgaWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9leGVjdXRhYmxlTWVtb3J5ID0gSklUOjpjb21waWxlQ1RJ
TWFjaGluZVRyYW1wb2xpbmVzKGdsb2JhbERhdGEsICZtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUpOwor
ICAgIEFTU0VSVCghIW1fZXhlY3V0YWJsZU1lbW9yeSk7CisjaWYgQ1BVKEFSTV9USFVNQjIpCisg
ICAgLy8gVW5mb3J0dW5hdGUgdGhlIGFybSBjb21waWxlciBkb2VzIG5vdCBsaWtlIHRoZSB1c2Ug
b2Ygb2Zmc2V0b2Ygb24gSklUU3RhY2tGcmFtZSAoc2luY2UgaXQgY29udGFpbnMgbm9uIFBPRCB0
eXBlcyksCisgICAgLy8gYW5kIHRoZSBPQkpFQ1RfT0ZGU0VUT0YgbWFjcm8gZG9lcyBub3QgYXBw
ZWFyIGNvbnN0YW50aXNoIGVub3VnaCBmb3IgaXQgdG8gYmUgaGFwcHkgd2l0aCBpdHMgdXNlIGlu
IENPTVBJTEVfQVNTRVJUCisgICAgLy8gbWFjcm9zLgorICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNF
UlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURfUjRfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSNSkgPT0gUFJFU0VSVkVEX1I1X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjYpID09IFBSRVNFUlZFRF9SNl9P
RkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUs
IHByZXNlcnZlZFI3KSA9PSBQUkVTRVJWRURfUjdfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOCkgPT0gUFJFU0VSVkVE
X1I4X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkUjkpID09IFBSRVNFUlZFRF9SOV9PRkZTRVQpOworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMCkgPT0gUFJF
U0VSVkVEX1IxMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFIxMSkgPT0gUFJFU0VSVkVEX1IxMV9PRkZTRVQpOworCisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09
IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKKyAgICAvLyBUaGUgZmlmdGggYXJndW1lbnQgaXMgdGhl
IGZpcnN0IGl0ZW0gYWxyZWFkeSBvbiB0aGUgc3RhY2suCisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdW51c2VkMSkgPT0gRklSU1RfU1RBQ0tfQVJHVU1F
TlQpOworCisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
dGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOworCisj
ZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKQorCisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHByZXNlcnZlZFI0KSA9PSBQUkVTRVJWRURSNF9PRkZTRVQpOworCisKKyNlbGlm
IENQVShNSVBTKQorICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VS
VkVEX1MwX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOworICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQ
UkVTRVJWRURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09G
RlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
c3RhY2spID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBnbG9iYWxEYXRhKSA9PSBHTE9CQUxfREFUQV9PRkZT
RVQpOworCisjZW5kaWYKK30KKworSklUVGh1bmtzOjp+SklUVGh1bmtzKCkKK3sKK30KKworTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIEpJVFRodW5rczo6Y3RpU3R1YihKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEsIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKK3sKKyAgICBDVElTdHViTWFwOjpBZGRS
ZXN1bHQgZW50cnkgPSBtX2N0aVN0dWJNYXAuYWRkKGdlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmKCkpOworICAgIGlmIChlbnRyeS5pc05ld0VudHJ5KQorICAgICAgICBlbnRyeS5pdGVy
YXRvci0+dmFsdWUgPSBnZW5lcmF0b3IoZ2xvYmFsRGF0YSk7CisgICAgcmV0dXJuIGVudHJ5Lml0
ZXJhdG9yLT52YWx1ZTsKK30KKworTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVu
Y3Rpb25TdHViKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQoreworICAgIGlmIChOYXRpdmVFeGVjdXRh
YmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoZnVuY3Rp
b24pKQorICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKKworICAgIE5hdGl2ZUV4ZWN1
dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2Jh
bERhdGEsIEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwoZ2xvYmFsRGF0YSwgZnVuY3Rpb24pLCBm
dW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYo
Y3RpTmF0aXZlQ29uc3RydWN0KCkpLCBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOworICAgIHdl
YWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4
ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJs
ZTsKK30KKworTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHViKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFRodW5rR2Vu
ZXJhdG9yIGdlbmVyYXRvciwgSW50cmluc2ljIGludHJpbnNpYykKK3sKKyAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY29kZTsKKyAgICBpZiAoZ2VuZXJhdG9yKSB7CisgICAgICAgIGlm
IChnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgICAgIGNvZGUgPSBnZW5lcmF0b3Io
Z2xvYmFsRGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvZGUgPSBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29kZSA9IEpJVDo6Y29tcGlsZUNU
SU5hdGl2ZUNhbGwoZ2xvYmFsRGF0YSwgZnVuY3Rpb24pOworCisgICAgTmF0aXZlRXhlY3V0YWJs
ZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0
YSwgY29kZSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFn
ZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3Ry
dWN0b3IsIGludHJpbnNpYyk7CisgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBm
dW5jdGlvbiwgUGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOwor
ICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOworfQorCit2b2lkIEpJVFRodW5rczo6Y2xlYXJI
b3N0RnVuY3Rpb25TdHVicygpCit7CisgICAgbV9ob3N0RnVuY3Rpb25TdHViTWFwLmNsZWFyKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgSklUVGh1bmtzX2gKKyNkZWZpbmUgSklUVGh1bmtzX2gKKworI2luY2x1ZGUgPHd0Zi9Q
bGF0Zm9ybS5oPgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkNhbGxEYXRhLmgiCisj
aW5jbHVkZSAiSW50cmluc2ljLmgiCisjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJh
dG9yLmgiCisjaW5jbHVkZSAiV2Vhay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CisK
K3N0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJlIHsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENhbGxMaW5rOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29u
c3RydWN0TGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGw7Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3Q7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGN0aU5hdGl2ZUNvbnN0cnVjdDsKK307CisKK2NsYXNzIEpJVFRodW5rcyB7CitwdWJsaWM6Cisg
ICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOworICAgIH5KSVRUaHVua3MoKTsKKworICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGxMaW5rKCkgeyByZXR1cm4gbV90cmFt
cG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDYWxsTGluazsgfQorICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0
cnVjdHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0TGluazsgfQorICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ2FsbDsgfQorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0KCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3Q7
IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOworICAgIH0KKyAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgY3RpTmF0aXZlQ29uc3RydWN0KCkKKyAgICB7CisjaWYgRU5BQkxFKExMSU5UKQor
ICAgICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKKyAgICAgICAgICAgIHJldHVybiBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY29uc3Ry
dWN0X3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1
Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OworICAgIH0KKworICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBjdGlTdHViKEpTR2xvYmFsRGF0YSosIFRodW5rR2VuZXJhdG9yKTsKKworICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRhKiwgTmF0aXZlRnVuY3Rp
b24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBo
b3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0YSosIE5hdGl2ZUZ1bmN0aW9uLCBUaHVua0dlbmVy
YXRvciwgSW50cmluc2ljKTsKKworICAgIHZvaWQgY2xlYXJIb3N0RnVuY3Rpb25TdHVicygpOwor
Citwcml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1hcDxUaHVua0dlbmVyYXRvciwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPiBDVElTdHViTWFwOworICAgIENUSVN0dWJNYXAgbV9jdGlTdHViTWFwOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxl
PiA+IEhvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgT3duUHRyPEhvc3RGdW5jdGlvblN0dWJNYXA+
IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcDsKKyAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZT4gbV9leGVjdXRhYmxlTWVtb3J5OworCisgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCisKKyNlbmRpZiAvLyBKSVRUaHVua3NfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaHVua0dlbmVyYXRvcl9oCisjZGVmaW5lIFRo
dW5rR2VuZXJhdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgRU5BQkxF
KEpJVCkKKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY7CisKK3R5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmICgqVGh1
bmtHZW5lcmF0b3IpKEpTR2xvYmFsRGF0YSopOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBUaHVua0dlbmVyYXRvcl9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsOSBAQAogI2luY2x1ZGUgIlRodW5rR2Vu
ZXJhdG9ycy5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCi0jaW5jbHVkZSA8d3RmL0lubGlu
ZUFTTS5oPgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTcGVjaWFsaXplZFRo
dW5rSklULmgiCisjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0ltcGwuaD4KIAogI2lmIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDI2ICsyNiwyNCBAQAogI2lmbmRlZiBUaHVua0dlbmVyYXRvcnNfaAogI2RlZmluZSBUaHVu
a0dlbmVyYXRvcnNfaAogCisjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3IuaCIKKwogI2lmIEVOQUJM
RShKSVQpCiBuYW1lc3BhY2UgSlNDIHsKLSAgICBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKLSAgICBj
bGFzcyBKU0dsb2JhbERhdGE7Ci0gICAgY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKLSAgICBjbGFz
cyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY7CiAKLSAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsK
LSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5l
cmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5r
R2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBsb2dUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgcm91bmRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBjaGFyQ29kZUF0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRh
Kik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoSlNH
bG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0
b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0
b3IoSlNHbG9iYWxEYXRhKik7CisKIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAK
ICNlbmRpZiAvLyBUaHVua0dlbmVyYXRvcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVk
ZSAiTExJbnRDb21tb24uaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJv
ZmlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
ZmlsZS5oIgogI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJQcm9maWxl
Tm9kZS5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5l
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUHJvZmlsZS5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZS5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
UHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZVNlcXVlbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1
ZW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk9wZXJhbmRz
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVz
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQnl0ZWNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQ29tcGlsYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaCIKIAog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0
YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiUHJvZmlsZXJPU1JFeGl0LmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXRTaXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNTY29wZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlck9yaWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT3JpZ2luLmgiCiAKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQcm9maWxlckJ5dGVjb2Rlcy5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3Rh
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9yaWdpblN0YWNrLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmls
ZXJEYXRhYmFzZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNv
ZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyUHJvZmlsZWRC
eXRlY29kZXMuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAKIHVzaW5nIHN0ZDo6bWluOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRl
ICJCb29sZWFuUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJCb29sZWFuT2JqZWN0
LmgiCiAKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ2FsbERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2FsbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVD
YWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29k
ZUNhY2hlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29kZUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRp
b25LaW5kLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgog
I2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBs
ZXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvZGVQcm9maWxpbmcuaCIKKyNpbmNsdWRlICJEZWJ1
Z2dlci5oIgorI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKLSNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKLSNpbmNsdWRlICJEZWJ1
Z2dlci5oIgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0RGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0
RGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbnN0cnVjdERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3Ry
dWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAj
aW5jbHVkZSA8dGltZS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsy
NCw3IEBACiAKICNpbmNsdWRlICJKU0RhdGVNYXRoLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKLQorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5j
bHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRl
ICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVj
dFByb3RvdHlwZS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJKU09i
amVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTb3VyY2VDb2Rl
LmgiCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJF
cnJvclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1
ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJTdHJpbmdSZWN1cnNpb25DaGVja2VyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
Tm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFeGVjdXRp
b25IYXJuZXNzLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSklURHJpdmVyLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAi
Tm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU1N0
cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxleGVy
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiR2V0dGVy
U2V0dGVyLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiSlNTY29wZS5oIgogI2luY2x1ZGUgIk51bWVyaWNTdHJpbmdzLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPG5ldz4KICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5
cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91
bmRGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgog
I2luY2x1ZGUgIk51bWJlck9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTEg
KzI0LDkgQEAKICNkZWZpbmUgSlNDZWxsX2gKIAogI2luY2x1ZGUgIkNhbGxEYXRhLmgiCi0jaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29uc3RydWN0RGF0YS5oIgogI2luY2x1ZGUg
IkhlYXAuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiVHlwZWRBcnJheURlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKQEAgLTM4LDYgKzM2LDcgQEAKIG5hbWVz
cGFjZSBKU0MgewogCiBjbGFzcyBDb3B5VmlzaXRvcjsKK2NsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNz
IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBjbGFzcyBMTElu
dE9mZnNldHNFeHRyYWN0b3I7CkBAIC0xNjUsMTc0ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwogfTsKIAotaW5saW5lIEpTQ2VsbDo6
SlNDZWxsKENyZWF0aW5nRWFybHlDZWxsVGFnKQotewotfQotCi1pbmxpbmUgdm9pZCBKU0NlbGw6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKLXsKLSNpZiBFTkFCTEUo
R0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoZ2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09iamVj
dCgpKTsKLSAgICBnbG9iYWxEYXRhLnNldEluaXRpYWxpemluZ09iamVjdENsYXNzKDApOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsRGF0YSk7Ci0jZW5kaWYKLSAgICBBU1NFUlQobV9z
dHJ1Y3R1cmUpOwotfQotCi1pbmxpbmUgU3RydWN0dXJlKiBKU0NlbGw6OnN0cnVjdHVyZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOwotfQotCi1pbmxpbmUgdm9pZCBK
U0NlbGw6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
LXsKLSAgICBNQVJLX0xPR19QQVJFTlQodmlzaXRvciwgY2VsbCk7Ci0KLSAgICB2aXNpdG9yLmFw
cGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUpOwotfQotCi0vLyAtLS0gSlNWYWx1ZSBpbmxpbmVzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNTdHJp
bmcoKSBjb25zdAotewotICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aXNTdHJpbmco
KTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNQcmltaXRpdmUoKSBjb25zdAotewotICAg
IHJldHVybiAhaXNDZWxsKCkgfHwgYXNDZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBi
b29sIEpTVmFsdWU6OmlzR2V0dGVyU2V0dGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxs
KCkgJiYgYXNDZWxsKCktPmlzR2V0dGVyU2V0dGVyKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFs
dWU6OmlzT2JqZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCkt
PmlzT2JqZWN0KCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmdldFN0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMsIFN0cmluZyYgcykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmdldFN0cmluZyhleGVjLCBzKTsKLX0KLQotaW5saW5lIFN0cmluZyBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVybiBpc0NlbGwoKSA/
IGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYykgOiBTdHJpbmcoKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIEJhc2U+IFN0cmluZyBIYW5kbGVDb252ZXJ0ZXI8QmFzZSwgVW5rbm93bj46OmdldFN0
cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGpzVmFsdWUoKS5nZXRT
dHJpbmcoZXhlYyk7Ci19Ci0KLWlubGluZSBKU09iamVjdCogSlNWYWx1ZTo6Z2V0T2JqZWN0KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0T2JqZWN0KCkgOiAw
OwotfQotCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6Z2V0VUludDMyKHVpbnQzMl90JiB2
KSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgaW50MzJfdCBpID0gYXNJ
bnQzMigpOwotICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpOwotICAgICAgICBy
ZXR1cm4gaSA+PSAwOwotICAgIH0KLSAgICBpZiAoaXNEb3VibGUoKSkgewotICAgICAgICBkb3Vi
bGUgZCA9IGFzRG91YmxlKCk7Ci0gICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZCk7
Ci0gICAgICAgIHJldHVybiB2ID09IGQ7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
aW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6dG9QcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBQcmVm
ZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlz
Q2VsbCgpID8gYXNDZWxsKCktPnRvUHJpbWl0aXZlKGV4ZWMsIHByZWZlcnJlZFR5cGUpIDogYXNW
YWx1ZSgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRQcmltaXRpdmVOdW1iZXIoRXhl
Y1N0YXRlKiBleGVjLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYgdmFsdWUpCi17Ci0gICAgaWYg
KGlzSW50MzIoKSkgewotICAgICAgICBudW1iZXIgPSBhc0ludDMyKCk7Ci0gICAgICAgIHZhbHVl
ID0gKnRoaXM7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoaXNEb3VibGUo
KSkgewotICAgICAgICBudW1iZXIgPSBhc0RvdWJsZSgpOwotICAgICAgICB2YWx1ZSA9ICp0aGlz
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGlzQ2VsbCgpKQotICAgICAg
ICByZXR1cm4gYXNDZWxsKCktPmdldFByaW1pdGl2ZU51bWJlcihleGVjLCBudW1iZXIsIHZhbHVl
KTsKLSAgICBpZiAoaXNUcnVlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMS4wOwotICAgICAgICB2
YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGlzRmFs
c2UoKSB8fCBpc051bGwoKSkgewotICAgICAgICBudW1iZXIgPSAwLjA7Ci0gICAgICAgIHZhbHVl
ID0gKnRoaXM7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBBU1NFUlQoaXNVbmRl
ZmluZWQoKSk7Ci0gICAgbnVtYmVyID0gUU5hTjsKLSAgICB2YWx1ZSA9ICp0aGlzOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi1BTFdBWVNfSU5MSU5FIGRvdWJsZSBKU1ZhbHVlOjp0b051bWJlcihF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgaWYgKGlzSW50MzIoKSkKLSAgICAgICAgcmV0
dXJuIGFzSW50MzIoKTsKLSAgICBpZiAoaXNEb3VibGUoKSkKLSAgICAgICAgcmV0dXJuIGFzRG91
YmxlKCk7Ci0gICAgcmV0dXJuIHRvTnVtYmVyU2xvd0Nhc2UoZXhlYyk7Ci19Ci0KLWlubGluZSBK
U09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAg
IHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKLX0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6ZSkK
LXsKLSAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOwotI2lmIEVOQUJMRShHQ19WQUxJREFU
SU9OKQotICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2JqZWN0
KCkpOwotICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFzcygm
VDo6c19pbmZvKTsKLSNlbmRpZgotICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKLSAgICBpZiAoVDo6
bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0cnVj
dHVyZURlc3RydWN0b3Ioc2l6ZSkpOwotICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24g
JiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwotICAg
IGVsc2UgCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2Nh
dGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7Ci0gICAgcmVzdWx0LT5jbGVhclN0cnVjdHVyZSgp
OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9p
ZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCi17Ci0gICAgcmV0dXJuIGFsbG9jYXRlQ2VsbDxU
PihoZWFwLCBzaXplb2YoVCkpOwotfQotICAgIAotaW5saW5lIGJvb2wgaXNaYXBwZWQoY29uc3Qg
SlNDZWxsKiBjZWxsKQotewotICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KIGlubGluZSBUbyBqc0Nhc3QoRnJvbSog
ZnJvbSkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGxJbmxpbmVzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgIkNhbGxGcmFtZS5o
IgorI2luY2x1ZGUgIkpTQ2VsbC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5lIEpTQ2Vs
bDo6SlNDZWxsKENyZWF0aW5nRWFybHlDZWxsVGFnKQoreworfQorCitpbmxpbmUgdm9pZCBKU0Nl
bGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyNpZiBFTkFC
TEUoR0NfVkFMSURBVElPTikKKyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09i
amVjdCgpKTsKKyAgICBnbG9iYWxEYXRhLnNldEluaXRpYWxpemluZ09iamVjdENsYXNzKDApOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZ2xvYmFsRGF0YSk7CisjZW5kaWYKKyAgICBBU1NFUlQo
bV9zdHJ1Y3R1cmUpOworfQorCitpbmxpbmUgU3RydWN0dXJlKiBKU0NlbGw6OnN0cnVjdHVyZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOworfQorCitpbmxpbmUgdm9p
ZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICBNQVJLX0xPR19QQVJFTlQodmlzaXRvciwgY2VsbCk7CisKKyAgICB2aXNpdG9y
LmFwcGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXAsIHNpemVfdCBzaXplKQoreworICAgIEFTU0VS
VChzaXplID49IHNpemVvZihUKSk7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNT
RVJUKCFoZWFwLmdsb2JhbERhdGEoKS0+aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgaGVh
cC5nbG9iYWxEYXRhKCktPnNldEluaXRpYWxpemluZ09iamVjdENsYXNzKCZUOjpzX2luZm8pOwor
I2VuZGlmCisgICAgSlNDZWxsKiByZXN1bHQgPSAwOworICAgIGlmIChUOjpuZWVkc0Rlc3RydWN0
aW9uICYmIFQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3Rv
cihzaXplKSk7CisgICAgZWxzZSBpZiAoVDo6bmVlZHNEZXN0cnVjdGlvbiAmJiAhVDo6aGFzSW1t
b3J0YWxTdHJ1Y3R1cmUpCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhl
YXAuYWxsb2NhdGVXaXRoTm9ybWFsRGVzdHJ1Y3RvcihzaXplKSk7CisgICAgZWxzZSAKKyAgICAg
ICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhvdXREZXN0
cnVjdG9yKHNpemUpKTsKKyAgICByZXN1bHQtPmNsZWFyU3RydWN0dXJlKCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkKiBhbGxvY2F0ZUNl
bGwoSGVhcCYgaGVhcCkKK3sKKyAgICByZXR1cm4gYWxsb2NhdGVDZWxsPFQ+KGhlYXAsIHNpemVv
ZihUKSk7Cit9CisgICAgCitpbmxpbmUgYm9vbCBpc1phcHBlZChjb25zdCBKU0NlbGwqIGNlbGwp
Cit7CisgICAgcmV0dXJuIGNlbGwtPmlzWmFwcGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNE
YXRlTWF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAxMCAmeWV0LCBMTEMuIChuYXRlQGFuZHlldC5uZXQpCkBAIC03NCw2ICs3
NCw3IEBACiAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
bGltaXRzLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJKU05vdEFuT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRl
ICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZUFsbG9jYXRv
ci5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKLSNpbmNsdWRl
ICJKSVRTdHVicy5oIgorI2luY2x1ZGUgIkpJVFRodW5rcy5oIgogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJTbWFsbFN0cmluZ3MuaCIKICNpbmNsdWRlICJTdHJvbmcuaCIK
ICNpbmNsdWRlICJUZXJtaW5hdG9yLmgiCisjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAj
aW5jbHVkZSAiVGltZW91dENoZWNrZXIuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5RGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIldlYWtSYW5kb20uaCIKQEAgLTY2LDYgKzY3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgY2xhc3MgQ29kZUJsb2NrOwogICAgIGNsYXNzIENvZGVDYWNoZTsKICAgICBj
bGFzcyBDb21tb25JZGVudGlmaWVyczsKKyAgICBjbGFzcyBFeGVjU3RhdGU7CiAgICAgY2xhc3Mg
SGFuZGxlU3RhY2s7CiAgICAgY2xhc3MgSWRlbnRpZmllclRhYmxlOwogICAgIGNsYXNzIEludGVy
cHJldGVyOwpAQCAtMTg4LDcgKzE5MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEds
b2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnRE
YXRhOwotICAgICAgICBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZTsKKyAgICAgICAgRXhlY1N0YXRl
KiB0b3BDYWxsRnJhbWU7CiAKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBhcnJheUNvbnN0cnVj
dG9yVGFibGU7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlQcm90b3R5cGVUYWJsZTsK
QEAgLTMwOCw3ICszMTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBSZXR1cm5BZGRy
ZXNzUHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwogICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJu
VmFsdWU7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lRm9yVGhyb3c7CisgICAgICAgIEV4
ZWNTdGF0ZSogY2FsbEZyYW1lRm9yVGhyb3c7CiAgICAgICAgIHZvaWQqIHRhcmdldE1hY2hpbmVQ
Q0ZvclRocm93OwogICAgICAgICBJbnN0cnVjdGlvbiogdGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRo
cm93OwogI2lmIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNO
YW1lU2NvcGUuaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJMZXhlci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKICNpbmNsdWRlICJOb2Rl
cy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNs
dWRlIDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcgKzI1
LDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNp
ZiBVU0UoUFRIUkVBRFMpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTm90QW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkxvY2FsLmgiCiAjaW5jbHVkZSAiTG9jYWxTY29wZS5oIgogI2luY2x1ZGUgIkxvb2t1cC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5o
IgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNQ
cm94eS5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Njb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgi
CiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJs
ZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgiCiAKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBpbnQgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdDo6ZmluZFJlZ2lzdGVySW5kZXgodm9pZCogcmVnaXN0ZXJBZGRyZXNzKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdKb2luZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5j
bHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRl
ICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdJbXBsLmg+CiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIC8vIFRoZSBkZXN0aW5hdGlv
biBpcyAxNmJpdHMsIGF0IGxlYXN0IG9uZSBzdHJpbmcgaXMgMTYgYml0cy4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N5bWJvbFRhYmxlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKICNp
bmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFsdWUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTTm90QW5PYmplY3QuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
Ik51bWJlck9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1N0cmluZ0V4dHJhcy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhbHVlSW5saW5lcy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw0NzEg
KzI2LDU4MSBAQAogI2lmbmRlZiBKU1ZhbHVlSW5saW5lc19oCiAjZGVmaW5lIEpTVmFsdWVJbmxp
bmVzX2gKIAorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFsdWU6
OnRvSW50MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzSW50
MzIoKSkKLSAgICAgICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgICAgIHJldHVybiBKU0M6
OnRvSW50MzIodG9OdW1iZXIoZXhlYykpOwotICAgIH0KLQotICAgIGlubGluZSB1aW50MzJfdCBK
U1ZhbHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICAv
LyBTZWUgY29tbWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KLSAgICAgICAgcmV0dXJuIHRv
SW50MzIoZXhlYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkgPj0g
MDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVUludDMyKCkpOworQUxXQVlTX0lOTElORSBpbnQz
Ml90IEpTVmFsdWU6OnRvSW50MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChp
c0ludDMyKCkpCiAgICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgfQorICAgIHJldHVybiBK
U0M6OnRvSW50MzIodG9OdW1iZXIoZXhlYykpOworfQogCi0gICAgaW5saW5lIGRvdWJsZSBKU1Zh
bHVlOjphc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNOdW1iZXIoKSk7
Ci0gICAgICAgIHJldHVybiBpc0ludDMyKCkgPyBhc0ludDMyKCkgOiBhc0RvdWJsZSgpOwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlIGpzTmFOKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBK
U1ZhbHVlKFFOYU4pOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNoYXIg
aSkKLSAgICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBp
KQotICAgIHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkp
KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQotICAgIHsK
LSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBzaG9ydCBpKQotICAgIHsK
LSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQotICAgIHsKLSAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpIDwgMCkgewotICAgICAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVl
KGxvbmcgaSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBp
KSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19j
YXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
ICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQotICAgIHsKLSAgICAgICAg
aWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVl
KGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkp
ICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGxvbmcgaSkKLSAgICB7
Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkp
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShkb3VibGUgZCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOwotICAgICAgICBpZiAoYXNJbnQzMiAhPSBkIHx8
ICghYXNJbnQzMiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCi0gICAgICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIGQpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90
PihkKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLnUuYXNJbnQ2NDsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpkZWNvZGUoRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEpTVmFsdWUpCi0gICAgewotICAgICAgICBKU1ZhbHVlIHY7Ci0gICAgICAgIHYu
dS5hc0ludDY0ID0gZW5jb2RlZEpTVmFsdWU7Ci0gICAgICAgIHJldHVybiB2OwotICAgIH0KK2lu
bGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7
CisgICAgLy8gU2VlIGNvbW1lbnQgb24gSlNDOjp0b1VJbnQzMiwgYWJvdmUuCisgICAgcmV0dXJu
IHRvSW50MzIoZXhlYyk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVUludDMyKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOworfQorCitpbmxp
bmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc1VJ
bnQzMigpKTsKKyAgICByZXR1cm4gYXNJbnQzMigpOworfQorCitpbmxpbmUgZG91YmxlIEpTVmFs
dWU6OmFzTnVtYmVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNOdW1iZXIoKSk7CisgICAgcmV0
dXJuIGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Cit9CisKK2lubGluZSBKU1Zh
bHVlIGpzTmFOKCkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShRTmFOKTsKK30KKworaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoY2hhciBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2Fz
dDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGNo
YXIgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQoreworICAgICp0aGlzID0gSlNW
YWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKHVuc2lnbmVkIHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgaSkK
K3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgPCAwKSB7CisgICAgICAgICp0aGlz
ID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMy
X3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQoreworICAgIGlm
IChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQoreworICAgIGlm
IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkp
OworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGxvbmcgaSkKK3sKKyAgICBpZiAo
c3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUo
RW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9
CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQoreworICAg
IGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
aSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkKK3sKKyAgICBjb25z
dCBpbnQzMl90IGFzSW50MzIgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihkKTsKKyAgICBpZiAoYXNJ
bnQzMiAhPSBkIHx8ICghYXNJbnQzMiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4w
CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgZCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQp
KTsKK30KKworaW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlIHZh
bHVlKQoreworICAgIHJldHVybiB2YWx1ZS51LmFzSW50NjQ7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1ZSkKK3sKKyAgICBK
U1ZhbHVlIHY7CisgICAgdi51LmFzSW50NjQgPSBlbmNvZGVkSlNWYWx1ZTsKKyAgICByZXR1cm4g
djsKK30KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAg
ICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoSlNOdWxsVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gTnVsbFRhZzsK
LSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0Jp
dHMucGF5bG9hZCA9IDA7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OworfQogICAgIAotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQot
ICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gVW5kZWZpbmVkVGFnOwotICAgICAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVm
aW5lZFRhZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7CisgICAgdS5hc0Jp
dHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNU
cnVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAg
ICAgdS5hc0JpdHMucGF5bG9hZCA9IDE7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
SlNUcnVlVGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7CisgICAgdS5hc0Jp
dHMucGF5bG9hZCA9IDE7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNG
YWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7Ci0gICAg
ICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRz
LnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCi0gICAgewot
ICAgICAgICBpZiAocHRyKQotICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAg
ICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikK
LSAgICB7Ci0gICAgICAgIGlmIChwdHIpCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxs
VGFnOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVl
VGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90
Pihjb25zdF9jYXN0PEpTQ2VsbCo+KHB0cikpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVl
OjpvcGVyYXRvciBib29sKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOwotICAgICAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRhZzsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFs
dWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhl
ci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3Ih
PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFz
SW50NjQgIT0gb3RoZXIudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFs
dWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEVtcHR5
VmFsdWVUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IFVuZGVmaW5lZFRhZzsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRhZygpID09IE51bGxUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxsKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNDZWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBDZWxs
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEludDMyVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0YWcoKSA8IExvd2VzdFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c1RydWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcg
JiYgcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcp
Cit7CisgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2Fk
ID0gMDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVl
VGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKKyAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIp
Cit7CisgICAgaWYgKHB0cikKKyAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKKyAgICBl
bHNlCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMu
cGF5bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKK30KIAotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRh
ZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB1LmFz
Qml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5hc0JpdHMudGFnID0gRW1w
dHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQz
Ml90Pihjb25zdF9jYXN0PEpTQ2VsbCo+KHB0cikpOworfQogCi0gICAgaW5saW5lIHVpbnQzMl90
IEpTVmFsdWU6OnRhZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMudGFn
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQodGFnKCkgIT0gRGVsZXRlZFZhbHVlVGFnKTsKKyAgICByZXR1cm4gdGFnKCkgIT0gRW1w
dHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBK
U1ZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUu
YXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1Zh
bHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUuYXNJ
bnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRhZygpID09IEVtcHR5VmFsdWVUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6
OmlzVW5kZWZpbmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFn
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVy
biB0YWcoKSA9PSBOdWxsVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5l
ZE9yTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxsKCk7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRhZygpID09IENlbGxUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBJbnQzMlRhZzsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA8IExvd2VzdFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29sZWFuVGFn
ICYmICFwYXlsb2FkKCk7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0YWcoKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzQml0cy50YWc7Cit9CiAgICAgCi0gICAgaW5saW5lIGludDMy
X3QgSlNWYWx1ZTo6cGF5bG9hZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0Jp
dHMucGF5bG9hZDsKLSAgICB9CitpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXlsb2FkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUg
aW50MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
c0ludDMyKCkpOwotICAgICAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9Citpbmxp
bmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQz
MigpKTsKKyAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUg
ZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
c0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHUuYXNEb3VibGU7Ci0gICAgfQoraW5saW5lIGRv
dWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzRG91YmxlKCkp
OworICAgIHJldHVybiB1LmFzRG91YmxlOworfQogICAgIAotICAgIEFMV0FZU19JTkxJTkUgSlND
ZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQ2Vs
bCgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0JpdHMu
cGF5bG9hZCk7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVu
Y29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7Ci0gICAgICAgIHUuYXNEb3VibGUgPSBk
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAg
ICAgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQg
PSBpOwotICAgIH0KK0FMV0FZU19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25z
dAoreworICAgIEFTU0VSVChpc0NlbGwoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
SlNDZWxsKj4odS5hc0JpdHMucGF5bG9hZCk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZTo6
SlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlIGQpCit7CisgICAgdS5hc0RvdWJsZSA9
IGQ7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IEludDMyVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBpOworfQogCiAjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90IHRh
ZywgaW50MzJfdCBwYXlsb2FkKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gdGFnOwot
ICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gcGF5bG9hZDsKLSAgICB9CitpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShpbnQzMl90IHRhZywgaW50MzJfdCBwYXlsb2FkKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IHRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcGF5bG9hZDsKK30KICNlbmRpZgog
Ci0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGlzSW50MzIoKSB8fCBpc0RvdWJsZSgpOwotICAgIH0KLQotICAgIGlubGluZSBi
b29sIEpTVmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNU
cnVlKCkgfHwgaXNGYWxzZSgpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFz
Qm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAg
ICAgICByZXR1cm4gcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVt
YmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNJbnQzMigpIHx8IGlzRG91YmxlKCk7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlz
VHJ1ZSgpIHx8IGlzRmFsc2UoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFu
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOworICAgIHJldHVybiBwYXlsb2Fk
KCk7Cit9CiAKICNlbHNlIC8vICFVU0UoSlNWQUxVRTMyXzY0KSBpLmUuIFVTRShKU1ZBTFVFNjQp
CiAKLSAgICAvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBh
IHRhZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2Yg
MHgwLCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KLSAgICBpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5Owot
ICAgIH0KLQotICAgIC8vIDB4NCBjYW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQg
aGFzIGEgdGFnIG9mIDAwLCBpbmRpY2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9h
ZCBvZiAweDQsIHdoaWNoIGlzIGluIHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAg
ICAgIHUuYXNJbnQ2NCA9IFZhbHVlRGVsZXRlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1Zh
bHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OwotICAg
IH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5lZCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1Zh
bHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpT
VmFsdWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNl
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0Zh
bHNlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQm9vbGVhbigpKTsKLSAgICAgICAgcmV0dXJuIGFz
VmFsdWUoKSA9PSBKU1ZhbHVlKEpTVHJ1ZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDMyX3Qg
SlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNJbnQzMigp
KTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Ci0gICAg
fQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGlzTnVtYmVyKCkgJiYgIWlzSW50MzIoKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQg
PSBWYWx1ZU51bGw7Ci0gICAgfQorLy8gMHgwIGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVj
YXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQg
YSBwYXlsb2FkIG9mIDB4MCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVFbXB0eTsK
K30KKworLy8gMHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0
YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4
NCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFs
dWVEZWxldGVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sK
KyAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKK30KKwor
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3QgSlNDZWxsKiBwdHIpCit7CisgICAgdS5hc0lu
dDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRy
KSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNv
bnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3Ro
ZXIudS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0
IEpTVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIu
dS5hc0ludDY0OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdS5hc0ludDY0ID09IFZhbHVlRW1wdHk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpT
VmFsdWUoSlNVbmRlZmluZWQpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBj
b25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVl
KCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNGYWxzZSk7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQm9vbGVhbigpKTsKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsK
K30KKworaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Cit7CisgICAgQVNT
RVJUKGlzSW50MzIoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2
NCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaXNOdW1iZXIoKSAmJiAhaXNJbnQzMigpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZShKU051bGxUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVOdWxsOworfQogICAgIAot
ICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAgICAg
ICAgdS5hc0ludDY0ID0gVmFsdWVVbmRlZmluZWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNUcnVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFsdWVU
cnVlOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCi0g
ICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUZhbHNlOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IC8vIFVuZGVmaW5lZCBhbmQgbnVsbCBzaGFyZSB0aGUgc2FtZSB2YWx1ZSwgYmFyIHRoZSAndW5k
ZWZpbmVkJyBiaXQgaW4gdGhlIGV4dGVuZGVkIHRhZy4KLSAgICAgICAgcmV0dXJuICh1LmFzSW50
NjQgJiB+VGFnQml0VW5kZWZpbmVkKSA9PSBWYWx1ZU51bGw7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAo
dS5hc0ludDY0ICYgfjEpID09IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAhKHUuYXNJbnQ2
NCAmIFRhZ01hc2spOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVy
KSA9PSBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIGlubGluZSBpbnQ2NF90IHJlaW50ZXJw
cmV0RG91YmxlVG9JbnQ2NChkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKTsKLSAgICB9Ci0gICAgaW5saW5lIGRvdWJsZSByZWlu
dGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7Ci0g
ICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQgaSkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFRhZ1R5cGVOdW1iZXIgfCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJs
ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNEb3VibGUoKSk7Ci0gICAgICAgIHJl
dHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0ludDY0IC0gRG91YmxlRW5jb2RlT2Zm
c2V0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ICYgVGFnVHlwZU51bWJlcjsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChpc0NlbGwoKSk7Ci0gICAgICAgIHJldHVybiB1LnB0cjsKLSAg
ICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVmaW5lZFRhZykKK3sKKyAgICB1LmFz
SW50NjQgPSBWYWx1ZVVuZGVmaW5lZDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNU
cnVlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVHJ1ZTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUZhbHNlOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0Cit7Cisg
ICAgLy8gVW5kZWZpbmVkIGFuZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1
bmRlZmluZWQnIGJpdCBpbiB0aGUgZXh0ZW5kZWQgdGFnLgorICAgIHJldHVybiAodS5hc0ludDY0
ICYgflRhZ0JpdFVuZGVmaW5lZCkgPT0gVmFsdWVOdWxsOworfQorCitpbmxpbmUgYm9vbCBKU1Zh
bHVlOjppc0Jvb2xlYW4oKSBjb25zdAoreworICAgIHJldHVybiAodS5hc0ludDY0ICYgfjEpID09
IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmlzSW50MzIoKSBjb25zdAoreworICAgIHJldHVybiAodS5hc0ludDY0ICYgVGFnVHlw
ZU51bWJlcikgPT0gVGFnVHlwZU51bWJlcjsKK30KKworaW5saW5lIGludDY0X3QgcmVpbnRlcnBy
ZXREb3VibGVUb0ludDY0KGRvdWJsZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0
PGludDY0X3Q+KHZhbHVlKTsKK30KK2lubGluZSBkb3VibGUgcmVpbnRlcnByZXRJbnQ2NFRvRG91
YmxlKGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZh
bHVlKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
VGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJldERvdWJsZVRvSW50
NjQoZCkgKyBEb3VibGVFbmNvZGVPZmZzZXQ7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVl
KGludCBpKQoreworICAgIHUuYXNJbnQ2NCA9IFRhZ1R5cGVOdW1iZXIgfCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3VibGUoKSBjb25z
dAoreworICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRJbnQ2
NFRvRG91YmxlKHUuYXNJbnQ2NCAtIERvdWJsZUVuY29kZU9mZnNldCk7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ICYg
VGFnVHlwZU51bWJlcjsKK30KKworQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2Vs
bCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gdS5wdHI7Cit9
CiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1N0
cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc1N0cmlu
ZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1ByaW1pdGl2ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICFpc0NlbGwoKSB8fCBhc0NlbGwoKS0+aXNTdHJpbmcoKTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdAoreworICAgIHJldHVybiBpc0Nl
bGwoKSAmJiBhc0NlbGwoKS0+aXNHZXR0ZXJTZXR0ZXIoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwo
KS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYywgU3RyaW5nJiBzKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAmJiBh
c0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMsIHMpOworfQorCitpbmxpbmUgU3RyaW5nIEpTVmFsdWU6
OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgp
ID8gYXNDZWxsKCktPmdldFN0cmluZyhleGVjKSA6IFN0cmluZygpOworfQorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgQmFzZT4gU3RyaW5nIEhhbmRsZUNvbnZlcnRlcjxCYXNlLCBVbmtub3duPjo6Z2V0
U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4ganNWYWx1ZSgpLmdl
dFN0cmluZyhleGVjKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjpnZXRPYmplY3Qo
KSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5nZXRPYmplY3QoKSA6
IDA7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpnZXRVSW50MzIodWludDMyX3Qm
IHYpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBpbnQzMl90IGkgPSBh
c0ludDMyKCk7CisgICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSk7CisgICAgICAg
IHJldHVybiBpID49IDA7CisgICAgfQorICAgIGlmIChpc0RvdWJsZSgpKSB7CisgICAgICAgIGRv
dWJsZSBkID0gYXNEb3VibGUoKTsKKyAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihk
KTsKKyAgICAgICAgcmV0dXJuIHYgPT0gZDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
CitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1ByaW1pdGl2ZShFeGVjU3RhdGUqIGV4ZWMsIFBy
ZWZlcnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9QcmltaXRpdmUoZXhlYywgcHJlZmVycmVkVHlwZSkgOiBh
c1ZhbHVlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmdldFByaW1pdGl2ZU51bWJlcihF
eGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBp
ZiAoaXNJbnQzMigpKSB7CisgICAgICAgIG51bWJlciA9IGFzSW50MzIoKTsKKyAgICAgICAgdmFs
dWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0RvdWJs
ZSgpKSB7CisgICAgICAgIG51bWJlciA9IGFzRG91YmxlKCk7CisgICAgICAgIHZhbHVlID0gKnRo
aXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaXNDZWxsKCkpCisgICAg
ICAgIHJldHVybiBhc0NlbGwoKS0+Z2V0UHJpbWl0aXZlTnVtYmVyKGV4ZWMsIG51bWJlciwgdmFs
dWUpOworICAgIGlmIChpc1RydWUoKSkgeworICAgICAgICBudW1iZXIgPSAxLjA7CisgICAgICAg
IHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaXNG
YWxzZSgpIHx8IGlzTnVsbCgpKSB7CisgICAgICAgIG51bWJlciA9IDAuMDsKKyAgICAgICAgdmFs
dWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVChpc1Vu
ZGVmaW5lZCgpKTsKKyAgICBudW1iZXIgPSBRTmFOOworICAgIHZhbHVlID0gKnRoaXM7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0FMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQorICAgICAgICBy
ZXR1cm4gYXNJbnQzMigpOworICAgIGlmIChpc0RvdWJsZSgpKQorICAgICAgICByZXR1cm4gYXNE
b3VibGUoKTsKKyAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKK30KKworaW5saW5l
IEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorewor
ICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBnbG9iYWxPYmplY3QpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTVmFsdWVJbmxpbmVzX2gKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dpdGhTY29wZS5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkpTV2l0aFNjb3BlLmgiCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFj
ZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNXaXRoU2NvcGU6OnNfaW5mbyA9IHsgIldpdGhT
Y29wZSIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXaXRoU2Nv
cGUpIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMjAwNiBNYWtzIE9ybG92aWNoCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA5LCAyMDEyIEFwcGxlLCBJbmMuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV3JhcHBlck9iamVjdC5oIgog
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0hB
U19UUklWSUFMX0RFU1RSVUNUT1IoSlNXcmFwcGVyT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlD
VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Mb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1
ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYW1lUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYW1lUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJOYW1lUHJvdG90eXBlLmgiCiAKICNpbmNsdWRlICJF
cnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1N0
cmluZy5oIgogI2luY2x1ZGUgIk5hdGl2ZUVycm9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQ
cm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk5hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJOdW1iZXJDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVk
ZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJOdW1i
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIk51bWJlclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5RGVzY3JpcHRvci5oIgog
I2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHAuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNiArMjQsMTYgQEAKICNpbmNs
dWRlICJSZWdFeHAuaCIKIAogI2luY2x1ZGUgIkxleGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCi0jaW5jbHVkZSAieWFyci9ZYXJyLmgiCi0j
aW5jbHVkZSAieWFyci9ZYXJySklULmgiCisjaW5jbHVkZSAiWWFyci5oIgorI2luY2x1ZGUgIllh
cnJKSVQuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1
ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L093bkFycmF5UHRyLmg+CiAKLQogI2RlZmluZSBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOIDAK
IAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ2FjaGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgUmVuYXRhIEhvZG92YW4gKGhvZG92YW5AaW5mLnUtc3plZ2VkLmh1
KQorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiw4ICsyNyw5
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUu
aCIKKworI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIK
ICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cENh
Y2hlZFJlc3VsdC5oIgogCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4
cFByb3RvdHlwZS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBNYXRjaGVzQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIK
IAogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCiAj
aW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJl
Z0V4cENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5j
bHVkZSAiUmVnRXhwUHJvdG90eXBlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNp
bmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUgIlJl
Z0V4cC5oIgogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTbWFsbFN0cmluZ3MuaCIKIAogI2lu
Y2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
cGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNp
bmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWpl
Y3QuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
U3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVk
ZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90
b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlO
YW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9y
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNs
dWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
ICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMzg0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgorCisgICAgICAgIFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBv
d24gZmlsZSwgYW5kIGRvaW5nIHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAg
ICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIEFsbCAuY3BwIGZpbGVz
IHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJuYWwgQVBJIG11c3Qgbm93IHRyYW5zaXRpdmVseSBpbmNs
dWRlCisgICAgICAgIE9wZXJhdGlvbnMuaCwgYW5kIG5vbmUgb2YgdGhlIG1ham9yIEpTQyBoZWFk
ZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZvaWQKKyAgICAgICAgY2lyY3VsYXJpdHkuIFdlYkNvcmUg
ZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGNpcmN1bGFyaXR5IHdpdGggSlNDLCBzbworICAg
ICAgICB0aGlzIGNoYW5nZXMgYWxsIG9mIHRoZSBtYWpvciBXZWJDb3JlIEpTQyBiYXNlIGhlYWRl
cnMgdG8gaW5jbHVkZQorICAgICAgICBPcGVyYXRpb25zLmguCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYnJpZGdlL2pzYy9Ccmlk
Z2VKU0MuaDoKKwogMjAxMi0xMi0yMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFNwbGl0IGZhc3QtcmVqZWN0aW9uIGZpbHRlciBsb2dpYyBvZmYg
U2VsZWN0b3JDaGVja2VyLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVk
ZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Mb29rdXAuaD4KICNpbmNs
dWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLQorI2luY2x1ZGUgPHJ1bnRpbWUv
T3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJv
bmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0V3JhcHBhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU1N0
cmluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Cg==
</data>
<flag name="commit-queue"
          id="197973"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180679</attachid>
            <date>2012-12-24 10:21:40 -0800</date>
            <delta_ts>2012-12-24 12:09:02 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>206249</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpT
TmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRnVuY3Rp
b24uaCIKICNpbmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGluZXMuaAkocmV2aXNpb24gMTM4NDI5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjYsNDcxICsyNiw1ODEgQEAKICNpZm5kZWYgSlNWYWx1ZUlubGluZXNfaAogI2Rl
ZmluZSBKU1ZhbHVlSW5saW5lc19oCiAKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIEFMV0FZU19JTkxJTkUg
aW50MzJfdCBKU1ZhbHVlOjp0b0ludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0g
ICAgICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm4gYXNJbnQzMigpOwotICAg
ICAgICByZXR1cm4gSlNDOjp0b0ludDMyKHRvTnVtYmVyKGV4ZWMpKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dG9VSW50MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAot
ICAgIHsKLSAgICAgICAgLy8gU2VlIGNvbW1lbnQgb24gSlNDOjp0b1VJbnQzMiwgYWJvdmUuCi0g
ICAgICAgIHJldHVybiB0b0ludDMyKGV4ZWMpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpT
VmFsdWU6OmlzVUludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc0ludDMyKCkg
JiYgYXNJbnQzMigpID49IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6
OmFzVUludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc1VJbnQzMigpKTsKK0FM
V0FZU19JTkxJTkUgaW50MzJfdCBKU1ZhbHVlOjp0b0ludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29u
c3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQogICAgICAgICByZXR1cm4gYXNJbnQzMigpOwotICAg
IH0KKyAgICByZXR1cm4gSlNDOjp0b0ludDMyKHRvTnVtYmVyKGV4ZWMpKTsKK30KIAotICAgIGlu
bGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzTnVtYmVyKCkpOwotICAgICAgICByZXR1cm4gaXNJbnQzMigpID8gYXNJbnQzMigpIDog
YXNEb3VibGUoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZSBqc05hTigpCi0gICAgewot
ICAgICAgICByZXR1cm4gSlNWYWx1ZShRTmFOKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShjaGFyIGkpCi0gICAgewotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVl
KHVuc2lnbmVkIGNoYXIgaSkKLSAgICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNf
Y2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
c2hvcnQgaSkKLSAgICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQg
c2hvcnQgaSkKLSAgICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQg
aSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKLSAg
ICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91
YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFz
RG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkp
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgaSkK
LSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgewotICAg
ICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShsb25nIGxvbmcgaSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNf
Y2FzdDxpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5j
b2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90
PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgbG9u
ZyBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpICE9
IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoZG91YmxlIGQpCi0gICAgewotICAgICAgICBjb25z
dCBpbnQzMl90IGFzSW50MzIgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihkKTsKLSAgICAgICAgaWYg
KGFzSW50MzIgIT0gZCB8fCAoIWFzSW50MzIgJiYgc2lnbmJpdChkKSkpIHsgLy8gdHJ1ZSBmb3Ig
LTAuMAotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4oZCkpOwotICAgIH0KLQotICAgIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB2
YWx1ZS51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVj
b2RlKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQotICAgIHsKLSAgICAgICAgSlNWYWx1
ZSB2OwotICAgICAgICB2LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOwotICAgICAgICByZXR1
cm4gdjsKLSAgICB9CitpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dG9VSW50MzIoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIC8vIFNlZSBjb21tZW50IG9uIEpTQzo6dG9VSW50MzIsIGFi
b3ZlLgorICAgIHJldHVybiB0b0ludDMyKGV4ZWMpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppc1VJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkg
Pj0gMDsKK30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OmFzVUludDMyKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaXNVSW50MzIoKSk7CisgICAgcmV0dXJuIGFzSW50MzIoKTsKK30KKworaW5s
aW5lIGRvdWJsZSBKU1ZhbHVlOjphc051bWJlcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzTnVt
YmVyKCkpOworICAgIHJldHVybiBpc0ludDMyKCkgPyBhc0ludDMyKCkgOiBhc0RvdWJsZSgpOwor
fQorCitpbmxpbmUgSlNWYWx1ZSBqc05hTigpCit7CisgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7
Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNoYXIgaSkKK3sKKyAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZSh1bnNpZ25lZCBjaGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoc2hvcnQgaSkKK3sK
KyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBzaG9ydCBpKQoreworICAgICp0aGlzID0gSlNW
YWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKHVuc2lnbmVkIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpIDwgMCkg
eworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRv
dWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShz
dGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxv
bmcgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2Fz
dDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxv
bmcgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpICE9IGkpIHsKKyAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25n
IGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAg
KnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8
aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25n
IGxvbmcgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpICE9IGkpIHsKKyAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoZG91Ymxl
IGQpCit7CisgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4o
ZCk7CisgICAgaWYgKGFzSW50MzIgIT0gZCB8fCAoIWFzSW50MzIgJiYgc2lnbmJpdChkKSkpIHsg
Ly8gdHJ1ZSBmb3IgLTAuMAorICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUs
IGQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNf
Y2FzdDxpbnQzMl90PihkKSk7Cit9CisKK2lubGluZSBFbmNvZGVkSlNWYWx1ZSBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OworfQor
CitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpkZWNvZGUoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEpT
VmFsdWUpCit7CisgICAgSlNWYWx1ZSB2OworICAgIHYudS5hc0ludDY0ID0gZW5jb2RlZEpTVmFs
dWU7CisgICAgcmV0dXJuIHY7Cit9CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5
VmFsdWVUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwotICAgIH0KK2lu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkKK3sKKyAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVl
VGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZShKU051bGxUYWcpCit7CisgICAgdS5hc0JpdHMudGFnID0gTnVsbFRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gMDsKK30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U1VuZGVmaW5lZFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRh
ZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCit7CisgICAgdS5hc0JpdHMudGFnID0gVW5kZWZpbmVk
VGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQogICAgIAotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVHJ1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IEJv
b2xlYW5UYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAxOwotICAgIH0KK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKEpTVHJ1ZVRhZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBCb29sZWFu
VGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAxOworfQogICAgIAotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBC
b29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBEZWxldGVkVmFsdWVUYWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSAwOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgaWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRh
ZyA9IENlbGxUYWc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVt
cHR5VmFsdWVUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0
PGludDMyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29u
c3QgSlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICBpZiAocHRyKQotICAgICAgICAgICAgdS5h
c0JpdHMudGFnID0gQ2VsbFRhZzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdS5hc0JpdHMu
dGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8aW50MzJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBB
U1NFUlQodGFnKCkgIT0gRGVsZXRlZFZhbHVlVGFnKTsKLSAgICAgICAgcmV0dXJuIHRhZygpICE9
IEVtcHR5VmFsdWVUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0
b3I9PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1
LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpT
VmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0YWcoKSA9PSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFs
dWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBV
bmRlZmluZWRUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdWxsKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBOdWxsVGFnOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBpc1VuZGVmaW5lZCgpIHx8IGlzTnVsbCgpOwotICAgIH0KLQotICAg
IGlubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1
cm4gdGFnKCkgPT0gQ2VsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBJbnQzMlRhZzsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gdGFnKCkgPCBMb3dlc3RUYWc7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWco
KSA9PSBCb29sZWFuVGFnICYmIHBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZShKU0ZhbHNlVGFnKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7CisgICAg
dS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzQml0cy50YWcgPSBEZWxldGVkVmFsdWVU
YWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTQ2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9
IENlbGxUYWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFn
OworICAgIHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KHB0cik7
Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0YWcoKSA9PSBCb29sZWFuVGFnICYmICFwYXlsb2FkKCk7Ci0gICAgfQor
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3QgSlNDZWxsKiBwdHIpCit7CisgICAgaWYgKHB0
cikKKyAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKKyAgICBlbHNlCisgICAgICAgIHUu
YXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8aW50MzJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KIAotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0YWcoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIHUuYXNCaXRzLnRhZzsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgp
IGNvbnN0Cit7CisgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7CisgICAgcmV0
dXJuIHRhZygpICE9IEVtcHR5VmFsdWVUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9w
ZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJ
bnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJh
dG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2
NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHko
KSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBFbXB0eVZhbHVlVGFnOworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygp
ID09IFVuZGVmaW5lZFRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdWxsKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gTnVsbFRhZzsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAoreworICAgIHJldHVybiBpc1VuZGVmaW5l
ZCgpIHx8IGlzTnVsbCgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBjb25z
dAoreworICAgIHJldHVybiB0YWcoKSA9PSBDZWxsVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1Zh
bHVlOjppc0ludDMyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
dGFnKCkgPCBMb3dlc3RUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgcGF5bG9hZCgpOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFn
KCkgPT0gQm9vbGVhblRhZyAmJiAhcGF5bG9hZCgpOworfQorCitpbmxpbmUgdWludDMyX3QgSlNW
YWx1ZTo6dGFnKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0JpdHMudGFnOworfQogICAgIAot
ICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHUuYXNCaXRzLnBheWxvYWQ7Ci0gICAgfQoraW5saW5lIGludDMyX3QgSlNWYWx1
ZTo6cGF5bG9hZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNCaXRzLnBheWxvYWQ7Cit9CiAg
ICAgCi0gICAgaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQoaXNJbnQzMigpKTsKLSAgICAgICAgcmV0dXJuIHUuYXNCaXRzLnBheWxv
YWQ7Ci0gICAgfQoraW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKGlzSW50MzIoKSk7CisgICAgcmV0dXJuIHUuYXNCaXRzLnBheWxvYWQ7Cit9CiAg
ICAgCi0gICAgaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQoaXNEb3VibGUoKSk7Ci0gICAgICAgIHJldHVybiB1LmFzRG91YmxlOwot
ICAgIH0KK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3VibGUoKSBjb25zdAoreworICAgIEFT
U0VSVChpc0RvdWJsZSgpKTsKKyAgICByZXR1cm4gdS5hc0RvdWJsZTsKK30KICAgICAKLSAgICBB
TFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpc0NlbGwoKSk7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEpT
Q2VsbCo+KHUuYXNCaXRzLnBheWxvYWQpOwotICAgIH0KLQotICAgIEFMV0FZU19JTkxJTkUgSlNW
YWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlIGQpCi0gICAgewotICAgICAg
ICB1LmFzRG91YmxlID0gZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShp
bnQgaSkKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IEludDMyVGFnOwotICAgICAgICB1
LmFzQml0cy5wYXlsb2FkID0gaTsKLSAgICB9CitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1
ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHUuYXNCaXRzLnBheWxvYWQpOworfQorCitBTFdBWVNf
SU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQorewor
ICAgIHUuYXNEb3VibGUgPSBkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQgaSkK
K3sKKyAgICB1LmFzQml0cy50YWcgPSBJbnQzMlRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0g
aTsKK30KIAogI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCi0gICAgaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoaW50MzJfdCB0YWcsIGludDMyX3QgcGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIHUuYXNC
aXRzLnRhZyA9IHRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IHBheWxvYWQ7Ci0gICAg
fQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50MzJfdCB0YWcsIGludDMyX3QgcGF5bG9hZCkK
K3sKKyAgICB1LmFzQml0cy50YWcgPSB0YWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IHBheWxv
YWQ7Cit9CiAjZW5kaWYKIAotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGlzVHJ1ZSgpIHx8IGlzRmFsc2UoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlz
Qm9vbGVhbigpKTsKLSAgICAgICAgcmV0dXJuIHBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzSW50MzIoKSB8fCBp
c0RvdWJsZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAor
eworICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNlKCk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQm9vbGVhbigpKTsKKyAg
ICByZXR1cm4gcGF5bG9hZCgpOworfQogCiAjZWxzZSAvLyAhVVNFKEpTVkFMVUUzMl82NCkgaS5l
LiBVU0UoSlNWQUxVRTY0KQogCi0gICAgLy8gMHgwIGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkg
YmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBi
dXQgYSBwYXlsb2FkIG9mIDB4MCwgd2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2Uu
Ci0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gVmFsdWVFbXB0eTsKLSAgICB9Ci0KLSAgICAvLyAweDQgY2FuIG5ldmVyIG9jY3VyIG5hdHVy
YWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFs
dWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8g
cGFnZS4KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVU
YWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1
LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAg
ICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb25zdF9jYXN0PEpT
Q2VsbCo+KHB0cikpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29s
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0Owot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1
ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVy
LnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgPT0gVmFsdWVFbXB0eTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNVbmRlZmluZWQpOwotICAg
IH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNOdWxsKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTVHJ1ZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgp
ID09IEpTVmFsdWUoSlNGYWxzZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
YXNCb29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0g
ICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwotICAgIH0KLQotICAg
IGlubGluZSBpbnQzMl90IEpTVmFsdWU6OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKGlzSW50MzIoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90Pih1
LmFzSW50NjQpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRG91YmxlKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc051bWJlcigpICYmICFpc0ludDMyKCk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQotICAgIHsKLSAg
ICAgICAgdS5hc0ludDY0ID0gVmFsdWVOdWxsOwotICAgIH0KKy8vIDB4MCBjYW4gbmV2ZXIgb2Nj
dXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRpY2F0aW5nIGEgcG9p
bnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGluIHRoZSAoaW52YWxp
ZCkgemVybyBwYWdlLgoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQoreworICAgIHUuYXNJbnQ2
NCA9IFZhbHVlRW1wdHk7Cit9CisKKy8vIDB4NCBjYW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJl
Y2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRpY2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0
IGEgcGF5bG9hZCBvZiAweDQsIHdoaWNoIGlzIGluIHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgor
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQoreworICAg
IHUuYXNJbnQ2NCA9IFZhbHVlRGVsZXRlZDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
SlNDZWxsKiBwdHIpCit7CisgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KHB0cik7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRy
KQoreworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb25zdF9j
YXN0PEpTQ2VsbCo+KHB0cikpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1
ZTo6b3BlcmF0b3I9PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4g
dS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6
b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gdS5h
c0ludDY0ICE9IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNF
bXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBWYWx1ZUVtcHR5OworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTVW5kZWZpbmVkKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNOdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUo
SlNOdWxsKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNGYWxzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1Zh
bHVlKEpTRmFsc2UpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25z
dAoreworICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVHJ1ZSk7Cit9CisKK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OmFzSW50MzIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQzMl90Pih1LmFzSW50NjQpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJsZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzTnVtYmVyKCkgJiYgIWlzSW50MzIoKTsKK30KKworaW5s
aW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVl
TnVsbDsKK30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVmaW5lZFRh
ZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5kZWZpbmVkOwotICAgIH0KLQot
ICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVHJ1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlVHJ1ZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1
ZShKU0ZhbHNlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFsdWVGYWxzZTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0
Ci0gICAgewotICAgICAgICAvLyBVbmRlZmluZWQgYW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFs
dWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGluIHRoZSBleHRlbmRlZCB0YWcuCi0gICAgICAg
IHJldHVybiAodS5hc0ludDY0ICYgflRhZ0JpdFVuZGVmaW5lZCkgPT0gVmFsdWVOdWxsOwotICAg
IH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH4xKSA9PSBWYWx1ZUZhbHNlOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gISh1LmFzSW50NjQgJiBUYWdNYXNrKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAodS5hc0ludDY0
ICYgVGFnVHlwZU51bWJlcikgPT0gVGFnVHlwZU51bWJlcjsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
aW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQoZG91YmxlIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSk7Ci0gICAgfQotICAgIGlu
bGluZSBkb3VibGUgcmVpbnRlcnByZXRJbnQ2NFRvRG91YmxlKGludDY0X3QgdmFsdWUpCi0gICAg
ewotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOwotICAgIH0KLQot
ICAgIEFMV0FZU19JTkxJTkUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91
YmxlIGQpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldERvdWJsZVRvSW50
NjQoZCkgKyBEb3VibGVFbmNvZGVPZmZzZXQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBUYWdUeXBlTnVtYmVy
IHwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpOwotICAgIH0KLQotICAgIGlubGluZSBkb3VibGUg
SlNWYWx1ZTo6YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91Ymxl
KCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRJbnQ2NFRvRG91YmxlKHUuYXNJbnQ2NCAt
IERvdWJsZUVuY29kZU9mZnNldCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAmIFRhZ1R5
cGVOdW1iZXI7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gdS5wdHI7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRU
YWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVVbmRlZmluZWQ7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVHJ1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Cit9
CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCit7CisgICAgdS5hc0ludDY0
ID0gVmFsdWVGYWxzZTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWRPck51
bGwoKSBjb25zdAoreworICAgIC8vIFVuZGVmaW5lZCBhbmQgbnVsbCBzaGFyZSB0aGUgc2FtZSB2
YWx1ZSwgYmFyIHRoZSAndW5kZWZpbmVkJyBiaXQgaW4gdGhlIGV4dGVuZGVkIHRhZy4KKyAgICBy
ZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRlZmluZWQpID09IFZhbHVlTnVsbDsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKHUu
YXNJbnQ2NCAmIH4xKSA9PSBWYWx1ZUZhbHNlOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0NlbGwoKSBjb25zdAoreworICAgIHJldHVybiAhKHUuYXNJbnQ2NCAmIFRhZ01hc2spOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ludDMyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKHUu
YXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1iZXI7Cit9CisKK2lubGluZSBp
bnQ2NF90IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkb3VibGUgdmFsdWUpCit7CisgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSk7Cit9CitpbmxpbmUgZG91YmxlIHJlaW50
ZXJwcmV0SW50NjRUb0RvdWJsZShpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNl
X2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZTo6SlNWYWx1
ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlIGQpCit7CisgICAgdS5hc0ludDY0ID0gcmVpbnRl
cnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OworfQorCitpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShpbnQgaSkKK3sKKyAgICB1LmFzSW50NjQgPSBUYWdUeXBlTnVtYmVy
IHwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpOworfQorCitpbmxpbmUgZG91YmxlIEpTVmFsdWU6
OmFzRG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJu
IHJlaW50ZXJwcmV0SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQp
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXI7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNDZWxs
KiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAoreworICAgIEFTU0VSVChpc0NlbGwoKSk7CisgICAg
cmV0dXJuIHUucHRyOworfQogCiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAoraW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNTdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAmJiBh
c0NlbGwoKS0+aXNTdHJpbmcoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNQcmltaXRp
dmUoKSBjb25zdAoreworICAgIHJldHVybiAhaXNDZWxsKCkgfHwgYXNDZWxsKCktPmlzU3RyaW5n
KCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzR2V0dGVyU2V0dGVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzR2V0dGVyU2V0dGVyKCk7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXND
ZWxsKCkgJiYgYXNDZWxsKCktPmlzT2JqZWN0KCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6
OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZyYgcykgY29uc3QKK3sKKyAgICByZXR1
cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmdldFN0cmluZyhleGVjLCBzKTsKK30KKworaW5saW5l
IFN0cmluZyBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAg
IHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYykgOiBTdHJpbmcoKTsK
K30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEJhc2U+IFN0cmluZyBIYW5kbGVDb252ZXJ0ZXI8QmFz
ZSwgVW5rbm93bj46OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGpzVmFsdWUoKS5nZXRTdHJpbmcoZXhlYyk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNW
YWx1ZTo6Z2V0T2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwo
KS0+Z2V0T2JqZWN0KCkgOiAwOworfQorCitBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6Z2V0
VUludDMyKHVpbnQzMl90JiB2KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpIHsKKyAgICAg
ICAgaW50MzJfdCBpID0gYXNJbnQzMigpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGkpOworICAgICAgICByZXR1cm4gaSA+PSAwOworICAgIH0KKyAgICBpZiAoaXNEb3VibGUo
KSkgeworICAgICAgICBkb3VibGUgZCA9IGFzRG91YmxlKCk7CisgICAgICAgIHYgPSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oZCk7CisgICAgICAgIHJldHVybiB2ID09IGQ7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6dG9QcmltaXRpdmUoRXhl
Y1N0YXRlKiBleGVjLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvUHJpbWl0aXZlKGV4ZWMsIHBy
ZWZlcnJlZFR5cGUpIDogYXNWYWx1ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRQ
cmltaXRpdmVOdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYg
dmFsdWUpCit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBudW1iZXIgPSBhc0ludDMy
KCk7CisgICAgICAgIHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBpZiAoaXNEb3VibGUoKSkgeworICAgICAgICBudW1iZXIgPSBhc0RvdWJsZSgpOworICAg
ICAgICB2YWx1ZSA9ICp0aGlzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYg
KGlzQ2VsbCgpKQorICAgICAgICByZXR1cm4gYXNDZWxsKCktPmdldFByaW1pdGl2ZU51bWJlcihl
eGVjLCBudW1iZXIsIHZhbHVlKTsKKyAgICBpZiAoaXNUcnVlKCkpIHsKKyAgICAgICAgbnVtYmVy
ID0gMS4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgaWYgKGlzRmFsc2UoKSB8fCBpc051bGwoKSkgeworICAgICAgICBudW1iZXIgPSAw
LjA7CisgICAgICAgIHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBBU1NFUlQoaXNVbmRlZmluZWQoKSk7CisgICAgbnVtYmVyID0gUU5hTjsKKyAgICB2YWx1
ZSA9ICp0aGlzOworICAgIHJldHVybiB0cnVlOworfQorCitBTFdBWVNfSU5MSU5FIGRvdWJsZSBK
U1ZhbHVlOjp0b051bWJlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50
MzIoKSkKKyAgICAgICAgcmV0dXJuIGFzSW50MzIoKTsKKyAgICBpZiAoaXNEb3VibGUoKSkKKyAg
ICAgICAgcmV0dXJuIGFzRG91YmxlKCk7CisgICAgcmV0dXJuIHRvTnVtYmVyU2xvd0Nhc2UoZXhl
Yyk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBl
eGVjKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpIDogdG9PYmplY3RTbG93Q2FzZShleGVj
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpT
VmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3Qo
ZXhlYywgZ2xvYmFsT2JqZWN0KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZ2xvYmFsT2JqZWN0
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU1ZhbHVlSW5saW5lc19o
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dpdGhTY29wZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3Bw
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dp
dGhTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTV2l0aFNjb3BlOjpz
X2luZm8gPSB7ICJXaXRoU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTV2l0aFNjb3BlKSB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNXcmFwcGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgTWFrcyBPcmxv
dmljaAotICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSwgSW5jLgorICogIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOSwgMjAxMiBBcHBsZSwgSW5jLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dy
YXBwZXJPYmplY3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpT
QyB7CiAKIEFTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKEpTV3JhcHBlck9iamVjdCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5j
bHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvZHRvYS5oPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsy
Miw3IEBACiAKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZUNv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJOYW1lUHJvdG90eXBlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTmFtZVByb3RvdHlwZS5o
IgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJOYXRpdmVFcnJvclByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3Rv
dHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQs
NyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIK
ICNpbmNsdWRlICJOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiTnVtYmVyQ29uc3RydWN0
b3IuaCIKIAogI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiTnVtYmVyUHJvdG90eXBlLmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJQcm90b3R5cGUuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVj
dFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0
eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1
ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTYg
KzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNpbmNsdWRlICJMZXhlci5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNoZS5oIgotI2luY2x1ZGUg
InlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJVC5oIgorI2luY2x1ZGUgIllhcnIu
aCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxz
dGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0KICNkZWZpbmUgUkVHRVhQX0ZVTkNf
VEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFuIChob2RvdmFu
QGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1
ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRSZXN1bHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJSZWdFeHBDYWNoZWRSZXN1bHQuaCIKIAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNB
cnJheS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIK
ICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJy
YXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVnRXhw
TWF0Y2hlc0FycmF5LmgiCiAKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNs
dWRlICJMZXhlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNo
ZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNTdHJp
bmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk9iamVjdFByb3Rv
dHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKICNpbmNsdWRlICJSZWdFeHAuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNoZS5oIgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmlu
Z3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU21hbGxT
dHJpbmdzLmgiCiAKICNpbmNsdWRlICJIZWFwUm9vdFZpc2l0b3IuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmlu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5
VmFsdWVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
Q2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTbG90Lmgi
CiAjaW5jbHVkZSAiUmVqZWN0LmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZh
dGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIlN0cmljdEV2YWxBY3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiAr
MjUsNyBAQAogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU3RyaW5nUHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJFcnJvci5oIgog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9u
Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw3IEBACiAK
ICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVD
aGFpbi5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3Bw
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1l
b3V0Q2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1
ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogCiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTItMjMgIEZpbGlwIFBp
emxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBUaGUgSklUVGh1bmtzIGNsYXNzIHNo
b3VsZCBiZSBpbiBpdHMgb3duIGZpbGUsIGFuZCBkb2luZyBzbyBzaG91bGQgbm90IGJyZWFrIHRo
ZSBidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1Njk2CisKKyAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAg
ICBBbGwgLmNwcCBmaWxlcyB0aGF0IHVzZSB0aGUgSlNDIGludGVybmFsIEFQSSBtdXN0IG5vdyB0
cmFuc2l0aXZlbHkgaW5jbHVkZQorICAgICAgICBPcGVyYXRpb25zLmgsIGFuZCBub25lIG9mIHRo
ZSBtYWpvciBKU0MgaGVhZGVycyBkbyBpdCBmb3IgeW91IHRvIGF2b2lkCisgICAgICAgIGNpcmN1
bGFyaXR5LiBXZWJDb3JlIGRvZXNuJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBjaXJjdWxhcml0eSB3
aXRoIEpTQywgc28KKyAgICAgICAgdGhpcyBjaGFuZ2VzIGFsbCBvZiB0aGUgbWFqb3IgV2ViQ29y
ZSBKU0MgYmFzZSBoZWFkZXJzIHRvIGluY2x1ZGUKKyAgICAgICAgT3BlcmF0aW9ucy5oLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oOgorICAgICAgICAq
IGJyaWRnZS9qc2MvQnJpZGdlSlNDLmg6CisKIDIwMTItMTItMjMgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTcGxpdCBmYXN0LXJlamVjdGlvbiBm
aWx0ZXIgbG9naWMgb2ZmIFNlbGVjdG9yQ2hlY2tlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiAr
NDMsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
TG9va3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PYmplY3RQcm90b3R5cGUuaD4KKyNpbmNsdWRl
IDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2lu
Y2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxoZWFwL1dl
YWsuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgo=
</data>
<flag name="commit-queue"
          id="198041"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180685</attachid>
            <date>2012-12-24 12:09:02 -0800</date>
            <delta_ts>2012-12-24 13:26:36 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>206698</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5o
IgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxp
bmVzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3MSArMjYsNTgxIEBACiAjaWZu
ZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlubGluZXNfaAogCisjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKQotICAgICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJl
cihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IG9u
IEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4gdG9JbnQzMihleGVjKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOwotICAgIH0KLQotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9J
bnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051
bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigpKTsKLSAgICAgICAgcmV0dXJu
IGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFyIGkpCi0gICAgewotICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25nIGkpCi0g
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJs
ZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNp
Z25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1
ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAgdi51LmFzSW50NjQgPSBlbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQoraW5saW5lIHVpbnQzMl90IEpT
VmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICAvLyBTZWUgY29t
bWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1cm4gdG9JbnQzMihleGVjKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUludDMyKCkpOworICAgIHJl
dHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICByZXR1cm4gaXNJbnQzMigpID8g
YXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUganNOYU4oKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShj
aGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQoreworICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgc2hv
cnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQoreworICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29k
ZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
LCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
dGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFh
c0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKKyAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCkpOworfQorCitpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0
dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVjb2Rl
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAgIEpTVmFsdWUgdjsKKyAgICB2
LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVybiB2OworfQogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAg
ICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIp
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAg
aWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxUYWc7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8SlND
ZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2wo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7
Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51
LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFn
KCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8
fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Ci0g
ICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzQml0
cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5h
c0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5h
c0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRl
cnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxU
YWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8
SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFnKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50YWc7Ci0gICAgfQoraW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRUYWc7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IE51bGxU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQ2VsbFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0VGFnOworfQorCitpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29s
ZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsK
K30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXls
b2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAg
IH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAoreworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6
OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzSW50MzIoKSk7Ci0gICAg
ICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFs
dWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAg
ICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJuIHUu
YXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcs
IGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9IGQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzQml0cy50
YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Ci0gICAgfQorQUxX
QVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91YmxlID0gZDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxv
YWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMy
X3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0JpdHMudGFnID0gdGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlmCiAKLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQz
MigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNC
b29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNl
KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiBwYXls
b2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxz
ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAoreworICAg
IEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxvYWQoKTsKK30KIAogI2Vsc2Ug
Ly8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIDB4MCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgLy8g
MHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAs
IGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2gg
aXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3Qg
SlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0lu
dDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
OjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTRmFsc2UpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFs
dWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNO
dW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlTnVsbDsKLSAg
ICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRh
ZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgw
LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OworfQorCisvLyAweDQgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQoreworICAgIHUuYXNJbnQ2NCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQ7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
SW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5l
ZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAg
IHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwor
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc051bWJlcigp
ICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBW
YWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Ry
dWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVW5kZWZpbmVkIGFu
ZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1bmRlZmluZWQnIGJpdCBpbiB0
aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRl
ZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1i
ZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRlcnByZXREb3VibGVUb0ludDY0
KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJlaW50ZXJwcmV0SW50NjRUb0Rv
dWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxk
b3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFs
dWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIEFMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5k
ZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7CisgICAg
dS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0Zh
bHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmluZWQg
YW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGlu
IHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZp
bmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gISh1
LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQo
ZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
OworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitBTFdB
WVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKK30K
KworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0lu
dDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwor
fQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAogI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWlzQ2Vs
bCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJp
bmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJp
bmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0
U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBT
dHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwor
fQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKK30KKworQUxXQVlT
X0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKKyAgICAg
ICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAgICAgcmV0dXJuIGkgPj0gMDsK
KyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJs
ZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOworICAgICAgICByZXR1
cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2Vs
bCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpc0ludDMyKCkpIHsK
KyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
bnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIGFzQ2Vs
bCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7CisgICAgaWYgKGlz
VHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxs
KCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOworICAg
IG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIHJl
dHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNs
b3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUu
aCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3BlIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkgfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTIgQXBwbGUs
IEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1l
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90
b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJO
dW1iZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBDYWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJ
VC5oIgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0K
ICNkZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJl
bmF0YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZWRSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdF
eHBDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhw
UHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgog
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNp
b25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAx
Mi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBK
SVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5nIHNvIHNo
b3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0g
V2VpbmlnLgorCisgICAgICAgIEFsbCAuY3BwIGZpbGVzIHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJu
YWwgQVBJIG11c3Qgbm93IHRyYW5zaXRpdmVseSBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMu
aCwgYW5kIG5vbmUgb2YgdGhlIG1ham9yIEpTQyBoZWFkZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZv
aWQKKyAgICAgICAgY2lyY3VsYXJpdHkuIFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFi
b3V0IGNpcmN1bGFyaXR5IHdpdGggSlNDLCBzbworICAgICAgICB0aGlzIGNoYW5nZXMgYWxsIG9m
IHRoZSBtYWpvciBXZWJDb3JlIEpTQyBiYXNlIGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICBP
cGVyYXRpb25zLmguCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmg6CisgICAgICAgICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0xMi0yMyAg
RGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwbGl0
IGZhc3QtcmVqZWN0aW9uIGZpbHRlciBsb2dpYyBvZmYgU2VsZWN0b3JDaGVja2VyLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCiAKICNpbmNs
dWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Mb29rdXAu
aD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTIgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLQorI2luY2x1ZGUg
PHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gMTM4NDI5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8
aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5j
bHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU1N0cmluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+Cg==
</data>
<flag name="commit-queue"
          id="198044"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180689</attachid>
            <date>2012-12-24 13:26:36 -0800</date>
            <delta_ts>2012-12-24 14:02:53 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>211863</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5o
IgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxp
bmVzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3MSArMjYsNTgxIEBACiAjaWZu
ZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlubGluZXNfaAogCisjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKQotICAgICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJl
cihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IG9u
IEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4gdG9JbnQzMihleGVjKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOwotICAgIH0KLQotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9J
bnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051
bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigpKTsKLSAgICAgICAgcmV0dXJu
IGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFyIGkpCi0gICAgewotICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25nIGkpCi0g
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJs
ZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNp
Z25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1
ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAgdi51LmFzSW50NjQgPSBlbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQoraW5saW5lIHVpbnQzMl90IEpT
VmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICAvLyBTZWUgY29t
bWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1cm4gdG9JbnQzMihleGVjKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUludDMyKCkpOworICAgIHJl
dHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICByZXR1cm4gaXNJbnQzMigpID8g
YXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUganNOYU4oKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShj
aGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQoreworICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgc2hv
cnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQoreworICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29k
ZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
LCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
dGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFh
c0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKKyAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCkpOworfQorCitpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0
dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVjb2Rl
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAgIEpTVmFsdWUgdjsKKyAgICB2
LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVybiB2OworfQogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAg
ICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIp
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAg
aWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxUYWc7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8SlND
ZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2wo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7
Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51
LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFn
KCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8
fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Ci0g
ICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzQml0
cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5h
c0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5h
c0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRl
cnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxU
YWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8
SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFnKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50YWc7Ci0gICAgfQoraW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRUYWc7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IE51bGxU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQ2VsbFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0VGFnOworfQorCitpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29s
ZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsK
K30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXls
b2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAg
IH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAoreworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6
OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzSW50MzIoKSk7Ci0gICAg
ICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFs
dWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAg
ICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJuIHUu
YXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcs
IGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9IGQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzQml0cy50
YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Ci0gICAgfQorQUxX
QVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91YmxlID0gZDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxv
YWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMy
X3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0JpdHMudGFnID0gdGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlmCiAKLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQz
MigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNC
b29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNl
KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiBwYXls
b2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxz
ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAoreworICAg
IEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxvYWQoKTsKK30KIAogI2Vsc2Ug
Ly8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIDB4MCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgLy8g
MHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAs
IGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2gg
aXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3Qg
SlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0lu
dDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
OjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTRmFsc2UpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFs
dWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNO
dW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlTnVsbDsKLSAg
ICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRh
ZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgw
LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OworfQorCisvLyAweDQgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQoreworICAgIHUuYXNJbnQ2NCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQ7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
SW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5l
ZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAg
IHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwor
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc051bWJlcigp
ICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBW
YWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Ry
dWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVW5kZWZpbmVkIGFu
ZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1bmRlZmluZWQnIGJpdCBpbiB0
aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRl
ZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1i
ZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRlcnByZXREb3VibGVUb0ludDY0
KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJlaW50ZXJwcmV0SW50NjRUb0Rv
dWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxk
b3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFs
dWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIEFMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5k
ZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7CisgICAg
dS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0Zh
bHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmluZWQg
YW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGlu
IHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZp
bmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gISh1
LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQo
ZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
OworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitBTFdB
WVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKK30K
KworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0lu
dDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwor
fQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAogI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWlzQ2Vs
bCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJp
bmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJp
bmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0
U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBT
dHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwor
fQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKK30KKworQUxXQVlT
X0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKKyAgICAg
ICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAgICAgcmV0dXJuIGkgPj0gMDsK
KyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJs
ZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOworICAgICAgICByZXR1
cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2Vs
bCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpc0ludDMyKCkpIHsK
KyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
bnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIGFzQ2Vs
bCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7CisgICAgaWYgKGlz
VHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxs
KCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOworICAg
IG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIHJl
dHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNs
b3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUu
aCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3BlIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkgfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTIgQXBwbGUs
IEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1l
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90
b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJO
dW1iZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBDYWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJ
VC5oIgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0K
ICNkZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJl
bmF0YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZWRSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdF
eHBDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhw
UHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgog
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNp
b25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAx
Mi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBK
SVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5nIHNvIHNo
b3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0g
V2VpbmlnLgorCisgICAgICAgIEFsbCAuY3BwIGZpbGVzIHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJu
YWwgQVBJIG11c3Qgbm93IHRyYW5zaXRpdmVseSBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMu
aCwgYW5kIG5vbmUgb2YgdGhlIG1ham9yIEpTQyBoZWFkZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZv
aWQKKyAgICAgICAgY2lyY3VsYXJpdHkuIFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFi
b3V0IGNpcmN1bGFyaXR5IHdpdGggSlNDLCBzbworICAgICAgICB0aGlzIGNoYW5nZXMgYWxsIG9m
IHRoZSBtYWpvciBXZWJDb3JlIEpTQyBiYXNlIGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICBP
cGVyYXRpb25zLmguCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmg6CisgICAgICAgICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0xMi0yMyAg
RGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwbGl0
IGZhc3QtcmVqZWN0aW9uIGZpbHRlciBsb2dpYyBvZmYgU2VsZWN0b3JDaGVja2VyLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCiAKICNpbmNs
dWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Mb29rdXAu
aD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTIgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLQorI2luY2x1ZGUg
PHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVk
ZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMu
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJh
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRXcmFwcGFibGUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CisjaW5jbHVkZSA8cnVudGltZS9P
cGVyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvanNjL0JyaWRnZUpTQy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3IEBACiAKICNpZiBVU0Uo
SlNDKQogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9PcGVyYXRpb25zLmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDYgKzUyLDcgQEAKIAogI2lmIFVTRShKU0MpCiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiAj
aWYgRU5BQkxFKFdFQkdMKSAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxv
YWRlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lmIFVTRShK
U0MpCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3
RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5W
aWV3RWZsLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvcGx1Z2lucy9l
ZmwvUGx1Z2luVmlld0VmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNp
bmNsdWRlICJydW50aW1lL0pTTG9jay5oIgorI2luY2x1ZGUgInJ1bnRpbWUvT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjaW5jbHVk
ZSA8RXZhcy5oPgpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
ICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAKICNpbmNsdWRlIDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlT
YW1wbGVyTGludXguY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxzdHJpbmcu
aD4KICNpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4K
IAogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Zpc2libGVQ
b3NpdGlvbi5oPgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vz
c01haW5FZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVk
ZSA8bGlic291cC9zb3VwLWNhY2hlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8dW5p
c3RkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5oIgorI2luY2x1ZGUgInJ1bnRpbWUvT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPEVj
b3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVkamUuaD4K
</data>
<flag name="commit-queue"
          id="198047"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180690</attachid>
            <date>2012-12-24 14:02:53 -0800</date>
            <delta_ts>2012-12-24 14:26:57 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>jitthunks.patch</filename>
            <type>text/plain</type>
            <size>214613</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5o
IgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxp
bmVzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3MSArMjYsNTgxIEBACiAjaWZu
ZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlubGluZXNfaAogCisjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKQotICAgICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJl
cihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IG9u
IEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4gdG9JbnQzMihleGVjKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOwotICAgIH0KLQotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9J
bnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051
bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigpKTsKLSAgICAgICAgcmV0dXJu
IGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFyIGkpCi0gICAgewotICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25nIGkpCi0g
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJs
ZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNp
Z25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1
ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAgdi51LmFzSW50NjQgPSBlbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQoraW5saW5lIHVpbnQzMl90IEpT
VmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICAvLyBTZWUgY29t
bWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1cm4gdG9JbnQzMihleGVjKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUludDMyKCkpOworICAgIHJl
dHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICByZXR1cm4gaXNJbnQzMigpID8g
YXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUganNOYU4oKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShj
aGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQoreworICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgc2hv
cnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQoreworICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29k
ZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
LCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
dGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFh
c0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKKyAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCkpOworfQorCitpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0
dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVjb2Rl
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAgIEpTVmFsdWUgdjsKKyAgICB2
LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVybiB2OworfQogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAg
ICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIp
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAg
aWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxUYWc7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8SlND
ZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2wo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7
Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51
LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFn
KCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8
fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Ci0g
ICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzQml0
cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5h
c0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5h
c0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRl
cnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxU
YWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8
SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFnKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50YWc7Ci0gICAgfQoraW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRUYWc7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IE51bGxU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQ2VsbFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0VGFnOworfQorCitpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29s
ZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsK
K30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXls
b2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAg
IH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAoreworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6
OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzSW50MzIoKSk7Ci0gICAg
ICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFs
dWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAg
ICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJuIHUu
YXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcs
IGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9IGQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzQml0cy50
YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Ci0gICAgfQorQUxX
QVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91YmxlID0gZDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxv
YWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMy
X3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0JpdHMudGFnID0gdGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlmCiAKLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQz
MigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNC
b29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNl
KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiBwYXls
b2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxz
ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAoreworICAg
IEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxvYWQoKTsKK30KIAogI2Vsc2Ug
Ly8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIDB4MCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgLy8g
MHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAs
IGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2gg
aXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3Qg
SlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0lu
dDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
OjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTRmFsc2UpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFs
dWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNO
dW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlTnVsbDsKLSAg
ICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRh
ZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgw
LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OworfQorCisvLyAweDQgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQoreworICAgIHUuYXNJbnQ2NCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQ7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
SW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5l
ZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAg
IHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwor
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc051bWJlcigp
ICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBW
YWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Ry
dWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVW5kZWZpbmVkIGFu
ZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1bmRlZmluZWQnIGJpdCBpbiB0
aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRl
ZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1i
ZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRlcnByZXREb3VibGVUb0ludDY0
KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJlaW50ZXJwcmV0SW50NjRUb0Rv
dWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxk
b3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFs
dWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIEFMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5k
ZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7CisgICAg
dS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0Zh
bHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmluZWQg
YW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGlu
IHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZp
bmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gISh1
LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQo
ZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
OworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitBTFdB
WVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKK30K
KworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0lu
dDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwor
fQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAogI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWlzQ2Vs
bCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJp
bmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJp
bmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0
U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBT
dHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwor
fQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKK30KKworQUxXQVlT
X0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKKyAgICAg
ICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAgICAgcmV0dXJuIGkgPj0gMDsK
KyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJs
ZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOworICAgICAgICByZXR1
cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2Vs
bCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpc0ludDMyKCkpIHsK
KyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
bnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIGFzQ2Vs
bCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7CisgICAgaWYgKGlz
VHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxs
KCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOworICAg
IG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIHJl
dHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNs
b3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUu
aCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3BlIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkgfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTIgQXBwbGUs
IEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1l
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90
b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJO
dW1iZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBDYWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJ
VC5oIgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0K
ICNkZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJl
bmF0YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZWRSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdF
eHBDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhw
UHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgog
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNp
b25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAx
Mi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBK
SVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5nIHNvIHNo
b3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0g
V2VpbmlnLgorCisgICAgICAgIEFsbCAuY3BwIGZpbGVzIHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJu
YWwgQVBJIG11c3Qgbm93IHRyYW5zaXRpdmVseSBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMu
aCwgYW5kIG5vbmUgb2YgdGhlIG1ham9yIEpTQyBoZWFkZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZv
aWQKKyAgICAgICAgY2lyY3VsYXJpdHkuIFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFi
b3V0IGNpcmN1bGFyaXR5IHdpdGggSlNDLCBzbworICAgICAgICB0aGlzIGNoYW5nZXMgYWxsIG9m
IHRoZSBtYWpvciBXZWJDb3JlIEpTQyBiYXNlIGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICBP
cGVyYXRpb25zLmguCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmg6CisgICAgICAgICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0xMi0yMyAg
RGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwbGl0
IGZhc3QtcmVqZWN0aW9uIGZpbHRlciBsb2dpYyBvZmYgU2VsZWN0b3JDaGVja2VyLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCiAKICNpbmNs
dWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
VmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
QXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXlCYXNlLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9P
cGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9PYmplY3RQcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjks
NyArMjksNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlv
bnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5s
aW5lcy5oPgogI2luY2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBv
cnRDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VQb3J0Q3VzdG9tLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiAr
MzMsNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pT
VmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJOb2RlRmlsdGVy
Q29uZGl0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9u
Z0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50
aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRXcmFwcGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRXcmFwcGFibGUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CisjaW5jbHVkZSA8
cnVudGltZS9PcGVyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAj
aW5jbHVkZSA8cnVudGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvUmVnRXhwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9SZWdFeHBP
YmplY3QuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRp
b25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcg
QEAKIAogI2lmIFVTRShKU0MpCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbERhdGEuaD4KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogCiAjaWYgVVNFKEpTQykKICNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR0wpICAgIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlTG9hZGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3
IEBACiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
ZWZsL1BsdWdpblZpZXdFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvZWZsL1BsdWdpblZpZXdFZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEs
NiArNDEsNyBAQAogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJucHJ1bnRp
bWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSlNMb2NrLmgiCisjaW5jbHVkZSAicnVudGlt
ZS9PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3Jl
X1guaD4KICNpbmNsdWRlIDxFdmFzLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJK
U0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIK
IAogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9y
eVNhbXBsZXJMaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2xp
bnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWVtb3J5
U3RhdGlzdGljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2lu
Y2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
T3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEy
NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
T3BlcmF0aW9ucy5oPgogCiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmlzaWJsZVBvc2l0aW9uLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nl
c3MuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtY2FjaGUuaD4KICNpbmNsdWRlIDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4K
ICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
bWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAicnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8
RWRqZS5oPgo=
</data>
<flag name="commit-queue"
          id="198048"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180691</attachid>
            <date>2012-12-24 14:26:57 -0800</date>
            <delta_ts>2012-12-24 19:28:09 -0800</delta_ts>
            <desc>trying to touch Platform.h</desc>
            <filename>jitthunks2.patch</filename>
            <type>text/plain</type>
            <size>215114</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5o
IgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxp
bmVzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3MSArMjYsNTgxIEBACiAjaWZu
ZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlubGluZXNfaAogCisjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKQotICAgICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJl
cihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IG9u
IEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4gdG9JbnQzMihleGVjKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOwotICAgIH0KLQotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9J
bnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051
bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigpKTsKLSAgICAgICAgcmV0dXJu
IGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFyIGkpCi0gICAgewotICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25nIGkpCi0g
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJs
ZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNp
Z25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1
ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAgdi51LmFzSW50NjQgPSBlbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQoraW5saW5lIHVpbnQzMl90IEpT
VmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICAvLyBTZWUgY29t
bWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1cm4gdG9JbnQzMihleGVjKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUludDMyKCkpOworICAgIHJl
dHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICByZXR1cm4gaXNJbnQzMigpID8g
YXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUganNOYU4oKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShj
aGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQoreworICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgc2hv
cnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQoreworICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29k
ZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
LCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
dGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFh
c0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKKyAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCkpOworfQorCitpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0
dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVjb2Rl
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAgIEpTVmFsdWUgdjsKKyAgICB2
LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVybiB2OworfQogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAg
ICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIp
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAg
aWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxUYWc7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8SlND
ZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2wo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7
Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51
LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFn
KCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8
fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Ci0g
ICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzQml0
cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5h
c0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5h
c0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRl
cnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxU
YWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8
SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFnKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50YWc7Ci0gICAgfQoraW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRUYWc7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IE51bGxU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQ2VsbFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0VGFnOworfQorCitpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29s
ZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsK
K30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXls
b2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAg
IH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAoreworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6
OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzSW50MzIoKSk7Ci0gICAg
ICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFs
dWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAg
ICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJuIHUu
YXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcs
IGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9IGQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzQml0cy50
YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Ci0gICAgfQorQUxX
QVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91YmxlID0gZDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxv
YWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMy
X3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0JpdHMudGFnID0gdGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlmCiAKLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQz
MigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNC
b29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNl
KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiBwYXls
b2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxz
ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAoreworICAg
IEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxvYWQoKTsKK30KIAogI2Vsc2Ug
Ly8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIDB4MCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgLy8g
MHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAs
IGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2gg
aXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3Qg
SlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0lu
dDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
OjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTRmFsc2UpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFs
dWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNO
dW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlTnVsbDsKLSAg
ICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRh
ZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgw
LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OworfQorCisvLyAweDQgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQoreworICAgIHUuYXNJbnQ2NCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQ7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
SW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5l
ZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAg
IHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwor
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc051bWJlcigp
ICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBW
YWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Ry
dWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVW5kZWZpbmVkIGFu
ZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1bmRlZmluZWQnIGJpdCBpbiB0
aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRl
ZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1i
ZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRlcnByZXREb3VibGVUb0ludDY0
KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJlaW50ZXJwcmV0SW50NjRUb0Rv
dWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxk
b3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFs
dWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIEFMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5k
ZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7CisgICAg
dS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0Zh
bHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmluZWQg
YW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGlu
IHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZp
bmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gISh1
LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQo
ZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
OworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitBTFdB
WVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKK30K
KworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0lu
dDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwor
fQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAogI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWlzQ2Vs
bCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJp
bmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJp
bmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0
U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBT
dHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwor
fQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKK30KKworQUxXQVlT
X0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKKyAgICAg
ICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAgICAgcmV0dXJuIGkgPj0gMDsK
KyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJs
ZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOworICAgICAgICByZXR1
cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2Vs
bCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpc0ludDMyKCkpIHsK
KyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
bnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIGFzQ2Vs
bCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7CisgICAgaWYgKGlz
VHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxs
KCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOworICAg
IG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIHJl
dHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNs
b3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUu
aCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3BlIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkgfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTIgQXBwbGUs
IEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1l
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90
b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJO
dW1iZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBDYWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJ
VC5oIgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0K
ICNkZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJl
bmF0YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZWRSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdF
eHBDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhw
UHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgog
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNp
b25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
IC8qIEluY2x1ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCiAjaW5jbHVkZSA8d3RmL0Nv
bXBpbGVyLmg+CiAKKwogLyogPT09PSBQTEFURk9STSBoYW5kbGVzIE9TLCBvcGVyYXRpbmcgZW52
aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5kCiAgICBDUFUuIFRoaXMgbWFjcm8gd2lsbCBiZSBw
aGFzZWQgb3V0IGluIGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24KICAgIG1hY3JvcywgcG9s
aWN5IGRlY2lzaW9uIG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRlZmluaXRpb25zLiA9PT09
ICovCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMi0yMyAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBKSVRUaHVua3MgY2xh
c3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5nIHNvIHNob3VsZCBub3QgYnJl
YWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnLgorCisg
ICAgICAgIEFsbCAuY3BwIGZpbGVzIHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJuYWwgQVBJIG11c3Qg
bm93IHRyYW5zaXRpdmVseSBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMuaCwgYW5kIG5vbmUg
b2YgdGhlIG1ham9yIEpTQyBoZWFkZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZvaWQKKyAgICAgICAg
Y2lyY3VsYXJpdHkuIFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGNpcmN1bGFy
aXR5IHdpdGggSlNDLCBzbworICAgICAgICB0aGlzIGNoYW5nZXMgYWxsIG9mIHRoZSBtYWpvciBX
ZWJDb3JlIEpTQyBiYXNlIGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICBPcGVyYXRpb25zLmgu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAg
ICAgICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0xMi0yMyAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwbGl0IGZhc3QtcmVqZWN0
aW9uIGZpbHRlciBsb2dpYyBvZmYgU2VsZWN0b3JDaGVja2VyLgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCiAKICNpbmNsdWRlIDxydW50aW1l
L0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXlCYXNlLmg+CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksNyBAQAog
CiAjaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxydW50aW1lL0pT
R2xvYmFsT2JqZWN0Lmg+Ci0KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogCiAj
aW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgi
CiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFw
cGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0V3JhcHBhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVy
YXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSA8cnVu
dGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRp
b25zLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvUmVnRXhwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9SZWdFeHBPYmplY3QuaD4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCiAjaW5jbHVkZSA8
cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4K
KyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAKIAogI2lmIFVT
RShKU0MpCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbERhdGEuaD4KKyNpbmNsdWRlIDxydW50
aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoV0VCR0wpICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
TG9hZGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgVVNF
KEpTQykKICNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdpblZp
ZXdFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdp
blZpZXdFZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L2VmbC9QbHVnaW5WaWV3RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgog
I2luY2x1ZGUgInJ1bnRpbWUvSlNMb2NrLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNs
dWRlIDxFdmFzLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4K
KyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKIAogI2luY2x1ZGUg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9y
eVNhbXBsZXJMaW51eC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWVtb3J5U3RhdGlzdGljcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgogI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogCiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJs
ZVBvc2l0aW9uLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9j
ZXNzTWFpbkVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9l
ZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAtY2FjaGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx1
bmlzdGQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1
ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8
RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgo=
</data>
<flag name="commit-queue"
          id="198049"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180696</attachid>
            <date>2012-12-24 19:28:09 -0800</date>
            <delta_ts>2013-01-10 14:31:43 -0800</delta_ts>
            <desc>trying more things</desc>
            <filename>jitthunks2.patch</filename>
            <type>text/plain</type>
            <size>215473</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NDMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NSBA
QAorMjAxMi0xMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCB3YXMgc3VwcG9zZWQg
dG8ganVzdCBtb3ZlIEpJVFRodW5rcyBpbnRvIGl0cyBvd24gZmlsZS4gQnV0IHRoZW4gSQorICAg
ICAgICByZWFsaXplZCB0aGF0IHRoZXJlIGlzIGEgaG9ycmlibGUgY2lyY3VsYXIgZGVwZW5kZW5j
eSBjaGFpbiBiZXR3ZWVuIEpTQ2VsbCwKKyAgICAgICAgSlNHbG9iYWxEYXRhLCBDYWxsRnJhbWUs
IGFuZCBXZWFrLCB3aGljaCBvbmx5IHdvcmtzIGJlY2F1c2Ugb2YgbWFnaWNhbCBpbmNsdWRlCisg
ICAgICAgIG9yZGVyIGluIEpJVFN0dWJzLmgsIGFuZCB0aGUgZmFjdCB0aGF0IEpTR2xvYmFsRGF0
YS5oIGluY2x1ZGVzIEpJVFN0dWJzLmgKKyAgICAgICAgYmVmb3JlIGl0IGluY2x1ZGVzIEpTQ2Vs
bCBvciBKU1ZhbHVlLgorICAgICAgICAKKyAgICAgICAgSSBmaXJzdCB0cmllZCB0byBqdXN0IGdl
dCBKSVRUaHVua3MuaCB0byBqdXN0IG1hZ2ljYWxseSBkbyB0aGUgc2FtZSBwb2ludGxlc3MKKyAg
ICAgICAgaW5jbHVkZXMgdGhhdCBKSVRTdHVicy5oIGhhZCwgYnV0IHRoZW4gSSBkZWNpZGVkIHRv
IGFjdHVhbGx5IGZpeCB0aGUgdW5kZXJmbHlpbmcKKyAgICAgICAgcHJvYmxlbSwgd2hpY2ggd2Fz
IHRoYXQgSlNDZWxsIG5lZWRlZCBDYWxsRnJhbWUsIENhbGxGcmFtZSBuZWVkZWQgSlNHbG9iYWxE
YXRhLAorICAgICAgICBKU0dsb2JhbERhdGEgbmVlZGVkIEpJVFRodW5rcywgSklUVGh1bmtzIG5l
ZWRlZCBXZWFrLCBhbmQgV2VhayBuZWVkZWQgSlNDZWxsLgorICAgICAgICBOb3csIGFsbCBvZiBK
U0NlbGwncyBvdXRnb2luZyBkZXBlbmRlbmNpZXMgYXJlIHBsYWNlZCBpbiBKU0NlbGxJbmxpbmVz
LmguIFRoaXMKKyAgICAgICAgYWxzbyBnYXZlIG1lIGFuIG9wcG9ydHVuaXR5IHRvIG1vdmUgSlNW
YWx1ZSBpbmxpbmUgbWV0aG9kcyBmcm9tIEpTQ2VsbC5oIGludG8KKyAgICAgICAgSlNWYWx1ZUlu
bGluZXMuaC4gQnV0IHRvIG1ha2UgdGhpcyByZWFsbHkgd29yaywgSSBuZWVkZWQgdG8gcmVtb3Zl
IGluY2x1ZGVzIG9mCisgICAgICAgICpJbmxpbmVzLmggZnJvbSBvdGhlciBoZWFkZXJzIChDb2Rl
QmxvY2suaCBmb3IgZXhhbXBsZSBpbmNsdWRlZCBKU1ZhbHVlSW5saW5lcy5oLAorICAgICAgICB3
aGljaCBkZWZlYXRzIHRoZSB3aG9sZSBlbnRpcmUgcHVycG9zZSBvZiBoYXZpbmcgYW4gSW5saW5l
cy5oIGZpbGUpLCBhbmQgSSBuZWVkZWQKKyAgICAgICAgdG8gYWRkIGluY2x1ZGVzIG9mICpJbmxp
bmVzLmggaW50byBhIGJ1bmNoIG9mIC5jcHAgZmlsZXMuIEkgZGlkIHRoaXMgbW9zdGx5IGJ5Cisg
ICAgICAgIGhhdmluZyAuY3BwIGZpbGVzIGluY2x1ZGUgT3BlcmF0aW9ucy5oLiBJbiBmdXR1cmUs
IGlmIHlvdSdyZSBhZGRpbmcgYSAuY3BwIGZpbGUKKyAgICAgICAgdG8gSlNDLCB5b3UnbGwgYWxt
b3N0IGNlcnRhaW5seSBoYXZlIHRvIGluY2x1ZGUgT3BlcmF0aW9ucy5oIHVubGVzcyB5b3UgZW5q
b3kKKyAgICAgICAgbGluayBlcnJvcnMuCisKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6
CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRS
ZWYuY3BwOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
U2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5j
cHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBKU0NUeXBlZEFycmF5U3R1YnMuaDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxl
LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAqIGRmZy9ERkdK
SVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAgIChERkcpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckZQUik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAg
ICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlU2V0LmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5o
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBq
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVFN0YWNr
RnJhbWU6OnJldHVybkFkZHJlc3NTbG90KToKKyAgICAgICAgKEpTQzo6cmV0dXJuQWRkcmVzc0lz
SW5DdGlUcmFtcG9saW5lKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAg
ICAgIChKU0M6OkpJVFRodW5rczo6fkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkpJVFRodW5r
czo6Y3RpU3R1Yik6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y2xlYXJIb3N0RnVuY3Rpb25TdHVicyk6CisgICAg
ICAgICogaml0L0pJVFRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChU
cmFtcG9saW5lU3RydWN0dXJlKToKKyAgICAgICAgKEpJVFRodW5rcyk6CisgICAgICAgIChKU0M6
OkpJVFRodW5rczo6Y3RpU3RyaW5nTGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6Y3RpVmlydHVhbENhbGxMaW5rKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpj
dGlWaXJ0dWFsQ29uc3RydWN0TGluayk6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpVmly
dHVhbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVZpcnR1YWxDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlND
OjpKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L1RodW5rR2Vu
ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAg
ICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3Bw
OgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxl
ck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6SlNDZWxsKToKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
YWxsb2NhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6aXNaYXBwZWQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICog
cnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9V
SW50MzIpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVSW50MzIp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc1VJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmFzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6anNOYU4pOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6b3BlcmF0b3Ig
Ym9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6aXNOdWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNVbmRlZmluZWRPck51bGwp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NlbGwpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojppc0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjppc1RydWUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0ZhbHNlKToK
KyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dGFnKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cGF5
bG9hZCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzSW50MzIpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjphc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQ2VsbCk6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNC
b29sZWFuKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNCb29sZWFuKToKKyAgICAgICAgKEpT
Qzo6cmVpbnRlcnByZXREb3VibGVUb0ludDY0KToKKyAgICAgICAgKEpTQzo6cmVpbnRlcnByZXRJ
bnQ2NFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjppc1ByaW1pdGl2ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpnZXRTdHJpbmcpOgorICAgICAgICAoSlNDOjo6OmdldFN0cmluZyk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OmdldFVJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvUHJpbWl0aXZlKToKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6dG9OdW1iZXIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b09iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmFtZUNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KwogMjAxMi0xMi0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBBcnJheWlmeSBzbG93IHBhdGggc2hvdWxkIGJlIG91dC1vZi1saW5lCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsx
NjYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKICAgICBqaXQvSklUU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0pJVFN0dWJzLmNw
cAorICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuY3BwCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
MzQsMTEgKzQzNCwxNCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcCBcCiAgICAgaml0L0pJVFN0dWJSb3V0aW5lLmNwcCBcCiAgICAg
aml0L0pJVFN0dWJzLmNwcCBcCisgICAgaml0L0pJVFRodW5rcy5jcHAgXAogICAgIGppdC9KdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
XAogICAgIGxsaW50L0xMSW50Q0xvb3AuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUg
IkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAog
CiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
TG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJ
U2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVk
ZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9j
ay5oIgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJB
UElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3Rv
dHlwZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFj
a09iamVjdC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNp
bmNsdWRlICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2Jq
ZWN0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJKU1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRl
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5OCw2ICsyMTk4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKSVRU
aHVua3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxqaXRcSklUVGh1bmtzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGppdFxKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yMjE0LDYgKzIyMjIsMTAgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XFRodW5rR2VuZXJhdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGppdFxUaHVua0dlbmVyYXRvcnMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw5IEBACiAJCTBGNTVGMEY1MTREMTA2M0MwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTZBMUQzMTUwMDBGMzUw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFD
RjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLzsgfTsKKwkJMEY1NzJENEYxNjg3
OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNF
NUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OworCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAw
MDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNv
bmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzQxNDNGQ0QzMzAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2MjAxNzIxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjIwMTc2MTQz
RkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MDE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTcsNiArMjAwLDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4MTNGQzZGRTkwMDAy
RDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk2RUJC
MzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURF
MyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVB
RDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAq
LzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZD
OEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NSw2ICs5NzksOSBA
QAogCQkwRjU1RjBGMjE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFBDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkNvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4
ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRl
Q29kZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2Rl
Q2FjaGUuaDsgcGF0aCA9IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmlu
YWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxG
aW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0Qy
RjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0LDYgKzEwNDEs
NyBAQAogCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUHJvZmlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUJsb2NrV2l0aEpJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5NzQ5
NkYxNjg3QURFMjAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDZWxsSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlEMzM2RTE2NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBk
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlk
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEMwMTRFMUI1RkIw
MEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MDQsNyArMTkxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjcz
RDdBQjE2NUExNDJBMDBBQ0FCNzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgKi8sCiAJ
CQkJMEY3M0Q3QUMxNjVBMTQyQTAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuaCAq
LywKLQkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovLAog
CQkJCTBGRDgyRTM3MTQxQUIxNDIwMDE3OUM5NCAvKiBDb21wYWN0SklUQ29kZU1hcC5oICovLAog
CQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQlBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5o
ICovLApAQCAtMTkzNywxMyArMTk0NCwxNyBAQAogCQkJCTBGNzY2RDFDMTVBNTAyOEQwMDhGMzYz
RSAvKiBKSVRTdHViUm91dGluZS5oICovLAogCQkJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAv
KiBKSVRTdHVicy5jcHAgKi8sCiAJCQkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZEIC8qIEpJVFN0
dWJzLmggKi8sCisJCQkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki8sCisJCQkJMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovLAogCQkJ
CUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlB
NzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2
NkQzMjE1QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8s
CiAJCQkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAorCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRv
ci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
aCAqLywKKwkJCQk2NTk4N0YyRjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjIyMCw2ICsyMjMxLDggQEAKIAkJCQlCQ0E2MkRGRTBFMjgyNjIzMDAwNEYzMEQgLyogQ2FsbERh
dGEuY3BwICovLAogCQkJCTE0NUM1MDdGMEQ5REY2M0IwMDg4RjZCOSAvKiBDYWxsRGF0YS5oICov
LAogCQkJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCAqLywKKwkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKKwkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkJMEY4Rjk0M0ExNjY3NjMx
MTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwICovLAogCQkJCTBGMjFDMjc5
MTRCRTcyNzMwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggKi8sCiAJCQkJNjVF
QTczNjIwQkFFMzVEMTAwMUJCNTYwIC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCAqLywKQEAgLTIy
NzgsNiArMjI5MSw3IEBACiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oICovLAogCQkJCUJDN0Y4RkJBMEUxOUQxRUYwMDg2MzJDMCAvKiBKU0NlbGwuY3Bw
ICovLAogCQkJCUJDMTE2N0Q4MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCAqLywKKwkJCQkw
Rjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovLAogCQkJCTk3ODhG
QzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5Nzg4RkMyMzE0
NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3MTYwNDMyRDQw
MEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLApAQCAtMjQyNCw4ICsyNDM4LDYg
QEAKIAkJCQkxNDIwQkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJ
CUE3RENCNzc5MTJFM0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1
OEMzMzE1OTEyRkVFMDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJCQlB
NzdGMTgxRjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLywKLQkJCQlBNzdGMTgy
MDE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1
bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE5NCw2ICszMjA2LDkgQEAK
IAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhpdEp1
bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNUMzQjQxNjgzQ0Y5MjAwQkFG
NDVCIC8qIERGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMzgxMyw2ICszODI4LDcgQEAKIAkJCQkwRjEzOTEyQjE2NzcxQzNB
MDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFRkM5QUExNjgxQTNCMzAwNTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxh
Y2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1
IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eUFsbG9jYXRpb25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIK
IAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1
ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZl
bEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklM
RVIpCiAKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEz
ODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
U3RhdGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9jay5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UHV0QnlJZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkRGR0J5dGVDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw5IEBACiAKICNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCi0j
aW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUg
IkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDEzODQy
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzYsNTggKzc3Niw3IEBAIF9fYXNtIHZvaWQgY3RpT3BUaHJvd05vdENhdWdodCgp
CiAgICAgI2RlZmluZSBDVElfU0FNUExFUiAwCiAjZW5kaWYKIAotSklUVGh1bmtzOjpKSVRUaHVu
a3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbV9ob3N0RnVuY3Rpb25TdHViTWFw
KGFkb3B0UHRyKG5ldyBIb3N0RnVuY3Rpb25TdHViTWFwKSkKLXsKLSAgICBpZiAoIWdsb2JhbERh
dGEtPmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2V4ZWN1dGFibGVNZW1v
cnkgPSBKSVQ6OmNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoZ2xvYmFsRGF0YSwgJm1fdHJh
bXBvbGluZVN0cnVjdHVyZSk7Ci0gICAgQVNTRVJUKCEhbV9leGVjdXRhYmxlTWVtb3J5KTsKLSNp
ZiBDUFUoQVJNX1RIVU1CMikKLSAgICAvLyBVbmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRv
ZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZzZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBp
dCBjb250YWlucyBub24gUE9EIHR5cGVzKSwKLSAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRP
RiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29uc3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBo
YXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElMRV9BU1NFUlQKLSAgICAvLyBtYWNyb3MuCi0gICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0
dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09
IFBSRVNFUlZFRF9SNF9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI1KSA9PSBQUkVTRVJWRURfUjVfT0ZGU0VUKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
NikgPT0gUFJFU0VSVkVEX1I2X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjcpID09IFBSRVNFUlZFRF9SN19PRkZTRVQp
OwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNl
cnZlZFI4KSA9PSBQUkVTRVJWRURfUjhfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSOSkgPT0gUFJFU0VSVkVEX1I5X09G
RlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUjEwKSA9PSBQUkVTRVJWRURfUjEwX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjExKSA9PSBQUkVTRVJW
RURfUjExX09GRlNFVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAgIC8vIFRoZSBm
aWZ0aCBhcmd1bWVudCBpcyB0aGUgZmlyc3QgaXRlbSBhbHJlYWR5IG9uIHRoZSBzdGFjay4KLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB1bnVzZWQxKSA9
PSBGSVJTVF9TVEFDS19BUkdVTUVOVCk7Ci0KLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCk7Ci0KLSNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCi0KLSAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJl
c3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUjQpID09IFBSRVNFUlZFRFI0
X09GRlNFVCk7Ci0KLQotI2VsaWYgQ1BVKE1JUFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9HUF9PRkZT
RVQpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1Mx
X09GRlNFVCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwotICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwotICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEp
ID09IEdMT0JBTF9EQVRBX09GRlNFVCk7Ci0KLSNlbmRpZgotfQotCi1KSVRUaHVua3M6On5KSVRU
aHVua3MoKQotewotfQotCi1ORVZFUl9JTkxJTkUgdm9pZCBKSVRUaHVua3M6OnRyeUNhY2hlUHV0
QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBib29sIGRpcmVjdCkK
K05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZVB1dEJ5SUQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpCiB7CiAgICAgLy8gVGhlIGludGVy
cHJldGVyIGNoZWNrcyBmb3IgcmVjdXJzaW9uIGhlcmU7IEkgZG8gbm90IGJlbGlldmUgdGhpcyBj
YW4gb2NjdXIgaW4gQ1RJLgogCkBAIC04ODEsNyArODMwLDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpJVDo6cGF0Y2hQdXRCeUlkUmVwbGFjZShjb2Rl
QmxvY2ssIHN0dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIHJldHVybkFk
ZHJlc3MsIGRpcmVjdCk7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2Fj
aGVHZXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK05FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdl
dEJ5SUQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQogewogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgdGhhdCBwcm92
ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAogICAgIC8vIGxpa2Ug
dGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJlY3Vyc2lvbi4KQEAg
LTE0NDQsNyArMTM5Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZCkKICAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgIHN0dWJJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEpJVFRodW5rczo6dHJ5
Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBz
dGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2UpOworICAg
ICAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywg
ZmFsc2UpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTQ3MCw3ICsxNDE5LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X2lkXwogICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQogICAgICAgICAgICAgc3R1
YkluZm8tPnNldFNlZW4oKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSklUVGh1bmtzOjp0
cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRyeUNhY2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRV
Uk5fQUREUkVTUywgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8s
IHRydWUpOwogICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwpA
QCAtMTU0NSw3ICsxNDk0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUs
IG9wXwogICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNhY2hlR2V0QnlJRChj
YWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgYmFzZVZhbHVlLCBpZGVu
dCwgc2xvdCwgc3R1YkluZm8pOworICAgICAgICB0cnlDYWNoZUdldEJ5SUQoY2FsbEZyYW1lLCBj
b2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1MsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsIHN0
dWJJbmZvKTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMzQxMiw0OCArMzM2MSw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCB0b18KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKSk7CiB9
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCi17Ci0gICAgQ1RJU3R1Yk1h
cDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpKTsKLSAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKLSAgICAgICAgZW50
cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOwotICAgIHJldHVybiBl
bnRyeS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6
aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKLXsKLSAgICBpZiAoTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0
KGZ1bmN0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7Ci0KLSAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsK
LSAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7Ci0gICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7Ci19Ci0KLU5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9u
U3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBU
aHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCi17Ci0gICAgaWYg
KE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJN
YXAtPmdldChmdW5jdGlvbikpCi0gICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7Ci0gICAgaWYgKGdlbmVyYXRvcikgewotICAg
ICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2Vu
ZXJhdG9yKGdsb2JhbERhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKLQotICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmds
b2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNl
bGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOwotICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1
Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKLSAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKLX0KLQotdm9pZCBKSVRUaHVua3M6
OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQotewotICAgIG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC5j
bGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDIzNCArMzYsMjIyIEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoSklUKQogCi0gICAgc3RydWN0IFN0cnVjdHVy
ZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOwogCi0gICAgY2xhc3MgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZTsKLSAgICBjbGFzcyBDb2RlQmxvY2s7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotICAgIGNsYXNzIElkZW50
aWZpZXI7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwotICAgIGNsYXNzIEpTT2JqZWN0OwotICAgIGNsYXNzIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I7
Ci0gICAgY2xhc3MgSlNTdGFjazsKLSAgICBjbGFzcyBKU1ZhbHVlOwotICAgIGNsYXNzIEpTVmFs
dWVFbmNvZGVkQXNQb2ludGVyOwotICAgIGNsYXNzIExlZ2FjeVByb2ZpbGVyOwotICAgIGNsYXNz
IE5hdGl2ZUV4ZWN1dGFibGU7Ci0gICAgY2xhc3MgUHJvcGVydHlTbG90OwotICAgIGNsYXNzIFB1
dFByb3BlcnR5U2xvdDsKLSAgICBjbGFzcyBSZWdFeHA7Ci0gICAgY2xhc3MgU3RydWN0dXJlOwot
Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7Ci0KLSAgICB1bmlvbiBKSVRT
dHViQXJnIHsKLSAgICAgICAgdm9pZCogYXNQb2ludGVyOwotICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICBpbnQzMl90IGFzSW50MzI7Ci0KLSAgICAgICAg
SlNWYWx1ZSBqc1ZhbHVlKCkgeyByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKGFzRW5jb2RlZEpTVmFs
dWUpOyB9Ci0gICAgICAgIEpTT2JqZWN0KiBqc09iamVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZWdpc3RlciogcmVnKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIElkZW50aWZp
ZXImIGlkZW50aWZpZXIoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8SWRlbnRpZmllcio+KGFzUG9p
bnRlcik7IH0KLSAgICAgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJuIGFzSW50MzI7IH0KLSAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2RlQmxv
Y2sqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24o
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihhc1BvaW50ZXIpOyB9
Ci0gICAgICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhwKj4o
YXNQb2ludGVyKTsgfQotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
Pihhc1BvaW50ZXIpOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzUG9pbnRlcik7IH0KLSAgICAg
ICAgSlNTdHJpbmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihh
c1BvaW50ZXIpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RydWN0dXJlKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MoKSB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGFzUG9pbnRlcik7
IH0KLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVzb2x2ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9Ci0gICAgICAg
IFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHV0VG9CYXNlT3BlcmF0aW9uKj4oYXNQb2ludGVyKTsgfQotICAgICAgICBBcnJheUFs
bG9jYXRpb25Qcm9maWxlKiBhcnJheUFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KGFzUG9pbnRlcik7IH0KLSAgICB9OworY2xh
c3MgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTsKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIEV4ZWN1
dGFibGVQb29sOworY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgSWRlbnRpZmllcjsK
K2NsYXNzIEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNPYmpl
Y3Q7CitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOworY2xhc3MgSlNTdGFjazsKK2NsYXNz
IEpTVmFsdWU7CitjbGFzcyBKU1ZhbHVlRW5jb2RlZEFzUG9pbnRlcjsKK2NsYXNzIExlZ2FjeVBy
b2ZpbGVyOworY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKK2NsYXNzIFByb3BlcnR5U2xvdDsKK2Ns
YXNzIFB1dFByb3BlcnR5U2xvdDsKK2NsYXNzIFJlZ0V4cDsKK2NsYXNzIFN0cnVjdHVyZTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CisKK3VuaW9uIEpJVFN0dWJBcmcgewor
ICAgIHZvaWQqIGFzUG9pbnRlcjsKKyAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVl
OworICAgIGludDMyX3QgYXNJbnQzMjsKKworICAgIEpTVmFsdWUganNWYWx1ZSgpIHsgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShhc0VuY29kZWRKU1ZhbHVlKTsgfQorICAgIEpTT2JqZWN0KiBqc09i
amVjdCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oYXNQb2ludGVyKTsgfQorICAg
IFJlZ2lzdGVyKiByZWcoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KGFzUG9pbnRl
cik7IH0KKyAgICBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgeyByZXR1cm4gKnN0YXRpY19jYXN0
PElkZW50aWZpZXIqPihhc1BvaW50ZXIpOyB9CisgICAgaW50MzJfdCBpbnQzMigpIHsgcmV0dXJu
IGFzSW50MzI7IH0KKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvZGVCbG9jayo+KGFzUG9pbnRlcik7IH0KKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oYXNQb2lu
dGVyKTsgfQorICAgIFJlZ0V4cCogcmVnRXhwKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVnRXhw
Kj4oYXNQb2ludGVyKTsgfQorICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+
KGFzUG9pbnRlcik7IH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc1BvaW50ZXIpOyB9CisgICAgSlNTdHJp
bmcqIGpzU3RyaW5nKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc1BvaW50ZXIp
OyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1
Y3R1cmUqPihhc1BvaW50ZXIpOyB9CisgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
KCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CisgICAgUmVzb2x2ZU9w
ZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb2x2
ZU9wZXJhdGlvbnMqPihhc1BvaW50ZXIpOyB9CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQdXRUb0Jhc2VPcGVyYXRpb24q
Pihhc1BvaW50ZXIpOyB9CisgICAgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
Pihhc1BvaW50ZXIpOyB9Cit9OwogICAgIAotICAgIHN0cnVjdCBUcmFtcG9saW5lU3RydWN0dXJl
IHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xp
bmU7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbExpbms7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluazsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdDsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGw7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Ci0gICAgfTsKLQogI2lmIENQVShYODZfNjQpCi0gICAgc3Ry
dWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2VkCi0g
ICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsgLy8g
TWFpbnRhaW4gMzItYnl0ZSBzdGFjayBhbGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KLQot
ICAgICAgICB2b2lkKiBjb2RlOwotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIHZvaWQq
IHVudXNlZDI7Ci0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKLQotICAgICAgICB2
b2lkKiBzYXZlZFJCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTU7Ci0gICAgICAgIHZvaWQqIHNh
dmVkUjE0OwotICAgICAgICB2b2lkKiBzYXZlZFIxMzsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTI7
Ci0gICAgICAgIHZvaWQqIHNhdmVkUkJQOwotICAgICAgICB2b2lkKiBzYXZlZFJJUDsKLQotICAg
ICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4g
YWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KLSAgICAgICAgUmV0dXJu
QWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CisgICAgdm9pZCogcGFkZGluZ1syXTsgLy8gTWFpbnRhaW4gMzItYnl0ZSBzdGFjayBh
bGlnbm1lbnQgKHBvc3NpYmx5IG92ZXJraWxsKS4KKworICAgIHZvaWQqIGNvZGU7CisgICAgSlNT
dGFjayogc3RhY2s7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CisgICAgdm9pZCogdW51c2Vk
MTsKKyAgICB2b2lkKiB1bnVzZWQyOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKwor
ICAgIHZvaWQqIHNhdmVkUkJYOworICAgIHZvaWQqIHNhdmVkUjE1OworICAgIHZvaWQqIHNhdmVk
UjE0OworICAgIHZvaWQqIHNhdmVkUjEzOworICAgIHZvaWQqIHNhdmVkUjEyOworICAgIHZvaWQq
IHNhdmVkUkJQOworICAgIHZvaWQqIHNhdmVkUklQOworCisgICAgLy8gV2hlbiBKSVQgY29kZSBt
YWtlcyBhIGNhbGwsIGl0IHB1c2hlcyBpdHMgcmV0dXJuIGFkZHJlc3MganVzdCBiZWxvdyB0aGUg
cmVzdCBvZiB0aGUgc3RhY2suCisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Ns
b3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAt
IDE7IH0KK307CiAjZWxpZiBDUFUoWDg2KQogI2lmIENPTVBJTEVSKE1TVkMpIHx8IChPUyhXSU5E
T1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHB1c2gpCiAjcHJhZ21hIHBhY2so
NCkKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIo
R0NDKSkKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIHZvaWQqIHJlc2VydmVk
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOworc3RydWN0IEpJVFN0YWNr
RnJhbWUgeworICAgIHZvaWQqIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFy
Z3NbNl07CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCogcGFkZGluZ1syXTsg
Ly8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisgICAgdm9pZCogcGFkZGluZ1sy
XTsgLy8gTWFpbnRhaW4gMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCiAjZW5kaWYKIAotICAgICAg
ICB2b2lkKiBzYXZlZEVCWDsKLSAgICAgICAgdm9pZCogc2F2ZWRFREk7Ci0gICAgICAgIHZvaWQq
IHNhdmVkRVNJOwotICAgICAgICB2b2lkKiBzYXZlZEVCUDsKLSAgICAgICAgdm9pZCogc2F2ZWRF
SVA7Ci0KLSAgICAgICAgdm9pZCogY29kZTsKLSAgICAgICAgSlNTdGFjayogc3RhY2s7Ci0gICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwotICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAg
ICB2b2lkKiB1bnVzZWQyOwotICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CisgICAg
dm9pZCogc2F2ZWRFQlg7CisgICAgdm9pZCogc2F2ZWRFREk7CisgICAgdm9pZCogc2F2ZWRFU0k7
CisgICAgdm9pZCogc2F2ZWRFQlA7CisgICAgdm9pZCogc2F2ZWRFSVA7CisKKyAgICB2b2lkKiBj
b2RlOworICAgIEpTU3RhY2sqIHN0YWNrOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworICAg
IHZvaWQqIHVudXNlZDE7CisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEqIGds
b2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2Fs
bCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRo
ZSBzdGFjay4KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFJldHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0K
LSAgICB9OworICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBwdXNoZXMgaXRz
IHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNrLgorICAgIFJl
dHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxSZXR1cm5BZGRyZXNzUHRyKj4odGhpcykgLSAxOyB9Cit9OwogI2lmIENPTVBJTEVSKE1T
VkMpIHx8IChPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihHQ0MpKQogI3ByYWdtYSBwYWNrKHBvcCkK
ICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKSB8fCAoT1MoV0lORE9XUykgJiYgQ09NUElMRVIoR0ND
KSkKICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAg
ICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcg
YXJnc1s2XTsKLQotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsK
LQotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZvaWQqIHBy
ZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSNzsKLSAgICAgICAgdm9pZCogcHJl
c2VydmVkUjg7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFI5OwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRSMTA7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMTsKLQotICAgICAgICAvLyBUaGVz
ZSBhcmd1bWVudHMgcGFzc2VkIGluIHIxLi5yMyAocjAgY29udGFpbmVkIHRoZSBlbnRyeSBjb2Rl
IHBvaW50ZWQsIHdoaWNoIGlzIG5vdCBwcmVzZXJ2ZWQpCi0gICAgICAgIEpTU3RhY2sqIHN0YWNr
OwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1
bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMTsKLSAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0IEpJVFN0YWNrRnJhbWUgeworICAg
IEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAorICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsK
KworICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOworCisgICAgdm9pZCog
cHJlc2VydmVkUmV0dXJuQWRkcmVzczsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworCisgICAgLy8g
VGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiByMS4ucjMgKHIwIGNvbnRhaW5lZCB0aGUgZW50cnkg
Y29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2VydmVkKQorICAgIEpTU3RhY2sqIHN0YWNr
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMTsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9OworICAg
IFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0
dXJuQWRkcmVzczsgfQorfTsKICNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWYgQ09NUElM
RVIoTVNWQykKICNwcmFnbWEgcGFjayhwdXNoKQogI3ByYWdtYSBwYWNrKDQpCiAjZW5kaWYgLy8g
Q09NUElMRVIoTVNWQykKLSAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7Ci0gICAgICAgIEpJVFN0
dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCi0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKLQot
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKLQotICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSNDsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUjU7Ci0gICAgICAgIHZv
aWQqIHByZXNlcnZlZFI2OwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjk7Ci0gICAgICAgIHZvaWQqIHByZXNlcnZlZFIxMDsKLSAgICAgICAgdm9p
ZCogcHJlc2VydmVkUjExOwotICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRMaW5rOwotCi0gICAgICAg
IEpTU3RhY2sqIHN0YWNrOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLQotICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgdm9pZCogdW51c2VkMjsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhOwotCi0gICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KLSAgICB9Oworc3RydWN0IEpJVFN0YWNrRnJhbWUgewor
ICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAgSklUU3R1YkFyZyBhcmdzWzdd
OworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CisKKyAgICB2b2lk
KiBwcmVzZXJ2ZWRSNDsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSNTsKKyAgICB2b2lkKiBwcmVzZXJ2
ZWRSNjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSODsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRSOTsKKyAg
ICB2b2lkKiBwcmVzZXJ2ZWRSMTA7CisgICAgdm9pZCogcHJlc2VydmVkUjExOworICAgIHZvaWQq
IHByZXNlcnZlZExpbms7CisKKyAgICBKU1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZTsKKyAgICB2b2lkKiB1bnVzZWQxOworCisgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBh
c3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGE7CisKKyAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVz
aGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4K
KyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVu
a1JldHVybkFkZHJlc3M7IH0KK307CiAjaWYgQ09NUElMRVIoTVNWQykKICNwcmFnbWEgcGFjayhw
b3ApCiAjZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKICNlbGlmIENQVShNSVBTKQotICAgIHN0cnVj
dCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyByZXNlcnZlZDsgLy8gVW51c2Vk
Ci0gICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKK3N0cnVjdCBKSVRTdGFja0ZyYW1lIHsKKyAg
ICBKSVRTdHViQXJnIHJlc2VydmVkOyAvLyBVbnVzZWQKKyAgICBKSVRTdHViQXJnIGFyZ3NbNl07
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkKiBwYWRkaW5nOyAvLyBNYWtl
IHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KKyAgICB2b2lkKiBwYWRk
aW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4KICNl
bmRpZgogCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVzaW5n
IFBJQyBjb2RlCi0gICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwotICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMTsKLSAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7Ci0gICAgICAgIHZvaWQqIHByZXNl
cnZlZFJldHVybkFkZHJlc3M7Ci0KLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVy
bkFkZHJlc3M7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBpbiBhMS4uYTMg
KGEwIGNvbnRhaW5lZCB0aGUgZW50cnkgY29kZSBwb2ludGVkLCB3aGljaCBpcyBub3QgcHJlc2Vy
dmVkKQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7Ci0gICAgICAgIHZvaWQqIHVudXNlZDE7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRz
IHBhc3NlZCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHZvaWQqIHVudXNlZDI7Ci0gICAgICAgIEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUg
R1Agd2hlbiB1c2luZyBQSUMgY29kZQorICAgIHZvaWQqIHByZXNlcnZlZFMwOworICAgIHZvaWQq
IHByZXNlcnZlZFMxOworICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgIHZvaWQqIHByZXNlcnZl
ZFJldHVybkFkZHJlc3M7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVz
czsKKworICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgaW4gYTEuLmEzIChhMCBjb250YWlu
ZWQgdGhlIGVudHJ5IGNvZGUgcG9pbnRlZCwgd2hpY2ggaXMgbm90IHByZXNlcnZlZCkKKyAgICBK
U1N0YWNrKiBzdGFjazsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKKyAgICB2b2lkKiB1bnVz
ZWQxOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQotICAgIH07CisgICAgLy8gVGhlc2UgYXJndW1l
bnRzIHBhc3NlZCBvbiB0aGUgc3RhY2suCisgICAgdm9pZCogdW51c2VkMjsKKyAgICBKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGE7CisKKyAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNz
U2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KK307CiAjZWxpZiBDUFUoU0g0
KQotICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKLSAgICAgICAgSklUU3R1YkFyZyBwYWRkaW5n
OyAvLyBVbnVzZWQKLSAgICAgICAgSklUU3R1YkFyZyBhcmdzWzZdOwotCi0gICAgICAgIFJldHVy
bkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwotICAgICAgICB2b2lkKiBzYXZlZFIxMDsK
LSAgICAgICAgdm9pZCogc2F2ZWRSMTE7Ci0gICAgICAgIHZvaWQqIHNhdmVkUjEzOwotICAgICAg
ICB2b2lkKiBzYXZlZFJQUjsKLSAgICAgICAgdm9pZCogc2F2ZWRSMTQ7Ci0gICAgICAgIHZvaWQq
IHNhdmVkVGltZW91dFJlZzsKLQotICAgICAgICBKU1N0YWNrKiBzdGFjazsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7Ci0gICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAg
dm9pZCogdW51c2VkMTsKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOworc3RydWN0
IEpJVFN0YWNrRnJhbWUgeworICAgIEpJVFN0dWJBcmcgcGFkZGluZzsgLy8gVW51c2VkCisgICAg
SklUU3R1YkFyZyBhcmdzWzZdOworCisgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFk
ZHJlc3M7CisgICAgdm9pZCogc2F2ZWRSMTA7CisgICAgdm9pZCogc2F2ZWRSMTE7CisgICAgdm9p
ZCogc2F2ZWRSMTM7CisgICAgdm9pZCogc2F2ZWRSUFI7CisgICAgdm9pZCogc2F2ZWRSMTQ7Cisg
ICAgdm9pZCogc2F2ZWRUaW1lb3V0UmVnOworCisgICAgSlNTdGFjayogc3RhY2s7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CisgICAgSlNWYWx1ZSogZXhjZXB0aW9uOworICAgIHZvaWQqIHVu
dXNlZDE7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCi0gICAgICAgIFJldHVybkFk
ZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVz
czsgfQotICAgIH07CisgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7
IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9Cit9OwogI2Vsc2UKICNlcnJvciAiSklUU3Rh
Y2tGcmFtZSBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTI3NCwy
MDIgKzI2MiwxNTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZGVmaW5lIFNUVUJfQVJHUyAoYXJncykK
IAogI2lmIENQVShYODYpCi0gICAgI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgI2RlZmluZSBKSVRf
U1RVQiBfX2Zhc3RjYWxsCi0gICAgI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICNkZWZpbmUgSklU
X1NUVUIgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0gICAgI2VsaWYgQ09NUElMRVIoU1VO
Q0MpCi0gICAgI2RlZmluZSBKSVRfU1RVQgotICAgICNlbHNlCi0gICAgI2Vycm9yICJKSVRfU1RV
QiBmdW5jdGlvbiBjYWxscyByZXF1aXJlIGZhc3RjYWxsIGNvbnZlbnRpb25zIG9uIHg4NiwgYWRk
IGFwcHJvcHJpYXRlIGRpcmVjdGl2ZS9hdHRyaWJ1dGUgaGVyZSBmb3IgeW91ciBjb21waWxlciEi
Ci0gICAgI2VuZGlmCisjaWYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSklUX1NUVUIgX19mYXN0
Y2FsbAorI2VsaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBKSVRfU1RVQiAgX19hdHRyaWJ1dGVf
XyAoKGZhc3RjYWxsKSkKKyNlbGlmIENPTVBJTEVSKFNVTkNDKQorI2RlZmluZSBKSVRfU1RVQgog
I2Vsc2UKLSAgICAjZGVmaW5lIEpJVF9TVFVCCisjZXJyb3IgIkpJVF9TVFVCIGZ1bmN0aW9uIGNh
bGxzIHJlcXVpcmUgZmFzdGNhbGwgY29udmVudGlvbnMgb24geDg2LCBhZGQgYXBwcm9wcmlhdGUg
ZGlyZWN0aXZlL2F0dHJpYnV0ZSBoZXJlIGZvciB5b3VyIGNvbXBpbGVyISIKKyNlbmRpZgorI2Vs
c2UKKyNkZWZpbmUgSklUX1NUVUIKICNlbmRpZgogCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVZN
VGhyb3dUcmFtcG9saW5lKCk7Ci0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aU9wVGhyb3dOb3RDYXVn
aHQoKTsKLSAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCog
Y29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVu
dXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CitleHRlcm4gIkMiIHZvaWQgY3RpVk1UaHJvd1RyYW1w
b2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCk7CitleHRlcm4g
IkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgSlNTdGFjayosIENh
bGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxE
YXRhKik7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1w
b2xpbmVFbmQoKTsKK2V4dGVybiAiQyIgdm9pZCBjdGlUcmFtcG9saW5lRW5kKCk7CiAKLSAgICBp
bmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUoUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJldHVybkFkZHJlc3MudmFs
dWUoKSA+PSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZjdGlUcmFtcG9saW5lKQotICAgICAgICAgICAg
JiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBv
bGluZUVuZCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjbGFzcyBKSVRUaHVua3MgewotICAgIHB1
YmxpYzoKLSAgICAgICAgSklUVGh1bmtzKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SklUVGh1
bmtzKCk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKENhbGxGcmFtZSos
IENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNl
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJ5
Q2FjaGVQdXRCeUlEKENhbGxGcmFtZSosIENvZGVCbG9jayosIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgYm9vbCBkaXJlY3QpOwotCi0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lKCkgeyByZXR1cm4gbV90
cmFtcG9saW5lU3RydWN0dXJlLmN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7IH0KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygpIHsgcmV0dXJuIG1fdHJh
bXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aVZpcnR1YWxDb25zdHJ1Y3RMaW5rOyB9Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
VmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0
dWFsQ29uc3RydWN0OyB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
YWxsKCkKLSAgICAgICAgewotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgICAgIGlmICghbV9l
eGVjdXRhYmxlTWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKTsK
LSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRp
dmVDYWxsOwotICAgICAgICB9Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRp
dmVDb25zdHJ1Y3QoKQotICAgICAgICB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3Rf
dHJhbXBvbGluZSk7CitpbmxpbmUgYm9vbCByZXR1cm5BZGRyZXNzSXNJbkN0aVRyYW1wb2xpbmUo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQoreworICAgIHJldHVybiByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkgPj0gYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJhbXBvbGluZSkKKyAgICAg
ICAgJiYgcmV0dXJuQWRkcmVzcy52YWx1ZSgpIDwgYml0d2lzZV9jYXN0PHZvaWQqPigmY3RpVHJh
bXBvbGluZUVuZCk7Cit9CiAjZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OwotICAgICAgICB9Ci0KLSAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoSlNHbG9iYWxEYXRhKiwgVGh1bmtHZW5lcmF0b3IpOwot
Ci0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoSlNHbG9iYWxEYXRh
KiwgTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVG
dW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7Ci0KLSAgICAgICAgdm9pZCBjbGVh
ckhvc3RGdW5jdGlvblN0dWJzKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsK
LSAgICAgICAgQ1RJU3R1Yk1hcCBtX2N0aVN0dWJNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxOYXRpdmVGdW5jdGlvbiwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPiA+IEhvc3RGdW5jdGlvblN0
dWJNYXA7Ci0gICAgICAgIE93blB0cjxIb3N0RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlv
blN0dWJNYXA7Ci0gICAgICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBtX2V4ZWN1
dGFibGVNZW1vcnk7Ci0KLSAgICAgICAgVHJhbXBvbGluZVN0cnVjdHVyZSBtX3RyYW1wb2xpbmVT
dHJ1Y3R1cmU7Ci0gICAgfTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2FkZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0YW5kKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9i
aXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfYml0eG9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jYWxsX05vdEpTRnVu
Y3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0
X05vdEpTQ29uc3RydWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jaGVja19oYXNfaW5zdGFuY2UoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb252ZXJ0X3RoaXMoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2NyZWF0ZV9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZGVsX2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZGl2KFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9hcnJheV9mYWlsKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfY3VzdG9tX3N0dWIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9n
ZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV9pZF9wcm90b19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmlu
Z19mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
dmFsX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfYm9v
bGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfZnVuY3Rpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX251bWJl
cihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lO
VEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19zdHJpbmcoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX2lzX3VuZGVmaW5lZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfbGVzc2VxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVu
Y29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVh
dGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2xzaGlmdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbW9kKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX25lZ2F0ZShTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bfbm90KFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3Bvc3RfZGVjKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9wb3N0X2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAg
ICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
cHJlX2luYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9i
YXNlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jh
c2UoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF90b19iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmNhdChTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdG9fanNudW1i
ZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgRW5jb2RlZEpTVmFs
dWUgSklUX1NUVUIgY3RpX29wX3RvX3ByaW1pdGl2ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9mKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF91cnNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwotICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV90b19vYmplY3QoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9u
ZXdfYXJyYXkoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmpl
Y3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXlfd2l0aF9zaXplKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Fy
cmF5X2J1ZmZlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09i
amVjdCogSklUX1NUVUIgY3RpX29wX25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RVQiBjdGlfb3BfbmV3X2Z1bmNfZXhwKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIEpTT2JqZWN0KiBKSVRfU1RV
QiBjdGlfb3BfbmV3X29iamVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICBKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19yZWdleHAoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9wdXNo
X2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHVzaF9uYW1lX3Njb3BlKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfd2l0aF9zY29wZShT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBKU09iamVjdCogSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSklUX1NUVUIg
Y3RpX29wX2dldF9wbmFtZXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0g
ICAgaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2VxX3N0cmluZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qbGVzcyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29w
X2psZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJ
VF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
bG9hZF92YXJhcmdzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIGlu
dCBKSVRfU1RVQiBjdGlfdGltZW91dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKLSAgICBpbnQgSklUX1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9kZWJ1ZyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBK
SVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wb3Bfc2NvcGUoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHJvZmlsZV9k
aWRfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0
X2J5X2lkX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVC
IGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5l
cmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NU
VUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxf
Z2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJ
VF9TVFVCIGN0aV9vcF9wdXRfZ2V0dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9pbml0X2dsb2JhbF9jb25zdF9j
aGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9T
VFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhT
VFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkIEpJVF9TVFVCIGN0
aV9vcF90aHJvd19zdGF0aWNfZXJyb3IoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfYWRkKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2JpdGFu
ZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9iaXRvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9iaXR4b3IoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2FsbF9O
b3RKU0Z1bmN0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NhbGxfZXZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rf
Tm90SlNDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfY2hlY2tfaGFzX2luc3RhbmNlKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2NyZWF0ZV90aGlzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2NvbnZlcnRfdGhpcyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9jcmVhdGVf
YXJndW1lbnRzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX2RlbF9ieV9pZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9kZWxfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX2RpdihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2FycmF5X2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zdHViKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29w
X2dldF9ieV9pZF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YihTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVC
IGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9f
bGlzdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNM
QVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dl
dF9ieV9pZF9zZWxmX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIg
Y3RpX29wX2dldF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3Rp
X29wX2dldF9ieV92YWxfc3RyaW5nKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2luc3RhbmNl
b2YoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfU1RVQiBjdGlfb3BfaXNfYm9vbGVhbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pc19mdW5jdGlvbihTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9pc19udW1iZXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaXNfb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2lzX3N0cmlu
ZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9pc191bmRlZmluZWQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbGVzcyhTVFVCX0FSR1NfREVD
TEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9s
ZXNzZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ3JlYXRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9ncmVhdGVyZXEoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3BfbHNoaWZ0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX21vZChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9tdWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfbmVn
YXRlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX1NUVUIgY3RpX29wX25vdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9uc3RyaWN0ZXEoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcG9z
dF9kZWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfcG9zdF9pbmMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcHJlX2RlYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF9wcmVfaW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3Jlc29sdmUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV9iYXNlKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NU
VUIgY3RpX29wX3Jlc29sdmVfYmFzZV9zdHJpY3RfcHV0KFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2Vuc3VyZV9wcm9w
ZXJ0eV9leGlzdHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfcmVz
b2x2ZV93aXRoX3RoaXMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF9wdXRfdG9fYmFzZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9yc2hpZnQoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlf
b3Bfc3RyY2F0KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX1NUVUIgY3RpX29wX3N0cmljdGVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX3N1YihTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9v
cF90b19qc251bWJlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF90b19wcmltaXRpdmUoU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfdHlwZW9m
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X1NUVUIgY3RpX29wX3Vyc2hpZnQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfdG9fb2JqZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3QqIEpJVF9TVFVCIGN0aV9vcF9uZXdfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIg
Y3RpX29wX25ld19hcnJheV93aXRoX3NpemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19hcnJheV9idWZmZXIoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29w
X25ld19mdW5jKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworSlNPYmplY3Qq
IEpJVF9TVFVCIGN0aV9vcF9uZXdfZnVuY19leHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25ld19vYmplY3QoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCogSklUX1NUVUIgY3RpX29wX25l
d19yZWdleHAoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitKU09iamVjdCog
SklUX1NUVUIgY3RpX29wX3B1c2hfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hfbmFtZV9zY29wZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1c2hf
d2l0aF9zY29wZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTT2JqZWN0
KiBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fcmVhbGxvYyhTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpJVF9T
VFVCIGN0aV9vcF9nZXRfcG5hbWVzKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OworaW50IEpJVF9TVFVCIGN0aV9vcF9lcShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3BfZXFfc3RyaW5ncyhTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKK2ludCBKSVRfU1RVQiBjdGlfb3Bfamxlc3MoU1RVQl9BUkdTX0RF
Q0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2psZXNzZXEoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX29wX2pn
cmVhdGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOworaW50IEpJVF9TVFVC
IGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwor
aW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3MoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX3RpbWVvdXRfY2hlY2soU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CitpbnQgSklUX1NUVUIgY3RpX2hhc19w
cm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NU
VUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
Owordm9pZCBKSVRfU1RVQiBjdGlfb3Bfam1wX3Njb3BlcyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3BvcF9zY29wZShTVFVCX0FSR1Nf
REVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3Byb2ZpbGVf
ZGlkX2NhbGwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9T
VFVCIGN0aV9vcF9wcm9maWxlX3dpbGxfY2FsbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9J
TlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZChTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pZF9mYWls
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfaWRfZGlyZWN0KFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVj
dF9mYWlsKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RV
QiBjdGlfb3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5
X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWxfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJfc2V0dGVyKFNUVUJfQVJHU19E
RUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfaW5pdF9nbG9i
YWxfY29uc3RfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYXJndW1lbnRz
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFM
OwogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wdGltaXplKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfU1RVQiBjdGlfb3B0
aW1pemUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKLSAgICB2
b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9hcml0eUNoZWNrKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3RfYXJp
dHlDaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBK
SVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9jb25zdHJ1Y3Rfaml0Q29tcGls
ZShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RV
QiBjdGlfb3Bfc3dpdGNoX2NoYXIoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7
Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9zdHJp
bmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCogSklUX1NU
VUIgY3RpX29wX3Rocm93KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAg
IHZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdU
Rl9JTlRFUk5BTDsKLSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6eUxpbmtDYWxsKFNUVUJf
QVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwotICAgIHZvaWQqIEpJVF9TVFVCIGN0aV92
bV9sYXp5TGlua0NvbnN0cnVjdChTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsK
LSAgICB2b2lkKiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9vcF9j
YWxsX2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfb3BfY29uc3RydWN0X2FyaXR5Q2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFU
SU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3BfY2FsbF9qaXRDb21waWxl
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3Rp
X29wX2NvbnN0cnVjdF9qaXRDb21waWxlKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVS
TkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9jaGFyKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwordm9pZCogSklUX1NUVUIgY3RpX29wX3N3aXRjaF9pbW0oU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfb3Bf
c3dpdGNoX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKK3ZvaWQq
IEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV9zdGFja19jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFdURl9JTlRFUk5BTDsKK3ZvaWQqIEpJVF9TVFVCIGN0aV92bV9sYXp5TGlua0NhbGwoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lkKiBKSVRfU1RVQiBjdGlfdm1fbGF6
eUxpbmtDb25zdHJ1Y3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Cit2b2lk
KiBKSVRfU1RVQiBjdGlfdm1fdGhyb3coU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIH0gLy8gZXh0ZXJuICJDIgogCiAjZWxpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpJ
VFRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitKSVRUaHVua3M6OkpJVFRodW5rcyhK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCisgICAgOiBtX2hvc3RGdW5jdGlvblN0dWJNYXAoYWRv
cHRQdHIobmV3IEhvc3RGdW5jdGlvblN0dWJNYXApKQoreworICAgIGlmICghZ2xvYmFsRGF0YS0+
Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXhlY3V0YWJsZU1lbW9yeSA9
IEpJVDo6Y29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcyhnbG9iYWxEYXRhLCAmbV90cmFtcG9s
aW5lU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoISFtX2V4ZWN1dGFibGVNZW1vcnkpOworI2lmIENQ
VShBUk1fVEhVTUIyKQorICAgIC8vIFVuZm9ydHVuYXRlIHRoZSBhcm0gY29tcGlsZXIgZG9lcyBu
b3QgbGlrZSB0aGUgdXNlIG9mIG9mZnNldG9mIG9uIEpJVFN0YWNrRnJhbWUgKHNpbmNlIGl0IGNv
bnRhaW5zIG5vbiBQT0QgdHlwZXMpLAorICAgIC8vIGFuZCB0aGUgT0JKRUNUX09GRlNFVE9GIG1h
Y3JvIGRvZXMgbm90IGFwcGVhciBjb25zdGFudGlzaCBlbm91Z2ggZm9yIGl0IHRvIGJlIGhhcHB5
IHdpdGggaXRzIHVzZSBpbiBDT01QSUxFX0FTU0VSVAorICAgIC8vIG1hY3Jvcy4KKyAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5B
ZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJF
U0VSVkVEX1I0X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUjUpID09IFBSRVNFUlZFRF9SNV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI2KSA9
PSBQUkVTRVJWRURfUjZfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNykgPT0gUFJFU0VSVkVEX1I3X09GRlNFVCk7Cisg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UjgpID09IFBSRVNFUlZFRF9SOF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFI5KSA9PSBQUkVTRVJWRURfUjlfT0ZGU0VU
KTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSMTApID09IFBSRVNFUlZFRF9SMTBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSMTEpID09IFBSRVNFUlZFRF9S
MTFfT0ZGU0VUKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgLy8gVGhlIGZpZnRo
IGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0YWNrLgorICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEZJ
UlNUX1NUQUNLX0FSR1VNRU5UKTsKKworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKKworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSNCkgPT0gUFJFU0VSVkVEUjRfT0ZG
U0VUKTsKKworCisjZWxpZiBDUFUoTUlQUykKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gUFJFU0VSVkVEX0dQX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZG
U0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBw
cmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0g
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZT
RVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFsRGF0YSkgPT0g
R0xPQkFMX0RBVEFfT0ZGU0VUKTsKKworI2VuZGlmCit9CisKK0pJVFRodW5rczo6fkpJVFRodW5r
cygpCit7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCit7CisgICAg
Q1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlTdHViTWFwLmFkZChnZW5lcmF0b3Is
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKKyAgICBpZiAoZW50cnkuaXNOZXdFbnRyeSkKKyAg
ICAgICAgZW50cnkuaXRlcmF0b3ItPnZhbHVlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2
ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKK3sKKyAgICBp
ZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1
Yk1hcC0+Z2V0KGZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CisK
KyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERh
dGEsIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCgpKSwgY29uc3RydWN0b3IsIE5vSW50
cmluc2ljKTsKKyAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIGZ1bmN0aW9uLCBQ
YXNzV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CisgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7Cit9CisKK05hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9z
dEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCit7
CisgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5j
dGlvblN0dWJNYXAtPmdldChmdW5jdGlvbikpCisgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOworCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvZGU7CisgICAgaWYgKGdlbmVyYXRv
cikgeworICAgICAgICBpZiAoZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBj
b2RlID0gZ2VuZXJhdG9yKGdsb2JhbERhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKGdsb2JhbERhdGEsIGZ1bmN0aW9uKTsKKworICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKmdsb2JhbERhdGEsIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2
ZUV4ZWN1dGFibGUpKTsKKyAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKK30KKwordm9pZCBK
SVRUaHVua3M6OmNsZWFySG9zdEZ1bmN0aW9uU3R1YnMoKQoreworICAgIG1faG9zdEZ1bmN0aW9u
U3R1Yk1hcC5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpJVFRodW5rc19oCisjZGVmaW5lIEpJVFRodW5rc19oCisK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVs
SW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNs
dWRlICJUaHVua0dlbmVyYXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU0dsb2JhbERhdGE7CitjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlOworCitzdHJ1Y3QgVHJhbXBvbGluZVN0cnVjdHVyZSB7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVN0cmluZ0xlbmd0aFRyYW1wb2xpbmU7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpVmlydHVhbENvbnN0cnVjdExpbms7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aVZpcnR1YWxDYWxsOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFsQ29uc3Ry
dWN0OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsOworICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3Q7Cit9OworCitjbGFzcyBKSVRUaHVu
a3MgeworcHVibGljOgorICAgIEpJVFRodW5rcyhKU0dsb2JhbERhdGEqKTsKKyAgICB+SklUVGh1
bmtzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpU3RyaW5nTGVuZ3RoVHJhbXBv
bGluZSgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlTdHJpbmdMZW5ndGhUcmFt
cG9saW5lOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxDYWxsTGluaygp
IHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbExpbms7IH0KKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdExpbmsoKSB7IHJldHVy
biBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0cnVjdExpbms7IH0KKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xp
bmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENhbGw7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlW
aXJ0dWFsQ29uc3RydWN0OyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNh
bGwoKQorICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAgIGlmICghbV9leGVjdXRhYmxl
TWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ2FsbDsKKyAgICB9Cisg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgeworI2lm
IEVOQUJMRShMTElOVCkKKyAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNvbnN0cnVjdDsKKyAgICB9CisKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRv
cik7CisKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBob3N0RnVuY3Rpb25TdHViKEpTR2xvYmFsRGF0
YSosIE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogaG9zdEZ1bmN0aW9uU3R1YihKU0dsb2JhbERhdGEqLCBOYXRpdmVGdW5j
dGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYyk7CisKKyAgICB2b2lkIGNsZWFySG9zdEZ1
bmN0aW9uU3R1YnMoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5l
cmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKKyAgICBDVElTdHViTWFw
IG1fY3RpU3R1Yk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TmF0aXZlRnVuY3Rpb24sIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4gPiBIb3N0RnVuY3Rpb25TdHViTWFwOworICAgIE93blB0cjxIb3N0
RnVuY3Rpb25TdHViTWFwPiBtX2hvc3RGdW5jdGlvblN0dWJNYXA7CisgICAgUmVmUHRyPEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU+IG1fZXhlY3V0YWJsZU1lbW9yeTsKKworICAgIFRyYW1wb2xpbmVT
dHJ1Y3R1cmUgbV90cmFtcG9saW5lU3RydWN0dXJlOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklUVGh1bmtzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGh1bmtHZW5lcmF0
b3JfaAorI2RlZmluZSBUaHVua0dlbmVyYXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIEVOQUJMRShKSVQpCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNHbG9iYWxE
YXRhOworY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOworCit0eXBlZGVmIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiAoKlRodW5rR2VuZXJhdG9yKShKU0dsb2JhbERhdGEqKTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gVGh1bmtHZW5l
cmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2lu
Y2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgorI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZiBFTkFCTEUoSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3Jz
X2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
LmgiCisKICNpZiBFTkFCTEUoSklUKQogbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY3V0
YWJsZVBvb2w7Ci0gICAgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgIGNsYXNzIE5hdGl2ZUV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogCi0gICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgKCpUaHVua0dlbmVyYXRvcikoSlNHbG9iYWxEYXRhKik7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihKU0dsb2Jh
bERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3Io
SlNHbG9iYWxEYXRhKik7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBh
YnNUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOwotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERh
dGEqKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoSlNHbG9i
YWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBU
aHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9v
clRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJv
dW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
c3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSopOworCiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gVGh1bmtHZW5lcmF0b3JfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSklURXhjZXB0
aW9ucy5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlICJUcmFj
aW5nLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5
dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJ
KHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJPcGVyYW5kcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRC
eXRlY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxl
ZEJ5dGVjb2RlLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxl
ciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4
aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT1NSRXhpdC5oIgogCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCShyZXZpc2lvbiAxMzg0Mjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm9maWxl
ck9yaWdpbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5
dGVjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiQm9vbGVhbk9iamVjdC5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWxsRGF0YS5jcHAJKHJldmlzaW9uIDEzODQyOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5s
aW5rZWRDb2RlQmxvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEy
IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgi
CisjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnN0cnVjdERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1
ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWls
ZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
Ik5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXJyb3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NlbGwuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2lubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKK3sKK30KKwor
aW5saW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCit7CisjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKGdsb2JhbERhdGEu
aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdP
YmplY3RDbGFzcygwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOworI2Vu
ZGlmCisgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogSlND
ZWxsOjpzdHJ1Y3R1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsK
K30KKworaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwp
OworCisgICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIEFTU0VSVCghaGVhcC5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2Jq
ZWN0KCkpOworICAgIGhlYXAuZ2xvYmFsRGF0YSgpLT5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFz
cygmVDo6c19pbmZvKTsKKyNlbmRpZgorICAgIEpTQ2VsbCogcmVzdWx0ID0gMDsKKyAgICBpZiAo
VDo6bmVlZHNEZXN0cnVjdGlvbiAmJiBUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhJbW1vcnRhbFN0
cnVjdHVyZURlc3RydWN0b3Ioc2l6ZSkpOworICAgIGVsc2UgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rp
b24gJiYgIVQ6Omhhc0ltbW9ydGFsU3RydWN0dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0aE5vcm1hbERlc3RydWN0b3Ioc2l6ZSkpOwor
ICAgIGVsc2UgCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxs
b2NhdGVXaXRob3V0RGVzdHJ1Y3RvcihzaXplKSk7CisgICAgcmVzdWx0LT5jbGVhclN0cnVjdHVy
ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXApCit7CisgICAgcmV0dXJuIGFsbG9jYXRlQ2Vs
bDxUPihoZWFwLCBzaXplb2YoVCkpOworfQorICAgIAoraW5saW5lIGJvb2wgaXNaYXBwZWQoY29u
c3QgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBjZWxsLT5pc1phcHBlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQu
bmV0KQpAQCAtNzQsNiArNzQsNyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGxpbWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4
ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmlu
c2ljLmgiCi0jaW5jbHVkZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTExJbnRE
YXRhLmgiCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlw
ZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Niw2ICs2
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBD
b2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0
YXRlOwogICAgIGNsYXNzIEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsK
ICAgICBjbGFzcyBJbnRlcnByZXRlcjsKQEAgLTE4OCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJs
ZSogYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5
UHJvdG90eXBlVGFibGU7CkBAIC0zMDgsNyArMzEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1
ZSBob3N0Q2FsbFJldHVyblZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRo
cm93OworICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lk
KiB0YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2lu
Y2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgi
CiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiAjaWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNj
b3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmpl
Y3QuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAog
aW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJl
Z2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSm9pbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZ0pvaW5lci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OSArMjksOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCi0KIG5hbWVzcGFjZSBKU0MgewogCiAv
LyBUaGUgZGVzdGluYXRpb24gaXMgMTZiaXRzLCBhdCBsZWFzdCBvbmUgc3RyaW5nIGlzIDE2IGJp
dHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5
bWJvbFRhYmxlT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHJldmlz
aW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5o
IgorI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxp
bmVzLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ3MSArMjYsNTgxIEBACiAjaWZu
ZGVmIEpTVmFsdWVJbmxpbmVzX2gKICNkZWZpbmUgSlNWYWx1ZUlubGluZXNfaAogCisjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLSAgICBBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9JbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNJbnQzMigpKQotICAgICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJl
cihleGVjKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvVUludDMy
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IG9u
IEpTQzo6dG9VSW50MzIsIGFib3ZlLgotICAgICAgICByZXR1cm4gdG9JbnQzMihleGVjKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOwotICAgIH0KLQotICAg
IGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjphc1VJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNVSW50MzIoKSk7CitBTFdBWVNfSU5MSU5FIGludDMyX3QgSlNWYWx1ZTo6dG9J
bnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKICAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICB9CisgICAgcmV0dXJuIEpTQzo6dG9JbnQzMih0b051
bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc051bWJlcigpKTsKLSAgICAgICAgcmV0dXJu
IGlzSW50MzIoKSA/IGFzSW50MzIoKSA6IGFzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWUganNOYU4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWUoUU5hTik7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBjaGFyIGkpCi0gICAgewotICAgICAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkpCi0gICAgewotICAgICAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCi0gICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBsb25nIGkpCi0g
ICAgewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+
KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpT
VmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFs
dWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJs
ZSBkKQotICAgIHsKLSAgICAgICAgY29uc3QgaW50MzJfdCBhc0ludDMyID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZCk7Ci0gICAgICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFhc0ludDMyICYmIHNp
Z25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKLSAgICAgICAgICAgICp0aGlzID0gSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZSwgZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1
ZSkKLSAgICB7Ci0gICAgICAgIEpTVmFsdWUgdjsKLSAgICAgICAgdi51LmFzSW50NjQgPSBlbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHY7Ci0gICAgfQoraW5saW5lIHVpbnQzMl90IEpT
VmFsdWU6OnRvVUludDMyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICAvLyBTZWUgY29t
bWVudCBvbiBKU0M6OnRvVUludDMyLCBhYm92ZS4KKyAgICByZXR1cm4gdG9JbnQzMihleGVjKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7Cit9CisKK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjphc1VJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUludDMyKCkpOworICAgIHJl
dHVybiBhc0ludDMyKCk7Cit9CisKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNOdW1iZXIoKSBj
b25zdAoreworICAgIEFTU0VSVChpc051bWJlcigpKTsKKyAgICByZXR1cm4gaXNJbnQzMigpID8g
YXNJbnQzMigpIDogYXNEb3VibGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUganNOYU4oKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShj
aGFyIGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQoreworICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKHNob3J0IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgc2hv
cnQgaSkKK3sKKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQoreworICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSA8IDApIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29k
ZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpICE9IGkpIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91Ymxl
LCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
dGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBsb25nIGkpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihpKSk7Cit9CisKK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGRvdWJsZSBkKQoreworICAgIGNvbnN0IGludDMyX3QgYXNJbnQz
MiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOworICAgIGlmIChhc0ludDMyICE9IGQgfHwgKCFh
c0ludDMyICYmIHNpZ25iaXQoZCkpKSB7IC8vIHRydWUgZm9yIC0wLjAKKyAgICAgICAgKnRoaXMg
PSBKU1ZhbHVlKEVuY29kZUFzRG91YmxlLCBkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZCkpOworfQorCitpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0
dXJuIHZhbHVlLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6ZGVjb2Rl
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRKU1ZhbHVlKQoreworICAgIEpTVmFsdWUgdjsKKyAgICB2
LnUuYXNJbnQ2NCA9IGVuY29kZWRKU1ZhbHVlOworICAgIHJldHVybiB2OworfQogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAgewotICAg
ICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcp
Ci0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSBOdWxsVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gMDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCit7CisgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IE51bGxUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAgICAgCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSAw
OwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IFVuZGVmaW5lZFRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCi0gICAgewot
ICAgICAgICB1LmFzQml0cy50YWcgPSBCb29sZWFuVGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gMTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMTsK
K30KICAgICAKLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0ZhbHNlVGFnKQotICAgIHsK
LSAgICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gRGVsZXRlZFZh
bHVlVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChwdHIp
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90PihwdHIpOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQotICAgIHsKLSAgICAgICAg
aWYgKHB0cikKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxUYWc7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHUuYXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7Ci0gICAgICAgIHUu
YXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8SlND
ZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2wo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKHRhZygpICE9IERlbGV0ZWRWYWx1ZVRhZyk7
Ci0gICAgICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51
LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwotICAgIH0KLQotICAgIGlubGlu
ZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFn
KCkgPT0gTnVsbFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVm
aW5lZE9yTnVsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8
fCBpc051bGwoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gdGFnKCkgPT0gSW50MzJUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0
VGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRhZyAmJiBwYXlsb2FkKCk7Ci0g
ICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKK3sKKyAgICB1LmFzQml0
cy50YWcgPSBCb29sZWFuVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5h
c0JpdHMudGFnID0gRGVsZXRlZFZhbHVlVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOwor
fQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICBpZiAocHRy
KQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOworICAgIGVsc2UKKyAgICAgICAgdS5h
c0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gcmVpbnRl
cnByZXRfY2FzdDxpbnQzMl90PihwdHIpOworfQogCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNGYWxzZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiAhcGF5bG9hZCgpOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIHUuYXNCaXRzLnRhZyA9IENlbGxU
YWc7CisgICAgZWxzZQorICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSByZWludGVycHJldF9jYXN0PGludDMyX3Q+KGNvbnN0X2Nhc3Q8
SlNDZWxsKj4ocHRyKSk7Cit9CiAKLSAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dGFnKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy50YWc7Ci0gICAgfQoraW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIEFTU0VSVCh0YWcoKSAhPSBE
ZWxldGVkVmFsdWVUYWcpOworICAgIHJldHVybiB0YWcoKSAhPSBFbXB0eVZhbHVlVGFnOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0g
RW1wdHlWYWx1ZVRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmluZWRUYWc7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IE51bGxU
YWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXNVbmRlZmluZWQoKSB8fCBpc051bGwoKTsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQ2VsbFRh
ZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpIDwgTG93ZXN0VGFnOworfQorCitpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29s
ZWFuVGFnICYmIHBheWxvYWQoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGYWxzZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgIXBheWxvYWQoKTsK
K30KKworaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHUuYXNCaXRzLnRhZzsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXls
b2FkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAg
IH0KK2lubGluZSBpbnQzMl90IEpTVmFsdWU6OnBheWxvYWQoKSBjb25zdAoreworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBpbnQzMl90IEpTVmFsdWU6
OmFzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzSW50MzIoKSk7Ci0gICAg
ICAgIHJldHVybiB1LmFzQml0cy5wYXlsb2FkOwotICAgIH0KK2lubGluZSBpbnQzMl90IEpTVmFs
dWU6OmFzSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc0ludDMyKCkpOworICAgIHJldHVy
biB1LmFzQml0cy5wYXlsb2FkOworfQogICAgIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAg
ICAgICByZXR1cm4gdS5hc0RvdWJsZTsKLSAgICB9CitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNEb3VibGUoKSk7CisgICAgcmV0dXJuIHUu
YXNEb3VibGU7Cit9CiAgICAgCi0gICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFz
Q2VsbCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0cy5wYXlsb2FkKTsKLSAgICB9
Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcs
IGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0RvdWJsZSA9IGQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1LmFzQml0cy50
YWcgPSBJbnQzMlRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Ci0gICAgfQorQUxX
QVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzQ2VsbCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih1LmFzQml0
cy5wYXlsb2FkKTsKK30KKworQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUgZCkKK3sKKyAgICB1LmFzRG91YmxlID0gZDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAgdS5hc0JpdHMudGFnID0gSW50MzJUYWc7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGk7Cit9CiAKICNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMyX3QgdGFnLCBpbnQzMl90IHBheWxv
YWQpCi0gICAgewotICAgICAgICB1LmFzQml0cy50YWcgPSB0YWc7Ci0gICAgICAgIHUuYXNCaXRz
LnBheWxvYWQgPSBwYXlsb2FkOwotICAgIH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludDMy
X3QgdGFnLCBpbnQzMl90IHBheWxvYWQpCit7CisgICAgdS5hc0JpdHMudGFnID0gdGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBwYXlsb2FkOworfQogI2VuZGlmCiAKLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNJbnQz
MigpIHx8IGlzRG91YmxlKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNC
b29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1RydWUoKSB8fCBpc0ZhbHNl
KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0Jvb2xlYW4oKSk7Ci0gICAgICAgIHJldHVybiBwYXls
b2FkKCk7Ci0gICAgfQoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBpc0ludDMyKCkgfHwgaXNEb3VibGUoKTsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxz
ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAoreworICAg
IEFTU0VSVChpc0Jvb2xlYW4oKSk7CisgICAgcmV0dXJuIHBheWxvYWQoKTsKK30KIAogI2Vsc2Ug
Ly8gIVVTRShKU1ZBTFVFMzJfNjQpIGkuZS4gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIDB4MCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDAsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKCkK
LSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgLy8g
MHg0IGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAs
IGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2gg
aXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0g
VmFsdWVEZWxldGVkOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHB0cik7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY29uc3Qg
SlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
dS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgSlNWYWx1ZSYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0lu
dDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVl
OjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5h
c0ludDY0ID09IFZhbHVlRW1wdHk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBK
U1ZhbHVlKEpTVW5kZWZpbmVkKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTTnVsbCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTRmFsc2UpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFs
dWUoSlNUcnVlKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0ludDMy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0RvdWJsZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNO
dW1iZXIoKSAmJiAhaXNJbnQzMigpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1Zh
bHVlKEpTTnVsbFRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVlTnVsbDsKLSAg
ICB9CisvLyAweDAgY2FuIG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRh
ZyBvZiAwMCwgaW5kaWNhdGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgw
LCB3aGljaCBpcyBpbiB0aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKCkKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OworfQorCisvLyAweDQgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHg0LCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZykKK3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZURlbGV0ZWQ7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTQ2VsbCogcHRyKQoreworICAgIHUuYXNJbnQ2NCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQ7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgSlNWYWx1ZSYgb3Ro
ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgSlNWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
SW50NjQgPT0gVmFsdWVFbXB0eTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5l
ZCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTTnVsbCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzVHJ1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25zdAoreworICAg
IHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwor
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUpOworfQorCitpbmxpbmUgaW50
MzJfdCBKU1ZhbHVlOjphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4odS5hc0ludDY0KTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc051bWJlcigp
ICYmICFpc0ludDMyKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykK
K3sKKyAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Cit9CiAgICAgCi0gICAgaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUoSlNVbmRlZmluZWRUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBW
YWx1ZVVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1Ry
dWVUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZVRydWU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAgICAgIHUu
YXNJbnQ2NCA9IFZhbHVlRmFsc2U7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVW5kZWZpbmVkIGFu
ZCBudWxsIHNoYXJlIHRoZSBzYW1lIHZhbHVlLCBiYXIgdGhlICd1bmRlZmluZWQnIGJpdCBpbiB0
aGUgZXh0ZW5kZWQgdGFnLgotICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIH5UYWdCaXRVbmRl
ZmluZWQpID09IFZhbHVlTnVsbDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkg
PT0gVmFsdWVGYWxzZTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gKHUuYXNJbnQ2NCAmIFRhZ1R5cGVOdW1iZXIpID09IFRhZ1R5cGVOdW1i
ZXI7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgcmVpbnRlcnByZXREb3VibGVUb0ludDY0
KGRvdWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpOwotICAgIH0KLSAgICBpbmxpbmUgZG91YmxlIHJlaW50ZXJwcmV0SW50NjRUb0Rv
dWJsZShpbnQ2NF90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxk
b3VibGU+KHZhbHVlKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFs
dWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0
ID0gcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGQpICsgRG91YmxlRW5jb2RlT2Zmc2V0OwotICAg
IH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSh1LmFzSW50NjQgLSBEb3VibGVFbmNvZGVPZmZzZXQpOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwotICAgIH0KLQotICAgIEFMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlVW5k
ZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7CisgICAg
dS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0Zh
bHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmluZWQg
YW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0IGlu
IHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZp
bmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVhbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gISh1
LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQzMigp
IGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50NjQo
ZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
OworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitBTFdB
WVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBkKQor
eworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7CisgICAg
dS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKK30K
KworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5hc0lu
dDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyOwor
fQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAogI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCiAKK2lubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWlzQ2Vs
bCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c0dldHRlclNldHRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc0dldHRlclNldHRlcigpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJp
bmcmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJp
bmcoZXhlYywgcyk7Cit9CisKK2lubGluZSBTdHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0
U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBT
dHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwor
fQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OmdldE9iamVjdCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKK30KKworQUxXQVlT
X0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQzMih1aW50MzJfdCYgdikgY29uc3QKK3sKKyAg
ICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIGludDMyX3QgaSA9IGFzSW50MzIoKTsKKyAgICAg
ICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsKKyAgICAgICAgcmV0dXJuIGkgPj0gMDsK
KyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJs
ZSgpOworICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGQpOworICAgICAgICByZXR1
cm4gdiA9PSBkOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBKU1ZhbHVl
IEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2Vs
bCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpc0ludDMyKCkpIHsK
KyAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlzRG91YmxlKCkpIHsKKyAgICAgICAg
bnVtYmVyID0gYXNEb3VibGUoKTsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIGFzQ2Vs
bCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywgbnVtYmVyLCB2YWx1ZSk7CisgICAgaWYgKGlz
VHJ1ZSgpKSB7CisgICAgICAgIG51bWJlciA9IDEuMDsKKyAgICAgICAgdmFsdWUgPSAqdGhpczsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxs
KCkpIHsKKyAgICAgICAgbnVtYmVyID0gMC4wOworICAgICAgICB2YWx1ZSA9ICp0aGlzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOworICAg
IG51bWJlciA9IFFOYU47CisgICAgdmFsdWUgPSAqdGhpczsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIHJl
dHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDZWxs
KCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNs
b3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gSlNWYWx1ZUlubGluZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUu
aCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3BlIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkgfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTIgQXBwbGUs
IEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1l
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
TmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90
b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIk5hbWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlRXJyb3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIk51bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJO
dW1iZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBDYWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJ
VC5oIgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0K
ICNkZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJl
bmF0YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5s
aW5lcy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZWRSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdF
eHBNYXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdF
eHBDb25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhw
UHJvdG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgog
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNp
bmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNp
b25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCiAKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSA8bWFjaC9tYWNoLmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
IC8qIEluY2x1ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCiAjaW5jbHVkZSA8d3RmL0Nv
bXBpbGVyLmg+CiAKKwogLyogPT09PSBQTEFURk9STSBoYW5kbGVzIE9TLCBvcGVyYXRpbmcgZW52
aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5kCiAgICBDUFUuIFRoaXMgbWFjcm8gd2lsbCBiZSBw
aGFzZWQgb3V0IGluIGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24KICAgIG1hY3JvcywgcG9s
aWN5IGRlY2lzaW9uIG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRlZmluaXRpb25zLiA9PT09
ICovCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMi0yMyAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBKSVRUaHVua3MgY2xh
c3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5nIHNvIHNob3VsZCBub3QgYnJl
YWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnLgorCisg
ICAgICAgIEFsbCAuY3BwIGZpbGVzIHRoYXQgdXNlIHRoZSBKU0MgaW50ZXJuYWwgQVBJIG11c3Qg
bm93IHRyYW5zaXRpdmVseSBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMuaCwgYW5kIG5vbmUg
b2YgdGhlIG1ham9yIEpTQyBoZWFkZXJzIGRvIGl0IGZvciB5b3UgdG8gYXZvaWQKKyAgICAgICAg
Y2lyY3VsYXJpdHkuIFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGNpcmN1bGFy
aXR5IHdpdGggSlNDLCBzbworICAgICAgICB0aGlzIGNoYW5nZXMgYWxsIG9mIHRoZSBtYWpvciBX
ZWJDb3JlIEpTQyBiYXNlIGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICBPcGVyYXRpb25zLmgu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dFZhbHVlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAg
ICAgICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0xMi0yMyAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwbGl0IGZhc3QtcmVqZWN0
aW9uIGZpbHRlciBsb2dpYyBvZmYgU2VsZWN0b3JDaGVja2VyLgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQmluZGluZ1N0YXRlLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCiAKICNpbmNsdWRlIDxydW50aW1l
L0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXlCYXNlLmg+CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAko
cmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAx
Mzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksNyBAQAog
CiAjaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxydW50aW1lL0pT
R2xvYmFsT2JqZWN0Lmg+Ci0KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPGludGVycHJldGVyL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogCiAj
aW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNp
bmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgi
CiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFw
cGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0V3JhcHBhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVy
YXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSA8cnVu
dGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRp
b25zLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvUmVnRXhwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9SZWdFeHBPYmplY3QuaD4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5oCShyZXZpc2lvbiAxMzg0MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCiAjaW5jbHVkZSA8
cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4K
KyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAKIAogI2lmIFVT
RShKU0MpCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbERhdGEuaD4KKyNpbmNsdWRlIDxydW50
aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzg0
MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoV0VCR0wpICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
TG9hZGVyLmNwcAkocmV2aXNpb24gMTM4NDI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgVVNF
KEpTQykKICNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdpblZp
ZXdFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdp
blZpZXdFZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L2VmbC9QbHVnaW5WaWV3RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgog
I2luY2x1ZGUgInJ1bnRpbWUvSlNMb2NrLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNs
dWRlIDxFdmFzLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJl
dmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4K
KyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmNwcAkocmV2aXNpb24gMTM4
NDI5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKIAogI2luY2x1ZGUg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1dlYk1lbW9y
eVNhbXBsZXJMaW51eC5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWVtb3J5U3RhdGlzdGljcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgogI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lv
biAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDEzODQyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogCiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJs
ZVBvc2l0aW9uLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9j
ZXNzTWFpbkVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9l
ZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAtY2FjaGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx1
bmlzdGQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL0VXZWJLaXQuaAkocmV2aXNpb24gMTM4NDI5
KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL0VXZWJLaXQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDcsNiArNDcsNiBAQAogI2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJl
d2tfd2luZG93X2ZlYXR1cmVzLmgiCiAKLSNpbmNsdWRlIDxFdmFzLmg+CisjaW5jbHVkZSA8RXZh
cy5oPiAKIAogI2VuZGlmIC8vIEVXZWJLaXRfaApJbmRleDogU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21h
aW4uY3BwCShyZXZpc2lvbiAxMzg0MjkpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21h
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiZXdrX3Nl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJydW50aW1lL09wZXJhdGlv
bnMuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNs
dWRlIDxFZGplLmg+Cg==
</data>
<flag name="commit-queue"
          id="198054"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182210</attachid>
            <date>2013-01-10 14:31:43 -0800</date>
            <delta_ts>2013-01-11 13:31:41 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>thunks.patch</filename>
            <type>text/plain</type>
            <size>172376</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM5MzY4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NiBA
QAorMjAxMy0wMS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnIGFuZCBHZW9mZnJleSBHYXJlbi4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggd2FzIHN1cHBvc2VkIHRvIGp1c3QgbW92ZSBKSVRUaHVua3MgaW50byBpdHMgb3duIGZp
bGUuIEJ1dCB0aGVuIEkKKyAgICAgICAgcmVhbGl6ZWQgdGhhdCB0aGVyZSBpcyBhIGhvcnJpYmxl
IGNpcmN1bGFyIGRlcGVuZGVuY3kgY2hhaW4gYmV0d2VlbiBKU0NlbGwsCisgICAgICAgIEpTR2xv
YmFsRGF0YSwgQ2FsbEZyYW1lLCBhbmQgV2Vhaywgd2hpY2ggb25seSB3b3JrcyBiZWNhdXNlIG9m
IG1hZ2ljYWwgaW5jbHVkZQorICAgICAgICBvcmRlciBpbiBKSVRTdHVicy5oLCBhbmQgdGhlIGZh
Y3QgdGhhdCBKU0dsb2JhbERhdGEuaCBpbmNsdWRlcyBKSVRTdHVicy5oCisgICAgICAgIGJlZm9y
ZSBpdCBpbmNsdWRlcyBKU0NlbGwgb3IgSlNWYWx1ZS4KKyAgICAgICAgCisgICAgICAgIEkgZmly
c3QgdHJpZWQgdG8ganVzdCBnZXQgSklUVGh1bmtzLmggdG8ganVzdCBtYWdpY2FsbHkgZG8gdGhl
IHNhbWUgcG9pbnRsZXNzCisgICAgICAgIGluY2x1ZGVzIHRoYXQgSklUU3R1YnMuaCBoYWQsIGJ1
dCB0aGVuIEkgZGVjaWRlZCB0byBhY3R1YWxseSBmaXggdGhlIHVuZGVyZmx5aW5nCisgICAgICAg
IHByb2JsZW0sIHdoaWNoIHdhcyB0aGF0IEpTQ2VsbCBuZWVkZWQgQ2FsbEZyYW1lLCBDYWxsRnJh
bWUgbmVlZGVkIEpTR2xvYmFsRGF0YSwKKyAgICAgICAgSlNHbG9iYWxEYXRhIG5lZWRlZCBKSVRU
aHVua3MsIEpJVFRodW5rcyBuZWVkZWQgV2VhaywgYW5kIFdlYWsgbmVlZGVkIEpTQ2VsbC4KKyAg
ICAgICAgTm93LCBhbGwgb2YgSlNDZWxsJ3Mgb3V0Z29pbmcgZGVwZW5kZW5jaWVzIGFyZSBwbGFj
ZWQgaW4gSlNDZWxsSW5saW5lcy5oLiBUaGlzCisgICAgICAgIGFsc28gZ2F2ZSBtZSBhbiBvcHBv
cnR1bml0eSB0byBtb3ZlIEpTVmFsdWUgaW5saW5lIG1ldGhvZHMgZnJvbSBKU0NlbGwuaCBpbnRv
CisgICAgICAgIEpTVmFsdWVJbmxpbmVzLmguIEJ1dCB0byBtYWtlIHRoaXMgcmVhbGx5IHdvcmss
IEkgbmVlZGVkIHRvIHJlbW92ZSBpbmNsdWRlcyBvZgorICAgICAgICAqSW5saW5lcy5oIGZyb20g
b3RoZXIgaGVhZGVycyAoQ29kZUJsb2NrLmggZm9yIGV4YW1wbGUgaW5jbHVkZWQgSlNWYWx1ZUlu
bGluZXMuaCwKKyAgICAgICAgd2hpY2ggZGVmZWF0cyB0aGUgd2hvbGUgZW50aXJlIHB1cnBvc2Ug
b2YgaGF2aW5nIGFuIElubGluZXMuaCBmaWxlKSwgYW5kIEkgbmVlZGVkCisgICAgICAgIHRvIGFk
ZCBpbmNsdWRlcyBvZiAqSW5saW5lcy5oIGludG8gYSBidW5jaCBvZiAuY3BwIGZpbGVzLiBJIGRp
ZCB0aGlzIG1vc3RseSBieQorICAgICAgICBoYXZpbmcgLmNwcCBmaWxlcyBpbmNsdWRlIE9wZXJh
dGlvbnMuaC4gSW4gZnV0dXJlLCBpZiB5b3UncmUgYWRkaW5nIGEgLmNwcCBmaWxlCisgICAgICAg
IHRvIEpTQywgeW91J2xsIGFsbW9zdCBjZXJ0YWlubHkgaGF2ZSB0byBpbmNsdWRlIE9wZXJhdGlv
bnMuaCB1bmxlc3MgeW91IGVuam95CisgICAgICAgIGxpbmsgZXJyb3JzLgorCisgICAgICAgICog
QVBJL0pTQmFzZS5jcHA6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwOgorICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmNwcDoKKyAgICAg
ICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3Bw
OgorICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwOgorICAgICAgICAqIEpTQ1R5cGVkQXJyYXlTdHVicy5oOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9m
aWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcDoKKyAg
ICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAg
KiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgICog
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAg
ICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnku
Y3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKToKKyAgICAgICAg
KERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFu
Rm9yRlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U3BpbGwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKFNwZWN1bGF0aXZlSklUKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTdHJ1Y3R1cmVDaGVj
a0hvaXN0aW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFt
LmNwcDoKKyAgICAgICAgKiBoZWFwL0NvcGllZEJsb2NrLmg6CisgICAgICAgICogaGVhcC9Db3Bp
ZWRTcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgICogaGVhcC9IZWFwU3RhdGlzdGljcy5jcHA6CisgICAgICAg
ICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgICogaGVhcC9XZWFrQmxvY2suY3BwOgor
ICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgICogaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
OgorICAgICAgICAqIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwOgorICAgICAgICAqIGpp
dC9KSVQuY3BwOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAgICAgKiBq
aXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6Cisg
ICAgICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENvZGUuaDoK
KyAgICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVFN0dWJz
Lmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAg
ICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdh
Y3lQcm9maWxlci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbi5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNw
cDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBw
cm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVy
T1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoK
KyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBw
cm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3RE
YXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
ICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvR2V0
dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Fj
dGl2YXRpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6IEFkZGVk
LgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGwpOgorICAgICAg
ICAoSlNDOjpKU0NlbGw6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpz
dHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAg
ICAoSlNDOjphbGxvY2F0ZUNlbGwpOgorICAgICAgICAoSlNDOjppc1phcHBlZCk6CisgICAgICAg
IChKU0M6OkpTQ2VsbDo6aXNPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmlzU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjppc0dldHRlclNldHRlcik6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6aXNQcm94eSk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBw
ZXIpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnNldFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6bWV0aG9kVGFibGUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmluaGVyaXRzKToK
KyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU0NlbGw6
OnRvQm9vbGVhbik6CisgICAgICAgICogcnVudGltZS9KU0RhdGVNYXRoLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5o
OgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAg
ICAgICAoSlNDKToKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNOYW1lU2NvcGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm94eS5jcHA6
CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0pTVmFsdWUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZUlubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9JbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRv
VUludDMyKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVUludDMy
KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNVSW50MzIpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjphc051bWJlcik6CisgICAgICAgIChKU0M6OmpzTmFOKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6SlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmVuY29kZSk6CisgICAgICAg
IChKU0M6OkpTVmFsdWU6OmRlY29kZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9y
IGJvb2wpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpT
Qzo6SlNWYWx1ZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRW1wdHkp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc1VuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OkpT
VmFsdWU6OmlzTnVsbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxs
KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNDZWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aXNJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRG91YmxlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6aXNUcnVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNGYWxzZSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRhZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnBh
eWxvYWQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc0ludDMyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6YXNEb3VibGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc0NlbGwpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjppc051bWJlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
Qm9vbGVhbik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQm9vbGVhbik6CisgICAgICAgIChK
U0M6OnJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCk6CisgICAgICAgIChKU0M6OnJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6aXNQcmltaXRpdmUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpp
c0dldHRlclNldHRlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzT2JqZWN0KToKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6Z2V0U3RyaW5nKToKKyAgICAgICAgKEpTQzo6OjpnZXRTdHJpbmcp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpnZXRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpnZXRVSW50MzIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1ByaW1pdGl2ZSk6Cisg
ICAgICAgIChKU0M6OkpTVmFsdWU6OmdldFByaW1pdGl2ZU51bWJlcik6CisgICAgICAgIChKU0M6
OkpTVmFsdWU6OnRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9PYmplY3QpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aW5oZXJpdHMpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1RoaXNPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjpnZXQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXRCeUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjplcXVhbCk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmVxdWFsU2xvd0Nhc2VJbmxpbmUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjpzdHJpY3RFcXVhbFNsb3dDYXNlSW5saW5lKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6c3RyaWN0RXF1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU1dyYXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
TmFtZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVJbnN0YW5jZS5jcHA6
CisgICAgICAgICogcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJy
b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0MpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cC5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDYWNoZS5jcHA6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBDYWNoZWRSZXN1bHQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUv
U3RydWN0dXJlQ2hhaW4uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVGltZW91dENoZWNrZXIuY3Bw
OgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorCiAyMDEzLTAxLTEwICBaYW4gRG9iZXJzZWsg
IDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBFTkFCTEVfQU5J
TUFUSU9OX0FQSSBmZWF0dXJlIGRlZmluZSBvY2N1cmVuY2VzCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSlNDVHlwZWRBcnJheVN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5j
bHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lv
biAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTUHJv
eHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3Rk
aW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHJldmlzaW9uIDEz
OTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUg
PHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNSBAQAogCiAjaW5j
bHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCisjaW5jbHVkZSAiQ2FsbEZy
YW1lLmgiCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkluaXRpYWxpemVUaHJl
YWRpbmcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5o
IgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2luY2x1ZGUg
PGludGVycHJldGVyL0NhbGxGcmFtZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1ZGUgPHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzkyODEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJU2hpbXMu
aCIKICNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9j
ay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSAiRXJy
b3IuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgor
I2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2aXNpb24g
MTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAKICNpbmNsdWRlICJBUElDYXN0
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5o
IgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCShyZXZpc2lvbiAxMzky
ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVj
dC5oIgogCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShyZXZpc2lvbiAxMzkyODEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMiArMjcsMTMgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAKICNpbmNsdWRl
ICJBUElDYXN0LmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdFJlZi5oIgotI2luY2x1ZGUgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgotI2luY2x1ZGUg
PHJ1bnRpbWUvSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAj
aW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJK
U1N0cmluZy5oIgogI2luY2x1ZGUgIkpTVmFsdWVSZWYuaCIKICNpbmNsdWRlICJPYmplY3RQcm90
b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1l
QXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJK
U1NjcmlwdFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAko
cmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVk
ZSAiSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE5Nyw3ICsyMTk3LDYgQEAKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXGppdFxKSVRTdHVicy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KLQkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSklUVGh1bmtzLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksNyBAQAogCQkwRjkzMzJB
NTE0Q0E3REREMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3Ry
dWN0dXJlU2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY5NjNCMzgxM0ZDNkZFOTAwMDJEOUIyIC8qIFZhbHVlUHJvZmlsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NjNCMzYxM0ZDNkZERTAw
MDJEOUIyIC8qIFZhbHVlUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGOTZFQkIzMTY2NzZFRjYwMDhCQURFMyAvKiBDb2RlQmxvY2tX
aXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5NkVCQjExNjY3NkVGNDAwOEJBREUzIC8qIENvZGVCbG9ja1dpdGhKSVRUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY5NzQ5NzEx
Njg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTc0OTZGMTY4N0FERTIwMEE0RkY2QSAvKiBKU0Nl
bGxJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY5RDMzNzAxNjVEQkI5MDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM2RTE2NURCQjhE
MDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLzsgfTsKIAkJMEY5RkM4QzMxNEUxQjVGRTAw
RDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUwIC8qIFBv
bHltb3JwaGljUHV0QnlJZExpc3QuY3BwICovOyB9OwogCQkwRjlGQzhDNDE0RTFCNjAwMDBENTJB
RTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RkM4QzAxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3Jw
aGljUHV0QnlJZExpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTA1Niw2ICsxMDU3LDcgQEAKIAkJMEY5MzMyOUIxNENBN0RDMTAwODVGM0M2
IC8qIFN0cnVjdHVyZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1
Y3R1cmVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5NjNCMzYxM0ZDNkZE
RTAwMDJEOUIyIC8qIFZhbHVlUHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWYWx1ZVByb2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5NkVC
QjExNjY3NkVGNDAwOEJBREUzIC8qIENvZGVCbG9ja1dpdGhKSVRUeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVCbG9ja1dpdGhKSVRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGOTc0OTZGMTY4N0FERTIwMEE0RkY2QSAvKiBKU0NlbGxJbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2VsbElubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8q
IERpc2Fzc2VtYmxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
aXNhc3NlbWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQ
b2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjlGQzhDMDE0RTFCNUZCMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2x5bW9ycGhpY1B1dEJ5SWRM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzQyLDYgKzIzNDQsNyBAQAog
CQkJCTg2RkE5RTkwMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCAqLywKIAkJ
CQlCQzdGOEZCQTBFMTlEMUVGMDA4NjMyQzAgLyogSlNDZWxsLmNwcCAqLywKIAkJCQlCQzExNjdE
ODBFMTlCQ0M5MDA4MDY2REQgLyogSlNDZWxsLmggKi8sCisJCQkJMEY5NzQ5NkYxNjg3QURFMjAw
QTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLywKIAkJCQk5Nzg4RkMyMjE0NzFBRDBDMDA2OENF
MkQgLyogSlNEYXRlTWF0aC5jcHAgKi8sCiAJCQkJOTc4OEZDMjMxNDcxQUQwQzAwNjhDRTJEIC8q
IEpTRGF0ZU1hdGguaCAqLywKIAkJCQlDMkE3RjY4NzE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0
cnVjdGlibGVPYmplY3QuaCAqLywKQEAgLTMyNjYsNiArMzI2OSw5IEBACiAJCQkJODY3MDRCODgx
MkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0
QjhBMTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJyUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODY3MDRCNDMxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJTeW50YXhDaGVja2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheUFsbG9jYXRp
b25Qcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCIKIAorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZTo6dXBkYXRlSW5kZXhpbmdUeXBlKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNW
YWx1ZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVkdWNlV2hpdGVzcGFjZS5oIgogI2luY2x1ZGUgIlJlcGF0
Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHJldmlz
aW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU2Nv
cGUuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJl
dGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9w
ZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCiAKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBDb21wcmVzc2VkTGF6
eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRMYXp5T3BlcmFuZFZhbHVlUHJv
ZmlsZUhvbGRlcigpIHsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jl
c29sdmVHbG9iYWxTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJKU1ZhbHVlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgPHd0Zi9C
b3VuZHNDaGVja2VkUG9pbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAi
U3ltYm9sVGFibGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxMzkyODEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0
ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1
ZGUgIlByb3RlY3QuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXJBY3RpdmF0aW9u
LmgiCiAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNhdGlv
blBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
Z3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiREZHUGhhc2UuaCIK
ICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZhcmlhYmxlQWNjZXNzRGF0
YUR1bXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0VmFsdWUuaCIKICNpbmNsdWRlICJERkdH
cmFwaC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJERkdBcnJheU1vZGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRp
ZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2Jh
bFN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJERkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkdl
dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJ
ZFN0YXR1cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2Uu
aCIKICNpbmNsdWRlICJERkdWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkRGR1ZpcnR1YWxSZWdpc3Rl
ckFsbG9jYXRpb25QaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVk
ZSAiREZHSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR05vZGUuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82
NC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKERGR19KSVQpICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAKICNpbmNsdWRlICJE
RkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShy
ZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxMzkyODEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJERkdDb21tb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgi
CiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKQEAgLTM2NCw2ICszNjUsMjc2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNsZWFyR2VuZXJh
dGlvbkluZm8KICAgICBtX2ZwcnMgPSBSZWdpc3RlckJhbms8RlBSSW5mbz4oKTsKIH0KIAorU2ls
ZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpCit7CisgICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOworICAgIE5vZGVJbmRleCBu
b2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAgIE5vZGUmIG5vZGUgPSBhdChub2RlSW5k
ZXgpOworICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0
KCk7CisgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdERvdWJsZSk7CisgICAgICAgIAorICAg
IFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmls
bEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAg
c3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKKyAgICBlbHNlIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBp
ZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpCisgICAgICAgICAgICBzcGls
bEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFn
ZSkKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKKyAgICAgICAgfQorI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5mby5wYXlsb2Fk
R1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gc291cmNlID09IGlu
Zm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
fQorICAgICAgICAKKyAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIp
IHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgQVNTRVJU
KGlzSlNJbnRlZ2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOworICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNJbnQzMkNvbnN0YW50KG5vZGVJ
bmRleCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisgICAg
fSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9vbGVhbikgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBmaWxs
QWN0aW9uID0gRG9Ob3RoaW5nRm9yRmlsbDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5k
ZXgpKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7CisjZW5k
aWYKKyAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Cisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25z
dGFudChub2RlSW5kZXgpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdmFsdWUu
aXNDZWxsKCkpOworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxDb25zdGFudDsKKyAg
ICAgICAgfSBlbHNlIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRQdHI7CisjZWxzZQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxv
YWQ7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdFN0b3JhZ2UpIHsKKyAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNl
KTsKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBpZiAobm9k
ZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0VHJ1c3Rl
ZEpTQ29uc3RhbnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmlsbEFjdGlv
biA9IFNldEpTQ29uc3RhbnQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3Jt
YXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9h
ZDMyUGF5bG9hZEJveEludDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERv
dWJsZUJveERvdWJsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDY0OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluZm8udGFnR1BSKCkgPT0gc291cmNlIHx8
IGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7CisgICAgICAgIGVsc2Ug
aWYgKGluZm8ucGF5bG9hZEdQUigpID09IHNvdXJjZSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkMzJQYXlsb2FkOworICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUgVGFnCisgICAgICAg
ICAgICBzd2l0Y2ggKGluZm8uc3BpbGxGb3JtYXQoKSkgeworICAgICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50ZWdlcjoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTSW50ZWdlcik7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEYXRhRm9y
bWF0Q2VsbDoKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZv
cm1hdEpTQ2VsbCk7CisgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFu
OgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNC
b29sZWFuKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4g
U2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4
LCBzb3VyY2UpOworfQorICAgIAorU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJ
VDo6c2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBz
b3VyY2UpCit7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3Nw
aWxsTWVdOworICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOworICAg
IE5vZGUmIG5vZGUgPSBhdChub2RlSW5kZXgpOworICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSk7CisKKyAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGls
bEFjdGlvbjsKKyAgICBTaWxlbnRGaWxsQWN0aW9uIGZpbGxBY3Rpb247CisgICAgICAgIAorICAg
IGlmICghaW5mby5uZWVkc1NwaWxsKCkpCisgICAgICAgIHNwaWxsQWN0aW9uID0gRG9Ob3RoaW5n
Rm9yU3BpbGw7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCghYXQoaW5mby5ub2RlSW5kZXgo
KSkuaGFzQ29uc3RhbnQoKSk7CisgICAgICAgIEFTU0VSVChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdE5vbmUpOworICAgICAgICBBU1NFUlQoaW5mby5mcHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlRG91YmxlOworICAgIH0KKyAgICAgICAgCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAgICAgIEFT
U0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0aW9uID0g
U2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgIT0g
RGF0YUZvcm1hdE5vbmUgJiYgaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXREb3VibGUp
IHsKKyAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3Qg
YXMgYSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCisgICAgICAgIEFTU0VS
VChpbmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZEpTVW5ib3hEb3VibGU7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoaW5mby5yZWdp
c3RlckZvcm1hdCgpID09IERhdGFGb3JtYXREb3VibGUgfHwgaW5mby5yZWdpc3RlckZvcm1hdCgp
ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7CisgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewor
ICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKTsKKyAgICAgICAgZmls
bEFjdGlvbiA9IFNldERvdWJsZUNvbnN0YW50OworICAgIH0gZWxzZQorICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZERvdWJsZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4oc3BpbGxBY3Rpb24sIGZpbGxBY3Rpb24sIG5vZGVJbmRleCwgc291cmNlKTsKK30KKyAg
ICAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mIHBsYW4pCit7CisgICAgc3dpdGNoIChwbGFuLnNwaWxsQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIERvTm90aGluZ0ZvclNwaWxsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3Jl
MzJUYWc6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlMzJQYXlsb2FkOgorICAgICAgICBtX2ppdC5zdG9yZTMyKHBs
YW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZp
cnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVQdHI6Cisg
ICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBTdG9yZTY0OgorICAgICAgICBtX2ppdC5z
dG9yZTY0KHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAg
Y2FzZSBTdG9yZURvdWJsZToKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lz
dGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorICAgIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHJhbXBs
ZSkKK3sKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIFVOVVNFRF9QQVJBTShjYW5UcmFtcGxl
KTsKKyNlbmRpZgorICAgIHN3aXRjaCAocGxhbi5maWxsQWN0aW9uKCkpIHsKKyAgICBjYXNlIERv
Tm90aGluZ0ZvckZpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJDb25zdGFu
dDoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5v
ZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEJv
b2xlYW5Db25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJv
b2xlYW5Db25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNldENlbGxDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2Fz
ZSBTZXRUcnVzdGVkSlNDb25zdGFudDoKKyAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25z
dGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudDoKKyAgICAgICAgbV9q
aXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldERvdWJsZUNvbnN0YW50OgorICAg
ICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVt
YmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIG1f
aml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExvYWQzMlBheWxvYWRCb3hJbnQ6CisgICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6cGF5bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZERvdWJsZUJveERvdWJsZToKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZEpTVW5ib3hEb3VibGU6
CisgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5v
ZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRyYW1wbGUpOworICAgICAgICB1bmJv
eERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQor
ICAgIGNhc2UgU2V0SlNDb25zdGFudFRhZzoKKyAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgorICAgICAgICBtX2pp
dC5tb3ZlKEltbTMyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQo
KSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldEludDMyVGFnOgor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNldENlbGxUYWc6CisgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFuLmdwcigpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRCb29sZWFuVGFnOgorICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAgIG1faml0LmxvYWRE
b3VibGUoYWRkcmVzc09mRG91YmxlQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnBy
KCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGNhc2UgTG9hZDMyVGFnOgorICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52
aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IExvYWQzMlBheWxvYWQ6CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRQdHI6CisgICAgICAgIG1faml0LmxvYWRQ
dHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJl
Z2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBjYXNlIExvYWQ2NDoKKyAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkRG91YmxlOgorICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30K
KyAgICAKIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yKiBTcGVjdWxhdGl2ZUpJVDo6dHlwZWRB
cnJheURlc2NyaXB0b3IoQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDI3NSArMzMy
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB0aGV5IHNwaWxsIGFsbCBsaXZlIHZhbHVlcyB0byB0aGUg
YXBwcm9wcmlhdGUKICAgICAvLyBzbG90cyBpbiB0aGUgSlNTdGFjayB3aXRob3V0IGNoYW5naW5n
IGFueSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICBTaWxlbnRSZWdp
c3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1l
LCBHUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBt
X2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0g
aW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7Ci0g
ICAgICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7
Ci0gICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSk7Ci0gICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKLSAgICAgICAg
Ci0gICAgICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0aW9uOwotICAgICAgICBTaWxlbnRG
aWxsQWN0aW9uIGZpbGxBY3Rpb247Ci0gICAgICAgIAotICAgICAgICBpZiAoIWluZm8ubmVlZHNT
cGlsbCgpKQotICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JTcGlsbDsKLSAg
ICAgICAgZWxzZSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdEludGVnZXIpCi0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5
bG9hZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRD
ZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQotICAgICAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAg
ICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKLSAgICAgICAgICAgIH0KLSNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0
SlMpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwg
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlv
biA9IHNvdXJjZSA9PSBpbmZvLnRhZ0dQUigpID8gU3RvcmUzMlRhZyA6IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIo
KSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxv
YWQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgQVNTRVJUKGlzSlNJbnRl
Z2VyKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUlu
ZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEludDMyQ29uc3RhbnQ7Ci0g
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5
bG9hZDsKLSAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbikgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwotI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJj
ZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuQ29uc3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsIHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2Vs
bENvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotI2Vsc2UKLSAgICAgICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWRQdHI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFu
dChub2RlSW5kZXgpLmlzQ2VsbCgpKQotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAg
ICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQm94SW50OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSkgewot
ICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNEb3Vi
bGUpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91YmxlQm94RG91YmxlOwot
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsK
LSNlbHNlCi0gICAgICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0
YW50KCkpCi0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IGluZm8udGFnR1BSKCkgPT0gc291
cmNlID8gU2V0SlNDb25zdGFudFRhZyA6IFNldEpTQ29uc3RhbnRQYXlsb2FkOwotICAgICAgICAg
ICAgZWxzZSBpZiAoaW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQotICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotICAgICAgICAgICAgZWxzZSB7IC8vIEZpbGwg
dGhlIFRhZwotICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwotICAgICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJUYWc7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SlNDZWxsKTsK
LSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldENlbGxUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKLSAgICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5U
YWc7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJUYWc7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRp
ZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0K
LSAgICAKLSAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBGUFJSZWcgc291cmNlKQotICAgIHsKLSAgICAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW3NwaWxsTWVdOwotICAgICAgICBO
b2RlSW5kZXggbm9kZUluZGV4ID0gaW5mby5ub2RlSW5kZXgoKTsKLSAgICAgICAgTm9kZSYgbm9k
ZSA9IGF0KG5vZGVJbmRleCk7Ci0gICAgICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkg
PT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxB
Y3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxsKCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
YXQoaW5mby5ub2RlSW5kZXgoKSkuaGFzQ29uc3RhbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmZwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
RG91YmxlOwotICAgICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
IGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc051bWJlckNv
bnN0YW50KG5vZGVJbmRleCkpOwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldERvdWJsZUNv
bnN0YW50OwotICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9y
bWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewotICAg
ICAgICAgICAgLy8gaXQgd2FzIGFscmVhZHkgc3BpbGxlZCBwcmV2aW91c2x5IGFuZCBub3QgYXMg
YSBkb3VibGUsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdW5ib3hpbmcuCi0gICAgICAgICAgICBBU1NF
UlQoaW5mby5zcGlsbEZvcm1hdCgpICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkSlNVbmJveERvdWJsZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IEFTU0VSVChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZv
LnJlZ2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICAgICAgaWYgKG5v
ZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGU7Ci0j
ZW5kaWYKLQotICAgICAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxhbihzcGlsbEFjdGlv
biwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4pCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgewotICAgICAgICBjYXNlIERvTm90
aGluZ0ZvclNwaWxsOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlRh
ZzoKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnRh
Z0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHBsYW4uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTdG9yZVB0cjoKLSAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKHBsYW4uZ3ByKCks
IEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdp
c3RlcigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBjYXNlIFN0b3JlNjQ6Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHBsYW4uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rl
cigpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIFN0b3JlRG91
YmxlOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUocGxhbi5mcHIoKSwgSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxl
KQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBVTlVTRURfUEFSQU0oY2Fu
VHJhbXBsZSk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgewot
ICAgICAgICBjYXNlIERvTm90aGluZ0ZvckZpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2
YWx1ZU9mSW50MzJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Qm9vbGVhbkNvbnN0YW50OgotICAgICAg
ICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChwbGFu
Lm5vZGVJbmRleCgpKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0Q2VsbENvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
UHRyKHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLmFzQ2VsbCgpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBj
YXNlIFNldFRydXN0ZWRKU0NvbnN0YW50OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9m
SlNDb25zdGFudEFzSW1tNjQocGxhbi5ub2RlSW5kZXgoKSkuYXNUcnVzdGVkSW1tNjQoKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50
OgotICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tNjQocGxhbi5u
b2RlSW5kZXgoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2V0RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NCh2YWx1ZU9mTnVtYmVyQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgo
KSkpKSwgY2FuVHJhbXBsZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShjYW5U
cmFtcGxlLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWQzMlBheWxvYWRCb3hJbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
YWREb3VibGVCb3hEb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
b2FkSlNVbmJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIGNhblRy
YW1wbGUpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIGNhc2UgU2V0SlNDb25zdGFudFRh
ZzoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5u
b2RlSW5kZXgoKSkudGFnKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNldEpTQ29uc3RhbnRQYXlsb2FkOgotICAgICAgICAgICAgbV9qaXQubW92ZShJ
bW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKS5wYXlsb2FkKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEludDMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBw
bGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldENlbGxUYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFu
VGFnOgotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVh
blRhZyksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0
RG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKGFkZHJlc3NPZkRv
dWJsZUNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLCBwbGFuLmZwcigpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgTG9hZDMyVGFnOgotICAgICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIExvYWQzMlBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRQdHI6Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9k
ZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBjYXNlIExvYWQ2NDoKLSAgICAgICAg
ICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkRG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBTaWxlbnRSZWdpc3RlclNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yR1BSKFZp
cnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgc291cmNlKTsKKyAgICBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIHNpbGVudFNhdmVQbGFuRm9yRlBSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBG
UFJSZWcgc291cmNlKTsKKyAgICB2b2lkIHNpbGVudFNwaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4mKTsKKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYsIEdQUlJlZyBjYW5UcmFtcGxlKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChib29s
IGRvU3BpbGwsIENvbGxlY3Rpb25UeXBlJiBwbGFucywgR1BSUmVnIGV4Y2x1ZGUsIEdQUlJlZyBl
eGNsdWRlMiA9IEludmFsaWRHUFJSZWcsIEZQUlJlZyBmcHJFeGNsdWRlID0gSW52YWxpZEZQUlJl
ZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lz
dGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJ
KHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFi
bGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1ZhbHVlU291cmNlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2suaAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIkNvcHlXb3JrTGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpT
VmFsdWUuaCIKLSNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDEzOTI4
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVC
bG9jay5oIgogI2luY2x1ZGUgIldlYWtTZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAxMzkyODEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWYgT1MoVU5JWCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVC
bG9jay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzkyODEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1
YlJvdXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NB
d2FyZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShy
ZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJh
eS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRj
aEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rv
b2wuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAkocmV2aXNpb24g
MTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5
cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ29kZS5oCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOSBAQAogCiAjaWYgRU5B
QkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1
ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKKyNpbmNsdWRlICJKSVRT
dHVicy5oIgorI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDEzOTI4
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKICNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
OCArMzYsNiBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUg
IlJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZU9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIlRo
dW5rR2VuZXJhdG9ycy5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2lu
Y2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYuaCIKLSNpbmNsdWRlICJSZWdpc3Rlci5oIgotI2luY2x1ZGUgIlJlc29sdmVPcGVyYXRp
b24uaCIKLSNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKKyNpbmNsdWRlICJUaHVua0dlbmVy
YXRvci5oIgorI2luY2x1ZGUgIldlYWsuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNlcHRp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRF
eGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTExJbnRDb21tb24uaCIK
ICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCShyZXZpc2lv
biAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmls
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZS5oIgogI2luY2x1ZGUg
IlByb2ZpbGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNw
cAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
TGVnYWN5UHJvZmlsZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJv
ZmlsZS5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJC
eXRlY29kZS5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZVNlcXVlbmNlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzLmgiCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgUHJvZmlsZXIgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJD
b21waWxhdGlvbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsZWRCeXRlY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJPU1JFeGl0
LmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0
ZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTY29wZS5oIgogI2lu
Y2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2Zp
bGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyT3JpZ2luLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyT3JpZ2luLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9maWxlckJ5dGVj
b2Rlcy5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNw
cAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyT3JpZ2luU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVj
b2Rlcy5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuaCIKIAogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3
ICsyNCw3IEBACiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNWYWx1
ZS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IHVzaW5nIHN0ZDo6bWluOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1
bmN0aW9uLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbkNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJCb29sZWFuUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJCb29sZWFuT2JqZWN0LmgiCiAKICNpbmNsdWRlICJK
U1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FsbERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRh
LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2FsbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
RXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkocmV2aXNp
b24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQnl0ZWNvZGVH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlN0cm9uZ0lu
bGluZXMuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlzaW9uIDEzOTI4MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2lu
Y2x1ZGUgIkNvZGVQcm9maWxpbmcuaCIKKyNpbmNsdWRlICJEZWJ1Z2dlci5oIgorI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
U0xvY2suaCIKLSNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJQYXJzZXIuaCIKLSNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUg
PHd0Zi9XVEZUaHJlYWREYXRhLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0RGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0RGF0YS5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnN0cnVjdERhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0
ZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVD
b25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNT
dHJpbmdCdWlsZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJP
YmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8dGltZS5oPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3Bw
CShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAKICNpbmNsdWRl
ICJKU0RhdGVNYXRoLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQorI2luY2x1ZGUg
IkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90
b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIK
ICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCShyZXZpc2lvbiAxMzky
ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUg
IkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJFcnJvclByb3RvdHlwZS5oIgog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJFcnJvckluc3RhbmNl
LmgiCiAKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
IkpJVERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhl
ci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmlj
U3RyaW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJD
YWxsRGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERh
dGEuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAi
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBF
eGVjU3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAK
LWlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5s
aW5lIHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Ci17Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmpl
Y3RDbGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxs
OjpzdHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0K
LQotaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwot
Ci0gICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpT
VmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29s
IEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXND
ZWxsKCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygp
OwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1p
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2Vs
bCgpICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpn
ZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBT
dHJpbmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2Us
IFVua25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVy
biBqc1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCkt
PmdldE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJ
bnQzMih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAg
IGludDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpKTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkp
IHsKLSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVm
ZXJyZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJp
bWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigp
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAg
ICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChp
c0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhl
YywgbnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9
IDEuMDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4w
OwotICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgQVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUg
PSAqdGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNW
YWx1ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMy
KCkpCi0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMp
OwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVh
cCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBF
TkFCTEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0lu
aXRpYWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6
aW5nT2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9
IDA7Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1
cmUpCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVX
aXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpu
ZWVkc0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVj
dG9yKHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0Nl
bGwqPihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+
Y2xlYXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVy
biBhbGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29s
IGlzWmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBw
ZWQoKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUg
VG8ganNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiSlNDZWxsLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCitpbmxpbmUgSlNDZWxsOjpKU0NlbGwoQ3JlYXRpbmdFYXJseUNlbGxUYWcpCit7Cit9CisK
K2lubGluZSBKU0NlbGw6OkpTQ2VsbChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgIDogbV9zdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgdGhpcywgc3RydWN0
dXJlKQoreworfQorCitpbmxpbmUgdm9pZCBKU0NlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyAgICBBU1NF
UlQoZ2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKKyAgICBnbG9iYWxEYXRhLnNl
dEluaXRpYWxpemluZ09iamVjdENsYXNzKDApOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZ2xv
YmFsRGF0YSk7CisjZW5kaWYKKyAgICBBU1NFUlQobV9zdHJ1Y3R1cmUpOworfQorCitpbmxpbmUg
dm9pZCBKU0NlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIENyZWF0aW5nRWFybHlDZWxsVGFnKQoreworI2lmIEVOQUJMRShH
Q19WQUxJREFUSU9OKQorICAgIEFTU0VSVChnbG9iYWxEYXRhLmlzSW5pdGlhbGl6aW5nT2JqZWN0
KCkpOworICAgIGdsb2JhbERhdGEuc2V0SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCk7CisgICAg
aWYgKHN0cnVjdHVyZSkKKyNlbmRpZgorICAgICAgICBtX3N0cnVjdHVyZS5zZXRFYXJseVZhbHVl
KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZSk7CisgICAgLy8gVmVyeSBmaXJzdCBzZXQgb2Yg
YWxsb2NhdGlvbnMgd29uJ3QgaGF2ZSBhIHJlYWwgc3RydWN0dXJlLgorICAgIEFTU0VSVChtX3N0
cnVjdHVyZSB8fCAhZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworfQorCitpbmxpbmUg
U3RydWN0dXJlKiBKU0NlbGw6OnN0cnVjdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3Ry
dWN0dXJlLmdldCgpOworfQorCitpbmxpbmUgdm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBNQVJLX0xPR19QQVJFTlQo
dmlzaXRvciwgY2VsbCk7CisKKyAgICB2aXNpdG9yLmFwcGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhl
YXAsIHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVChzaXplID49IHNpemVvZihUKSk7CisjaWYg
RU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKCFoZWFwLmdsb2JhbERhdGEoKS0+aXNJ
bml0aWFsaXppbmdPYmplY3QoKSk7CisgICAgaGVhcC5nbG9iYWxEYXRhKCktPnNldEluaXRpYWxp
emluZ09iamVjdENsYXNzKCZUOjpzX2luZm8pOworI2VuZGlmCisgICAgSlNDZWxsKiByZXN1bHQg
PSAwOworICAgIGlmIChUOjpuZWVkc0Rlc3RydWN0aW9uICYmIFQ6Omhhc0ltbW9ydGFsU3RydWN0
dXJlKQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRl
V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplKSk7CisgICAgZWxzZSBpZiAoVDo6
bmVlZHNEZXN0cnVjdGlvbiAmJiAhVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1cmUpCisgICAgICAgIHJl
c3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVXaXRoTm9ybWFsRGVzdHJ1
Y3RvcihzaXplKSk7CisgICAgZWxzZSAKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlND
ZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhvdXREZXN0cnVjdG9yKHNpemUpKTsKKyAgICByZXN1bHQt
PmNsZWFyU3RydWN0dXJlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKyAgICAKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+Cit2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCkKK3sKKyAgICByZXR1
cm4gYWxsb2NhdGVDZWxsPFQ+KGhlYXAsIHNpemVvZihUKSk7Cit9CisgICAgCitpbmxpbmUgYm9v
bCBpc1phcHBlZChjb25zdCBKU0NlbGwqIGNlbGwpCit7CisgICAgcmV0dXJuIGNlbGwtPmlzWmFw
cGVkKCk7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNPYmplY3QoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0cnVjdHVyZS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNDZWxs
Ojppc1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RydWN0dXJlLT50eXBlSW5mbygp
LnR5cGUoKSA9PSBTdHJpbmdUeXBlOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6OmlzR2V0dGVy
U2V0dGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlw
ZSgpID09IEdldHRlclNldHRlclR5cGU7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNQcm94
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9
PSBQcm94eVR5cGU7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXIo
KSBjb25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0g
QVBJVmFsdWVXcmFwcGVyVHlwZTsKK30KKworaW5saW5lIHZvaWQgSlNDZWxsOjpzZXRTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAg
ICBBU1NFUlQoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSA9
PSB0aGlzLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkp
OworICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpID09IG1fc3RydWN0dXJlLT5jbGFz
c0luZm8oKSk7CisgICAgQVNTRVJUKCFtX3N0cnVjdHVyZQorICAgICAgICB8fCBtX3N0cnVjdHVy
ZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRIYXNCZWVuSW52YWxpZGF0ZWQoKQorICAgICAgICB8
fCBtX3N0cnVjdHVyZS5nZXQoKSA9PSBzdHJ1Y3R1cmUpOworICAgIG1fc3RydWN0dXJlLnNldChn
bG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUpOworfQorCitpbmxpbmUgY29uc3QgTWV0aG9kVGFi
bGUqIEpTQ2VsbDo6bWV0aG9kVGFibGUoKSBjb25zdAoreworICAgIHJldHVybiAmY2xhc3NJbmZv
KCktPm1ldGhvZFRhYmxlOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKGNvbnN0
IENsYXNzSW5mbyogaW5mbykgY29uc3QKK3sKKyAgICByZXR1cm4gY2xhc3NJbmZvKCktPmlzU3Vi
Q2xhc3NPZihpbmZvKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIEpTQ2VsbDo6ZmFzdEdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBpZiAoIXN0cnVjdHVyZSgpLT50eXBlSW5mbygp
Lm92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3Qo
dGhpcyktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBtZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworLy8gRmFzdCBjYWxsIHRvIGdldCBhIHByb3Bl
cnR5IHdoZXJlIHdlIG1heSBub3QgeWV0IGhhdmUgY29udmVydGVkIHRoZSBzdHJpbmcgdG8gYW4K
Ky8vIGlkZW50aWZpZXIuIFRoZSBmaXJzdCB0aW1lIHdlIHBlcmZvcm0gYSBwcm9wZXJ0eSBhY2Nl
c3Mgd2l0aCBhIGdpdmVuIHN0cmluZywgdHJ5CisvLyBwZXJmb3JtaW5nIHRoZSBwcm9wZXJ0eSBt
YXAgbG9va3VwIHdpdGhvdXQgZm9ybWluZyBhbiBpZGVudGlmaWVyLiBXZSBkZXRlY3QgdGhpcwor
Ly8gY2FzZSBieSBjaGVja2luZyB3aGV0aGVyIHRoZSBoYXNoIGhhcyB5ZXQgYmVlbiBzZXQgZm9y
IHRoaXMgc3RyaW5nLgorQUxXQVlTX0lOTElORSBKU1ZhbHVlIEpTQ2VsbDo6ZmFzdEdldE93blBy
b3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmICgh
c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCkgJiYg
IXN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0ID0gbmFtZS5pbXBsKCktPmhhc0hhc2goKQorICAgICAgICAgICAg
PyBzdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCBu
YW1lKSkKKyAgICAgICAgICAgIDogc3RydWN0dXJlKCktPmdldChleGVjLT5nbG9iYWxEYXRhKCks
IG5hbWUpOworICAgICAgICBpZiAob2Zmc2V0ICE9IGludmFsaWRPZmZzZXQpCisgICAgICAgICAg
ICByZXR1cm4gYXNPYmplY3QodGhpcyktPmxvY2F0aW9uRm9yT2Zmc2V0KG9mZnNldCktPmdldCgp
OworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6
OnRvQm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkp
IAorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcqPih0aGlzKS0+dG9C
b29sZWFuKCk7CisgICAgcmV0dXJuICFzdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAJ
KHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0
ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQubmV0KQpAQCAtNzQsNiArNzQs
NyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGxp
bWl0cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
T2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBh
cnNlci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMTkxLDExICsxOTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5saW5lV2F0
Y2hwb2ludFNldCBtX2luaGVyaXRvcklEV2F0Y2hwb2ludDsKICAgICB9OwogCi0gICAgaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNGdW5jdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
aXNDZWxsKCkgJiYgKGFzQ2VsbCgpLT5pbmhlcml0cygmSlNGdW5jdGlvbjo6c19pbmZvKSB8fCBh
c0NlbGwoKS0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb246OnNfaW5mbykpOwotICAgIH0KLQog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0Z1bmN0aW9uX2gKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiAxMzky
ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGVBbGxvY2F0
b3IuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmluc2ljLmgiCi0jaW5jbHVk
ZSAiSklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNpbmNsdWRlICJKSVRUaHVu
a3MuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCkBAIC00NSw2
ICs0NSw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU3Ryb25nLmgi
CiAjaW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgog
I2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlwZWRBcnJheURlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Nyw2ICs2OCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBDb2RlQ2FjaGU7CiAgICAg
Y2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0YXRlOwogICAgIGNsYXNz
IEhhbmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsKICAgICBjbGFzcyBJbnRl
cnByZXRlcjsKQEAgLTE4OSw3ICsxOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBH
bG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xpZW50RGF0YSogY2xpZW50
RGF0YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7CisgICAgICAgIEV4ZWNTdGF0
ZSogdG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlDb25zdHJ1
Y3RvclRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5UHJvdG90eXBlVGFibGU7
CkBAIC0zMDksNyArMzExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUmV0dXJuQWRk
cmVzc1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVy
blZhbHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRocm93OworICAgICAgICBF
eGVjU3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lkKiB0YXJnZXRNYWNoaW5l
UENGb3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldEludGVycHJldGVyUENGb3JU
aHJvdzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpT
TmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2luY2x1ZGUgIkpTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9m
aWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgiCiAjaW5jbHVkZSAiTm9k
ZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5j
bHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSw3ICsy
NSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAj
aWYgVVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAKICNp
bmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKIAorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNpbmNsdWRlICJMb29rdXAu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXku
aCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3MSwyNyArMTE3MSw2IEBAIGlubGluZSBKU1Zh
bHVlIEpTT2JqZWN0Ojpwcm90b3R5cGUoKSBjb24KICAgICByZXR1cm4gc3RydWN0dXJlKCktPnN0
b3JlZFByb3RvdHlwZSgpOwogfQogCi1pbmxpbmUgY29uc3QgTWV0aG9kVGFibGUqIEpTQ2VsbDo6
bWV0aG9kVGFibGUoKSBjb25zdAotewotICAgIHJldHVybiAmY2xhc3NJbmZvKCktPm1ldGhvZFRh
YmxlOwotfQotCi1pbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKGNvbnN0IENsYXNzSW5mbyog
aW5mbykgY29uc3QKLXsKLSAgICByZXR1cm4gY2xhc3NJbmZvKCktPmlzU3ViQ2xhc3NPZihpbmZv
KTsKLX0KLQotLy8gdGhpcyBtZXRob2QgaXMgaGVyZSB0byBiZSBhZnRlciB0aGUgaW5saW5lIGRl
Y2xhcmF0aW9uIG9mIEpTQ2VsbDo6aW5oZXJpdHMKLWlubGluZSBib29sIEpTVmFsdWU6OmluaGVy
aXRzKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKSBjb25zdAotewotICAgIHJldHVybiBpc0Nl
bGwoKSAmJiBhc0NlbGwoKS0+aW5oZXJpdHMoY2xhc3NJbmZvKTsKLX0KLQotaW5saW5lIEpTT2Jq
ZWN0KiBKU1ZhbHVlOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAg
IHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3Qo
YXNDZWxsKCksIGV4ZWMpIDogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoZXhlYyk7Ci19Ci0KIEFMV0FZ
U19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZSgpLT5nZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUpOwpAQCAtMTIxNSwyOSArMTE5NCw2IEBAIEFMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGUKICAgICByZXR1cm4ganNDYXN0PEpTT2Jq
ZWN0Kj4oY2VsbCktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIGlmICghc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90KCkpCi0gICAgICAgIHJldHVybiBhc09iamVjdCh0aGlzKS0+
aW5saW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAg
cmV0dXJuIG1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwotfQotCi0vLyBGYXN0IGNhbGwgdG8gZ2V0IGEgcHJvcGVydHkgd2hl
cmUgd2UgbWF5IG5vdCB5ZXQgaGF2ZSBjb252ZXJ0ZWQgdGhlIHN0cmluZyB0byBhbgotLy8gaWRl
bnRpZmllci4gVGhlIGZpcnN0IHRpbWUgd2UgcGVyZm9ybSBhIHByb3BlcnR5IGFjY2VzcyB3aXRo
IGEgZ2l2ZW4gc3RyaW5nLCB0cnkKLS8vIHBlcmZvcm1pbmcgdGhlIHByb3BlcnR5IG1hcCBsb29r
dXAgd2l0aG91dCBmb3JtaW5nIGFuIGlkZW50aWZpZXIuIFdlIGRldGVjdCB0aGlzCi0vLyBjYXNl
IGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIGhhc2ggaGFzIHlldCBiZWVuIHNldCBmb3IgdGhpcyBz
dHJpbmcuCi1BTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHko
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKCFzdHJ1Y3R1
cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSAmJiAhc3RydWN0
dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKSkgewotICAgICAgICBQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQgPSBuYW1lLmltcGwoKS0+aGFzSGFzaCgpCi0gICAgICAgICAgICA/IHN0cnVj
dHVyZSgpLT5nZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKQot
ICAgICAgICAgICAgOiBzdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7
Ci0gICAgICAgIGlmIChvZmZzZXQgIT0gaW52YWxpZE9mZnNldCkKLSAgICAgICAgICAgIHJldHVy
biBhc09iamVjdCh0aGlzKS0+bG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0KS0+Z2V0KCk7Ci0gICAg
fQotICAgIHJldHVybiBKU1ZhbHVlKCk7Ci19Ci0KIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlu
bGluZSBhIGZ1bmN0aW9uIHRoaXMgbGFyZ2UgYnV0IGl0IG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UK
IC8vIHNpbmNlIHRoaXMgaXMgZnVuY3Rpb24gdmVyeSBob3QgaW4gdmFyaWFibGUgbG9va3VwCiBB
TFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTE0
NjMsNzQgKzE0MTksNiBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6dG9QcmltaXRpdmUoRXhl
CiAgICAgcmV0dXJuIG1ldGhvZFRhYmxlKCktPmRlZmF1bHRWYWx1ZSh0aGlzLCBleGVjLCBwcmVm
ZXJyZWRUeXBlKTsKIH0KIAotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKLXsKLSAgICBQcm9wZXJ0eVNs
b3Qgc2xvdChhc1ZhbHVlKCkpOwotICAgIHJldHVybiBnZXQoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKLX0KLQotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KSBjb25zdAotewot
ICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBwcm90b3R5
cGUgPSBzeW50aGVzaXplUHJvdG90eXBlKGV4ZWMpOwotICAgICAgICBpZiAoIXByb3RvdHlwZS0+
Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywg
cHJvcGVydHlOYW1lKTsKLSAgICB9Ci0gICAgSlNDZWxsKiBjZWxsID0gYXNDZWxsKCk7Ci0gICAg
d2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNlbGwtPmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3Qo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZh
bHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gYXNP
YmplY3QoY2VsbCktPnByb3RvdHlwZSgpOwotICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVj
dCgpKQotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIGNlbGwgPSBh
c09iamVjdChwcm90b3R5cGUpOwotICAgIH0KLX0KLQotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6
Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdAotewotICAg
IFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGdldChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1pbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXQoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29u
c3QKLXsKLSAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAgICBKU09iamVjdCog
cHJvdG90eXBlID0gc3ludGhlc2l6ZVByb3RvdHlwZShleGVjKTsKLSAgICAgICAgaWYgKCFwcm90
b3R5cGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIHJldHVybiBzbG90LmdldFZhbHVl
KGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgfQotICAgIEpTQ2VsbCogY2VsbCA9IGNvbnN0X2Nh
c3Q8SlNDZWxsKj4oYXNDZWxsKCkpOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChj
ZWxsLT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KGNlbGwsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShl
eGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IGFzT2JqZWN0
KGNlbGwpLT5wcm90b3R5cGUoKTsKLSAgICAgICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkK
LSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBjZWxsID0gcHJvdG90
eXBlLmFzQ2VsbCgpOwotICAgIH0KLX0KLQotaW5saW5lIHZvaWQgSlNWYWx1ZTo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0g
ICAgICAgIHB1dFRvUHJpbWl0aXZlKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT5wdXQo
YXNDZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCi1pbmxpbmUg
dm9pZCBKU1ZhbHVlOjpwdXRCeUluZGV4KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQotewotICAgIGlmIChVTkxJ
S0VMWSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIHB1dFRvUHJpbWl0aXZlQnlJbmRleChleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXNDZWxsKCksIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKLX0KLQogQUxXQVlTX0lOTElORSBK
U09iamVjdCogUmVnaXN0ZXI6OmZ1bmN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIWpzVmFsdWUo
KSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuY3BwCShyZXZp
c2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTUHJveHkuaCIK
IAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTY29wZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1
ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIgogCisjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogaW50IEpTU2VnbWVudGVkVmFyaWFibGVP
YmplY3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJlZ2lzdGVyQWRkcmVzcykKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkocmV2aXNpb24gMTM5MjgxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5
KQpAQCAtNDkxLDEzICs0OTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBib29s
IGlzSlNTdHJpbmcoSlNWYWx1ZSB2KSB7IHJldHVybiB2LmlzQ2VsbCgpICYmIHYuYXNDZWxsKCkt
PmNsYXNzSW5mbygpID09ICZKU1N0cmluZzo6c19pbmZvOyB9CiAKLSAgICBpbmxpbmUgYm9vbCBK
U0NlbGw6OnRvQm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBp
ZiAoaXNTdHJpbmcoKSkgCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNT
dHJpbmcqPih0aGlzKS0+dG9Cb29sZWFuKCk7Ci0gICAgICAgIHJldHVybiAhc3RydWN0dXJlKCkt
Pm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAg
ICB9Ci0KICAgICAvLyAtLS0gSlNWYWx1ZSBpbmxpbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgICAKICAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjp0b0Jvb2xlYW4oRXhlY1N0YXRl
KiBleGVjKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmdKb2luZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nSm9pbmVyLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5
ICsyOSw5IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTU2Nv
cGUuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIC8v
IFRoZSBkZXN0aW5hdGlvbiBpcyAxNmJpdHMsIGF0IGxlYXN0IG9uZSBzdHJpbmcgaXMgMTYgYml0
cy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3lt
Ym9sVGFibGVPYmplY3QuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkocmV2aXNp
b24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05vdEFuT2JqZWN0Lmgi
CisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMu
aD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGlu
ZXMuaAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNDcwICsyNiw3NzIgQEAKICNpZm5k
ZWYgSlNWYWx1ZUlubGluZXNfaAogI2RlZmluZSBKU1ZhbHVlSW5saW5lc19oCiAKKyNpbmNsdWRl
ICJJbnRlcm5hbEZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgorI2luY2x1
ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi0gICAgQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFsdWU6OnRvSW50MzIoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzSW50MzIoKSkKLSAgICAgICAgICAg
IHJldHVybiBhc0ludDMyKCk7Ci0gICAgICAgIHJldHVybiBKU0M6OnRvSW50MzIodG9OdW1iZXIo
ZXhlYykpOwotICAgIH0KLQotICAgIGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICAvLyBTZWUgY29tbWVudCBvbiBK
U0M6OnRvVUludDMyLCBhYm92ZS4KLSAgICAgICAgcmV0dXJuIHRvSW50MzIoZXhlYyk7Ci0gICAg
fQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkgPj0gMDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKGlzVUludDMyKCkpOworQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFsdWU6OnRvSW50
MzIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCiAgICAgICAg
IHJldHVybiBhc0ludDMyKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjph
c051bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNOdW1iZXIoKSk7Ci0gICAg
ICAgIHJldHVybiBpc0ludDMyKCkgPyBhc0ludDMyKCkgOiBhc0RvdWJsZSgpOwotICAgIH0KLQot
ICAgIGlubGluZSBKU1ZhbHVlIGpzTmFOKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
KFFOYU4pOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNoYXIgaSkKLSAg
ICB7Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQotICAg
IHsKLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBzaG9ydCBpKQotICAgIHsKLSAgICAg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9CisgICAg
cmV0dXJuIEpTQzo6dG9JbnQzMih0b051bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0
PGludDMyX3Q+KGkpIDwgMCkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFz
RG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkp
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxvbmcgaSkKLSAgICB7Ci0g
ICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAq
dGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShz
dGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUodW5zaWduZWQgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVp
bnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNE
b3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkp
OwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQotICAg
IHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAg
ICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihp
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1Zh
bHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGxvbmcgaSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0
aWNfY2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KEVuY29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShkb3VibGUg
ZCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGludDMyX3QgYXNJbnQzMiA9IHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGQpOwotICAgICAgICBpZiAoYXNJbnQzMiAhPSBkIHx8ICghYXNJbnQzMiAmJiBzaWdu
Yml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCi0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUo
RW5jb2RlQXNEb3VibGUsIGQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihkKSk7Ci0gICAgfQotCi0g
ICAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlIHZhbHVlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZSBKU1ZhbHVlOjpkZWNvZGUoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEpTVmFsdWUp
Ci0gICAgewotICAgICAgICBKU1ZhbHVlIHY7Ci0gICAgICAgIHYudS5hc0ludDY0ID0gZW5jb2Rl
ZEpTVmFsdWU7Ci0gICAgICAgIHJldHVybiB2OwotICAgIH0KK2lubGluZSB1aW50MzJfdCBKU1Zh
bHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1l
bnQgb24gSlNDOjp0b1VJbnQzMiwgYWJvdmUuCisgICAgcmV0dXJuIHRvSW50MzIoZXhlYyk7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVUludDMyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNJbnQzMigpICYmIGFzSW50MzIoKSA+PSAwOworfQorCitpbmxpbmUgdWludDMyX3QgSlNWYWx1
ZTo6YXNVSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc1VJbnQzMigpKTsKKyAgICByZXR1
cm4gYXNJbnQzMigpOworfQorCitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkgY29u
c3QKK3sKKyAgICBBU1NFUlQoaXNOdW1iZXIoKSk7CisgICAgcmV0dXJuIGlzSW50MzIoKSA/IGFz
SW50MzIoKSA6IGFzRG91YmxlKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlIGpzTmFOKCkKK3sKKyAg
ICByZXR1cm4gSlNWYWx1ZShRTmFOKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hh
ciBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9
CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGNoYXIgaSkKK3sKKyAgICAqdGhp
cyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShzaG9ydCBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxp
bnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0
IGkpCit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30K
KworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgaSkKK3sKKyAgICBpZiAoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oaSkgPCAwKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVB
c0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5s
aW5lIEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFs
dWU6OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDx1aW50
MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUs
IHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShsb25nIGxvbmcgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJf
dD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0
YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlz
ID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3Vi
bGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
ICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkKK3sKKyAgICBjb25zdCBpbnQzMl90IGFzSW50MzIg
PSBzdGF0aWNfY2FzdDxpbnQzMl90PihkKTsKKyAgICBpZiAoYXNJbnQzMiAhPSBkIHx8ICghYXNJ
bnQzMiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCisgICAgICAgICp0aGlzID0g
SlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKK30KKworaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlIHZhbHVlKQoreworICAgIHJldHVy
biB2YWx1ZS51LmFzSW50NjQ7Cit9CisKK2lubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1ZSkKK3sKKyAgICBKU1ZhbHVlIHY7CisgICAgdi51
LmFzSW50NjQgPSBlbmNvZGVkSlNWYWx1ZTsKKyAgICByZXR1cm4gdjsKK30KIAogI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQotICAgIHsKLSAgICAg
ICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9h
ZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQot
ICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gTnVsbFRhZzsKLSAgICAgICAgdS5hc0JpdHMu
cGF5bG9hZCA9IDA7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQoreworICAgIHUu
YXNCaXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9
CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykKK3sKKyAgICB1LmFzQml0cy50
YWcgPSBOdWxsVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQogICAgIAotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAgICAgICAgdS5h
c0JpdHMudGFnID0gVW5kZWZpbmVkVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsK
LSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVmaW5lZFRhZykKK3sKKyAgICB1
LmFzQml0cy50YWcgPSBVbmRlZmluZWRUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9
CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFnKQotICAgIHsKLSAg
ICAgICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9h
ZCA9IDE7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFnKQoreworICAg
IHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDE7Cit9
CiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0g
ICAgICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxv
YWQgPSAwOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IERlbGV0ZWRWYWx1
ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICBpZiAocHRyKQot
ICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlm
IChwdHIpCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFz
Qml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Pihjb25zdF9jYXN0PEpTQ2Vs
bCo+KHB0cikpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0YWcoKSAhPSBEZWxldGVkVmFsdWVUYWcpOwot
ICAgICAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Ci0gICAg
fQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5h
c0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEVtcHR5VmFsdWVUYWc7Ci0gICAgfQot
Ci0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRhZygpID09IFVuZGVmaW5lZFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygp
ID09IE51bGxUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmlu
ZWRPck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwg
aXNOdWxsKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBDZWxsVGFnOwotICAgIH0KLQotICAg
IGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRhZygpID09IEludDMyVGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6
OmlzRG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA8IExvd2VzdFRh
ZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgcGF5bG9hZCgpOwotICAg
IH0KK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCit7CisgICAgdS5hc0JpdHMu
dGFnID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQoreworICAgIHUuYXNC
aXRzLnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKK30K
KworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKKyAgICBlbHNlCisgICAgICAgIHUuYXNC
aXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKK30KIAotICAgIGlubGluZSBib29sIEpTVmFsdWU6Omlz
RmFsc2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcg
JiYgIXBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0Nl
bGwqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFn
OworICAgIGVsc2UKKyAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1
LmFzQml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Pihjb25zdF9jYXN0PEpT
Q2VsbCo+KHB0cikpOworfQogCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMudGFnOwotICAgIH0KK2lubGluZSBK
U1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGFnKCkgIT0gRGVs
ZXRlZFZhbHVlVGFnKTsKKyAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRhZzsKK30KKwor
aW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QK
K3sKKyAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEVt
cHR5VmFsdWVUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOworfQorCitpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBOdWxsVGFn
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxsKCk7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzQ2VsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7
Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAoreworICAgIHJldHVy
biB0YWcoKSA9PSBJbnQzMlRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUo
KSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA8IExvd2VzdFRhZzsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVh
blRhZyAmJiBwYXlsb2FkKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29sZWFuVGFnICYmICFwYXlsb2FkKCk7Cit9
CisKK2lubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0YWcoKSBjb25zdAoreworICAgIHJldHVybiB1
LmFzQml0cy50YWc7Cit9CiAgICAgCi0gICAgaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6cGF5bG9h
ZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9
CitpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXlsb2FkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
dS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjph
c0ludDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAg
ICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9CitpbmxpbmUgaW50MzJfdCBKU1ZhbHVl
Ojphc0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsKKyAgICByZXR1cm4g
dS5hc0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFz
RG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAg
ICAgcmV0dXJuIHUuYXNEb3VibGU7Ci0gICAgfQoraW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0Rv
dWJsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzRG91YmxlKCkpOworICAgIHJldHVybiB1LmFz
RG91YmxlOworfQogICAgIAotICAgIEFMV0FZU19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0Nl
bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0JpdHMucGF5bG9hZCk7Ci0gICAgfQot
Ci0gICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBk
b3VibGUgZCkKLSAgICB7Ci0gICAgICAgIHUuYXNEb3VibGUgPSBkOwotICAgIH0KLQotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFn
ID0gSW50MzJUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSBpOwotICAgIH0KK0FMV0FZ
U19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAoreworICAgIEFTU0VSVChp
c0NlbGwoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0JpdHMu
cGF5bG9hZCk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZVRhZywgZG91YmxlIGQpCit7CisgICAgdS5hc0RvdWJsZSA9IGQ7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKGludCBpKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEludDMyVGFnOwor
ICAgIHUuYXNCaXRzLnBheWxvYWQgPSBpOworfQogCiAjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkK
LSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90IHRhZywgaW50MzJfdCBwYXlsb2Fk
KQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gdGFnOwotICAgICAgICB1LmFzQml0cy5w
YXlsb2FkID0gcGF5bG9hZDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90
IHRhZywgaW50MzJfdCBwYXlsb2FkKQoreworICAgIHUuYXNCaXRzLnRhZyA9IHRhZzsKKyAgICB1
LmFzQml0cy5wYXlsb2FkID0gcGF5bG9hZDsKK30KICNlbmRpZgogCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW50MzIo
KSB8fCBpc0RvdWJsZSgpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzQm9v
bGVhbigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxzZSgp
OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0g
ICAgewotICAgICAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gcGF5bG9h
ZCgpOwotICAgIH0KK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXNJbnQzMigpIHx8IGlzRG91YmxlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmlzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVHJ1ZSgpIHx8IGlzRmFsc2Uo
KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoaXNCb29sZWFuKCkpOworICAgIHJldHVybiBwYXlsb2FkKCk7Cit9CiAKICNlbHNlIC8v
ICFVU0UoSlNWQUxVRTMyXzY0KSBpLmUuIFVTRShKU1ZBTFVFNjQpCiAKLSAgICAvLyAweDAgY2Fu
IG5ldmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNh
dGluZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgwLCB3aGljaCBpcyBpbiB0
aGUgKGludmFsaWQpIHplcm8gcGFnZS4KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0g
ICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIC8vIDB4
NCBjYW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBp
bmRpY2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDQsIHdoaWNoIGlz
IGluIHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVl
KEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZh
bHVlRGVsZXRlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwq
IHB0cikKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihwdHIpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpT
Q2VsbCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5l
IEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUu
YXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNv
bnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2
NCA9PSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6
b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBi
b29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJ
bnQ2NCA9PSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Omlz
VW5kZWZpbmVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNW
YWx1ZShKU1VuZGVmaW5lZCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNO
dWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShK
U051bGwpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKGlzQm9vbGVhbigpKTsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVl
KEpTVHJ1ZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNJbnQzMigpKTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzTnVt
YmVyKCkgJiYgIWlzSW50MzIoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1
ZShKU051bGxUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Ci0gICAg
fQorLy8gMHgwIGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcg
b2YgMDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4MCwg
d2hpY2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1ZTo6SlNW
YWx1ZSgpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVFbXB0eTsKK30KKworLy8gMHg0IGNhbiBu
ZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRp
bmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2ggaXMgaW4gdGhl
IChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVE
ZWxldGVkVmFsdWVUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVEZWxldGVkOworfQorCitp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpT
VmFsdWUoY29uc3QgSlNDZWxsKiBwdHIpCit7CisgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Cit9CisKK2lubGluZSBK
U1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0Owor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVy
KSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0lu
dDY0ID09IFZhbHVlRW1wdHk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNVbmRlZmluZWQp
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVy
biBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppc1RydWUoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1Ry
dWUpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNGYWxzZSk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQm9vbGVhbigpKTsKKyAg
ICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKK30KKworaW5saW5lIGludDMy
X3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzSW50MzIoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNOdW1iZXIoKSAm
JiAhaXNJbnQzMigpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcpCit7
CisgICAgdS5hc0ludDY0ID0gVmFsdWVOdWxsOworfQogICAgIAotICAgIGlubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFs
dWVVbmRlZmluZWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVl
VGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFsdWVUcnVlOwotICAgIH0KK2lubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZh
bHVlVW5kZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7
CisgICAgdS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1
ZShKU0ZhbHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGlu
ZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRl
ZmluZWQgYW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcg
Yml0IGluIHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0
VW5kZWZpbmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9v
bGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxz
ZTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gISh1LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJ
bnQzMigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9
PSBUYWdUeXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRv
SW50NjQoZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4o
dmFsdWUpOworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRf
dCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQor
CitBTFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJs
ZSBkKQoreworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERv
dWJsZUVuY29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7
CisgICAgdS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KTsKK30KKworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUo
dS5hc0ludDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNOdW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVt
YmVyOworfQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAotICAgIGlu
bGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50
NjQgPSBWYWx1ZUZhbHNlOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVW5k
ZWZpbmVkT3JOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFVuZGVmaW5lZCBhbmQgbnVs
bCBzaGFyZSB0aGUgc2FtZSB2YWx1ZSwgYmFyIHRoZSAndW5kZWZpbmVkJyBiaXQgaW4gdGhlIGV4
dGVuZGVkIHRhZy4KLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZpbmVk
KSA9PSBWYWx1ZU51bGw7Ci0gICAgfQorI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKLSAgICB9CitpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2Vs
bCgpLT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1ByaW1pdGl2ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuICFpc0NlbGwoKSB8fCBhc0NlbGwoKS0+aXNTdHJpbmcoKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdAoreworICAg
IHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aXNHZXR0ZXJTZXR0ZXIoKTsKK30KKworaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwo
KSAmJiBhc0NlbGwoKS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0
U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nJiBzKSBjb25zdAoreworICAgIHJldHVybiBp
c0NlbGwoKSAmJiBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMsIHMpOworfQorCitpbmxpbmUgU3Ry
aW5nIEpTVmFsdWU6OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldFN0cmluZyhleGVjKSA6IFN0cmluZygpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgQmFzZT4gU3RyaW5nIEhhbmRsZUNvbnZlcnRlcjxCYXNlLCBV
bmtub3duPjo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4g
anNWYWx1ZSgpLmdldFN0cmluZyhleGVjKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVl
OjpnZXRPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5n
ZXRPYmplY3QoKSA6IDA7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpnZXRVSW50
MzIodWludDMyX3QmIHYpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBp
bnQzMl90IGkgPSBhc0ludDMyKCk7CisgICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
aSk7CisgICAgICAgIHJldHVybiBpID49IDA7CisgICAgfQorICAgIGlmIChpc0RvdWJsZSgpKSB7
CisgICAgICAgIGRvdWJsZSBkID0gYXNEb3VibGUoKTsKKyAgICAgICAgdiA9IHN0YXRpY19jYXN0
PHVpbnQzMl90PihkKTsKKyAgICAgICAgcmV0dXJuIHYgPT0gZDsKKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1ByaW1pdGl2ZShFeGVjU3Rh
dGUqIGV4ZWMsIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9QcmltaXRpdmUoZXhlYywgcHJlZmVy
cmVkVHlwZSkgOiBhc1ZhbHVlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmdldFByaW1p
dGl2ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1
ZSkKK3sKKyAgICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIG51bWJlciA9IGFzSW50MzIoKTsK
KyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IGlmIChpc0RvdWJsZSgpKSB7CisgICAgICAgIG51bWJlciA9IGFzRG91YmxlKCk7CisgICAgICAg
IHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaXND
ZWxsKCkpCisgICAgICAgIHJldHVybiBhc0NlbGwoKS0+Z2V0UHJpbWl0aXZlTnVtYmVyKGV4ZWMs
IG51bWJlciwgdmFsdWUpOworICAgIGlmIChpc1RydWUoKSkgeworICAgICAgICBudW1iZXIgPSAx
LjA7CisgICAgICAgIHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBpZiAoaXNGYWxzZSgpIHx8IGlzTnVsbCgpKSB7CisgICAgICAgIG51bWJlciA9IDAuMDsK
KyAgICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IEFTU0VSVChpc1VuZGVmaW5lZCgpKTsKKyAgICBudW1iZXIgPSBRTmFOOworICAgIHZhbHVlID0g
KnRoaXM7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0FMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFs
dWU6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigp
KQorICAgICAgICByZXR1cm4gYXNJbnQzMigpOworICAgIGlmIChpc0RvdWJsZSgpKQorICAgICAg
ICByZXR1cm4gYXNEb3VibGUoKTsKKyAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsK
K30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1
ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVj
LCBnbG9iYWxPYmplY3QpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBnbG9iYWxPYmplY3QpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Z1bmN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaXNDZWxsKCkgJiYgKGFzQ2VsbCgpLT5pbmhlcml0cygmSlNGdW5jdGlvbjo6c19pbmZvKSB8
fCBhc0NlbGwoKS0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb246OnNfaW5mbykpOworfQorCisv
LyB0aGlzIG1ldGhvZCBpcyBoZXJlIHRvIGJlIGFmdGVyIHRoZSBpbmxpbmUgZGVjbGFyYXRpb24g
b2YgSlNDZWxsOjppbmhlcml0cworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8pIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFz
Q2VsbCgpLT5pbmhlcml0cyhjbGFzc0luZm8pOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFs
dWU6OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlz
Q2VsbCgpID8gYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChhc0NlbGwoKSwg
ZXhlYykgOiB0b1RoaXNPYmplY3RTbG93Q2FzZShleGVjKTsKK30KKworaW5saW5lIEpTVmFsdWUg
SlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkg
Y29uc3QKK3sKKyAgICBQcm9wZXJ0eVNsb3Qgc2xvdChhc1ZhbHVlKCkpOworICAgIHJldHVybiBn
ZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1
ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KSBjb25zdAoreworICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Cisg
ICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBzeW50aGVzaXplUHJvdG90eXBlKGV4ZWMpOwor
ICAgICAgICBpZiAoIXByb3RvdHlwZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0
dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICB9CisgICAgSlNDZWxs
KiBjZWxsID0gYXNDZWxsKCk7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKGNlbGwt
PmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAg
ICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgICAg
IEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3QoY2VsbCktPnByb3RvdHlwZSgpOworICAgICAg
ICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgICAgIGNlbGwgPSBhc09iamVjdChwcm90b3R5cGUpOworICAgIH0KK30KKwor
aW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lKSBjb25zdAoreworICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSk7Cisg
ICAgcmV0dXJuIGdldChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitpbmxpbmUgSlNW
YWx1ZSBKU1ZhbHVlOjpnZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QKK3sKKyAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgp
KSkgeworICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gc3ludGhlc2l6ZVByb3RvdHlwZShl
eGVjKTsKKyAgICAgICAgaWYgKCFwcm90b3R5cGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAg
ICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgfQorICAg
IEpTQ2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8SlNDZWxsKj4oYXNDZWxsKCkpOworICAgIHdoaWxl
ICh0cnVlKSB7CisgICAgICAgIGlmIChjZWxsLT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgICAg
ICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBKU1Zh
bHVlIHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5cGUoKTsKKyAgICAgICAgaWYg
KCFwcm90b3R5cGUuaXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgICAgICBjZWxsID0gcHJvdG90eXBlLmFzQ2VsbCgpOworICAgIH0KK30KKworaW5saW5l
IHZvaWQgSlNWYWx1ZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIGlmIChV
TkxJS0VMWSghaXNDZWxsKCkpKSB7CisgICAgICAgIHB1dFRvUHJpbWl0aXZlKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGFzQ2Vs
bCgpLT5tZXRob2RUYWJsZSgpLT5wdXQoYXNDZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOworfQorCitpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRCeUluZGV4KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3Vs
ZFRocm93KQoreworICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7CisgICAgICAgIHB1dFRv
UHJpbWl0aXZlQnlJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnB1
dEJ5SW5kZXgoYXNDZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93
KTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQoKSBj
b25zdAoreworICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxs
KCktPnN0cnVjdHVyZSgpKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworLy8gRUNN
QSAxMS45LjMKK2lubGluZSBib29sIEpTVmFsdWU6OmVxdWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBpZiAodjEuaXNJbnQzMigpICYmIHYyLmlzSW50
MzIoKSkKKyAgICAgICAgcmV0dXJuIHYxID09IHYyOworCisgICAgcmV0dXJuIGVxdWFsU2xvd0Nh
c2UoZXhlYywgdjEsIHYyKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmVxdWFs
U2xvd0Nhc2VJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQor
eworICAgIGRvIHsKKyAgICAgICAgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkK
KyAgICAgICAgICAgIHJldHVybiB2MS5hc051bWJlcigpID09IHYyLmFzTnVtYmVyKCk7CisKKyAg
ICAgICAgYm9vbCBzMSA9IHYxLmlzU3RyaW5nKCk7CisgICAgICAgIGJvb2wgczIgPSB2Mi5pc1N0
cmluZygpOworICAgICAgICBpZiAoczEgJiYgczIpCisgICAgICAgICAgICByZXR1cm4gYXNTdHJp
bmcodjEpLT52YWx1ZShleGVjKSA9PSBhc1N0cmluZyh2MiktPnZhbHVlKGV4ZWMpOworCisgICAg
ICAgIGlmICh2MS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAodjIuaXNV
bmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmICghdjIuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgcmV0dXJuIHYyLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworICAgICAgICB9CiAKLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
ICEodS5hc0ludDY0ICYgVGFnTWFzayk7Ci0gICAgfQorICAgICAgICBpZiAodjIuaXNVbmRlZmlu
ZWRPck51bGwoKSkgeworICAgICAgICAgICAgaWYgKCF2MS5pc0NlbGwoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdjEuYXNDZWxsKCktPnN0cnVj
dHVyZSgpLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSk7CisgICAgICAgIH0KIAotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBU
YWdUeXBlTnVtYmVyOwotICAgIH0KKyAgICAgICAgaWYgKHYxLmlzT2JqZWN0KCkpIHsKKyAgICAg
ICAgICAgIGlmICh2Mi5pc09iamVjdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB2MSA9PSB2
MjsKKyAgICAgICAgICAgIEpTVmFsdWUgcDEgPSB2MS50b1ByaW1pdGl2ZShleGVjKTsKKyAgICAg
ICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB2MSA9IHAxOworICAgICAgICAgICAgaWYgKHYxLmlzSW50MzIo
KSAmJiB2Mi5pc0ludDMyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHYxID09IHYyOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlubGluZSBpbnQ2NF90IHJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NChkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKTsKLSAgICB9Ci0gICAgaW5saW5lIGRvdWJsZSBy
ZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Ci0gICAgfQorICAgICAgICBpZiAodjIu
aXNPYmplY3QoKSkgeworICAgICAgICAgICAgSlNWYWx1ZSBwMiA9IHYyLnRvUHJpbWl0aXZlKGV4
ZWMpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHYyID0gcDI7CisgICAgICAgICAgICBpZiAo
djEuaXNJbnQzMigpICYmIHYyLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdjEg
PT0gdjI7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAgQUxXQVlTX0lO
TElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7
Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJs
ZUVuY29kZU9mZnNldDsKLSAgICB9CisgICAgICAgIGlmIChzMSB8fCBzMikgeworICAgICAgICAg
ICAgZG91YmxlIGQxID0gdjEudG9OdW1iZXIoZXhlYyk7CisgICAgICAgICAgICBkb3VibGUgZDIg
PSB2Mi50b051bWJlcihleGVjKTsKKyAgICAgICAgICAgIHJldHVybiBkMSA9PSBkMjsKKyAgICAg
ICAgfQogCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAg
ICB1LmFzSW50NjQgPSBUYWdUeXBlTnVtYmVyIHwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpOwot
ICAgIH0KKyAgICAgICAgaWYgKHYxLmlzQm9vbGVhbigpKSB7CisgICAgICAgICAgICBpZiAodjIu
aXNOdW1iZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2
MS5hc0Jvb2xlYW4oKSkgPT0gdjIuYXNOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlIGlmICh2Mi5p
c0Jvb2xlYW4oKSkgeworICAgICAgICAgICAgaWYgKHYxLmlzTnVtYmVyKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHYxLmFzTnVtYmVyKCkgPT0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2Mi5hc0Jv
b2xlYW4oKSk7CisgICAgICAgIH0KIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3Vi
bGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRJbnQ2NFRvRG91YmxlKHUuYXNJbnQ2NCAtIERvdWJsZUVuY29kZU9m
ZnNldCk7Ci0gICAgfQorICAgICAgICByZXR1cm4gdjEgPT0gdjI7CisgICAgfSB3aGlsZSAodHJ1
ZSk7Cit9CisKKy8vIEVDTUEgMTEuOS4zCitBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6c3Ry
aWN0RXF1YWxTbG93Q2FzZUlubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdjEsIEpTVmFs
dWUgdjIpCit7CisgICAgQVNTRVJUKHYxLmlzQ2VsbCgpICYmIHYyLmlzQ2VsbCgpKTsKKworICAg
IGlmICh2MS5hc0NlbGwoKS0+aXNTdHJpbmcoKSAmJiB2Mi5hc0NlbGwoKS0+aXNTdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIGFzU3RyaW5nKHYxKS0+dmFsdWUoZXhlYykgPT0gYXNTdHJpbmcodjIp
LT52YWx1ZShleGVjKTsKKworICAgIHJldHVybiB2MSA9PSB2MjsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6c3RyaWN0RXF1YWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVl
IHYyKQoreworICAgIGlmICh2MS5pc0ludDMyKCkgJiYgdjIuaXNJbnQzMigpKQorICAgICAgICBy
ZXR1cm4gdjEgPT0gdjI7CiAKLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ICYgVGFnVHlwZU51bWJlcjsKLSAg
ICB9CisgICAgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkKKyAgICAgICAgcmV0
dXJuIHYxLmFzTnVtYmVyKCkgPT0gdjIuYXNOdW1iZXIoKTsKIAotICAgIEFMV0FZU19JTkxJTkUg
SlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlz
Q2VsbCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KKyAgICBpZiAoIXYxLmlzQ2Vs
bCgpIHx8ICF2Mi5pc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIHYxID09IHYyOwogCi0jZW5kaWYg
Ly8gVVNFKEpTVkFMVUU2NCkKKyAgICByZXR1cm4gc3RyaWN0RXF1YWxTbG93Q2FzZUlubGluZShl
eGVjLCB2MSwgdjIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAJKHJldmlz
aW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNWYXJpYWJsZU9iamVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVmFyaWFibGVP
YmplY3Q6OnNfaW5mbyA9IHsgIlZhcmlhYmxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1ZhcmlhYmxlT2JqZWN0KSB9OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSlNXaXRoU2NvcGUuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNl
IEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNj
b3BlIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29w
ZSkgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDksIDIwMTIgQXBwbGUsIEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFT
X1RSSVZJQUxfREVTVFJVQ1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzOTI4
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVk
ZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzOTI4MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiTmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hbWVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmFtZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmFtZUluc3RhbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIk5hbWVJbnN0YW5jZS5oIgogCiAjaW5jbHVkZSAiSlNTY29w
ZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCShy
ZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lUHJv
dG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk5h
bWVQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJy
b3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3Rv
dHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUg
IkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAJKHJldmlz
aW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIk51
bWJlckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiTnVtYmVyUHJv
dG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBA
QAogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJQcm90b3R5
cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1
ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAK
ICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRl
ICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMywxMDUgKzExMyw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICByZXR1cm4gcm9wZUJ1aWxkZXIucmVsZWFzZSgpOwogICAgIH0KIAot
ICAgIC8vIEVDTUEgMTEuOS4zCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6ZXF1YWwoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQotICAgIHsKLSAgICAgICAgaWYgKHYx
LmlzSW50MzIoKSAmJiB2Mi5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm4gdjEgPT0gdjI7
Ci0KLSAgICAgICAgcmV0dXJuIGVxdWFsU2xvd0Nhc2UoZXhlYywgdjEsIHYyKTsKLSAgICB9Ci0K
LSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6ZXF1YWxTbG93Q2FzZUlubGluZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCi0gICAgewotICAgICAgICBkbyB7
Ci0gICAgICAgICAgICBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQotICAgICAg
ICAgICAgICAgIHJldHVybiB2MS5hc051bWJlcigpID09IHYyLmFzTnVtYmVyKCk7Ci0KLSAgICAg
ICAgICAgIGJvb2wgczEgPSB2MS5pc1N0cmluZygpOwotICAgICAgICAgICAgYm9vbCBzMiA9IHYy
LmlzU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAoczEgJiYgczIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGFzU3RyaW5nKHYxKS0+dmFsdWUoZXhlYykgPT0gYXNTdHJpbmcodjIpLT52YWx1ZShl
eGVjKTsKLQotICAgICAgICAgICAgaWYgKHYxLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAodjIuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKCF2Mi5pc0NlbGwoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiB2Mi5h
c0NlbGwoKS0+c3RydWN0dXJlKCktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHYyLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXYxLmlzQ2VsbCgpKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHYxLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAo
djEuaXNPYmplY3QoKSkgewotICAgICAgICAgICAgICAgIGlmICh2Mi5pc09iamVjdCgpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdjEgPT0gdjI7Ci0gICAgICAgICAgICAgICAgSlNWYWx1
ZSBwMSA9IHYxLnRvUHJpbWl0aXZlKGV4ZWMpOwotICAgICAgICAgICAgICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgICAgIHYxID0gcDE7Ci0gICAgICAgICAgICAgICAgaWYgKHYxLmlzSW50MzIoKSAmJiB2
Mi5pc0ludDMyKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2MSA9PSB2MjsKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHYy
LmlzT2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlIHAyID0gdjIudG9QcmltaXRp
dmUoZXhlYyk7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdjIgPSBwMjsK
LSAgICAgICAgICAgICAgICBpZiAodjEuaXNJbnQzMigpICYmIHYyLmlzSW50MzIoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHYxID09IHYyOwotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoczEgfHwgczIpIHsKLSAgICAgICAg
ICAgICAgICBkb3VibGUgZDEgPSB2MS50b051bWJlcihleGVjKTsKLSAgICAgICAgICAgICAgICBk
b3VibGUgZDIgPSB2Mi50b051bWJlcihleGVjKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZDEg
PT0gZDI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2MS5pc0Jvb2xlYW4oKSkg
ewotICAgICAgICAgICAgICAgIGlmICh2Mi5pc051bWJlcigpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2MS5hc0Jvb2xlYW4oKSkgPT0gdjIuYXNOdW1i
ZXIoKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodjIuaXNCb29sZWFuKCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAodjEuaXNOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYx
LmFzTnVtYmVyKCkgPT0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2Mi5hc0Jvb2xlYW4oKSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiB2MSA9PSB2MjsKLSAgICAgICAgfSB3aGls
ZSAodHJ1ZSk7Ci0gICAgfQotCi0gICAgLy8gRUNNQSAxMS45LjMKLSAgICBBTFdBWVNfSU5MSU5F
IGJvb2wgSlNWYWx1ZTo6c3RyaWN0RXF1YWxTbG93Q2FzZUlubGluZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCi0gICAgewotICAgICAgICBBU1NFUlQodjEuaXNDZWxs
KCkgJiYgdjIuaXNDZWxsKCkpOwotCi0gICAgICAgIGlmICh2MS5hc0NlbGwoKS0+aXNTdHJpbmco
KSAmJiB2Mi5hc0NlbGwoKS0+aXNTdHJpbmcoKSkKLSAgICAgICAgICAgIHJldHVybiBhc1N0cmlu
Zyh2MSktPnZhbHVlKGV4ZWMpID09IGFzU3RyaW5nKHYyKS0+dmFsdWUoZXhlYyk7Ci0KLSAgICAg
ICAgcmV0dXJuIHYxID09IHYyOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OnN0
cmljdEVxdWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKLSAgICB7
Ci0gICAgICAgIGlmICh2MS5pc0ludDMyKCkgJiYgdjIuaXNJbnQzMigpKQotICAgICAgICAgICAg
cmV0dXJuIHYxID09IHYyOwotCi0gICAgICAgIGlmICh2MS5pc051bWJlcigpICYmIHYyLmlzTnVt
YmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gdjEuYXNOdW1iZXIoKSA9PSB2Mi5hc051bWJlcigp
OwotCi0gICAgICAgIGlmICghdjEuaXNDZWxsKCkgfHwgIXYyLmlzQ2VsbCgpKQotICAgICAgICAg
ICAgcmV0dXJuIHYxID09IHYyOwotCi0gICAgICAgIHJldHVybiBzdHJpY3RFcXVhbFNsb3dDYXNl
SW5saW5lKGV4ZWMsIHYxLCB2Mik7Ci0gICAgfQotCiAgICAgLy8gU2VlIEVTNSAxMS44LjEvMTEu
OC4yLzExLjguNSBmb3IgZGVmaW5pdGlvbiBvZiBsZWZ0Rmlyc3QsIHRoaXMgdmFsdWUgZW5zdXJl
cyBjb3JyZWN0CiAgICAgLy8gZXZhbHVhdGlvbiBvcmRlcmluZyBmb3IgYXJndW1lbnQgY29udmVy
c2lvbnMgZm9yICc8JyBhbmQgJz4nLiBGb3IgJzwnIHBhc3MgdGhlIHZhbHVlCiAgICAgLy8gdHJ1
ZSwgZm9yIGxlZnRGaXJzdCwgZm9yICc+JyBwYXNzIHRoZSB2YWx1ZSBmYWxzZSAoYW5kIHJldmVy
c2Ugb3BlcmFuZCBvcmRlcikuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24gMTM5
MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNpbmNs
dWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBD
YWNoZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJVC5o
IgorI2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8c3Rk
aW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0KICNk
ZWZpbmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2Fj
aGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0
YSBIb2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5l
cy5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRS
ZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNo
ZWRSZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBN
YXRjaGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
MzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdFeHBD
b25zdHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhwUHJv
dG90eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1h
dGNoZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogCiAj
aW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNs
dWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhw
Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNsdWRl
ICJSZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1
ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVnRXhw
LmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVl
TWFwLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNp
bmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90VmlzaXRv
ci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2
YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmljdEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKIAog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1
ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25D
aGVja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIy
LDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAx
MzkyODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29y
a2luZyBjb3B5KQpAQCAtNTA2LDQ4ICs1MDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
cmV0dXJuIHR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVj
dCgpID09IGxleGljYWxHbG9iYWxPYmplY3Q7CiAgICAgfQogCi0gICAgaW5saW5lIEpTVmFsdWUg
SlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYg
KGlzQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxsKCktPnN0cnVjdHVy
ZSgpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5l
IGJvb2wgSlNDZWxsOjppc09iamVjdCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9z
dHJ1Y3R1cmUtPmlzT2JqZWN0KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNDZWxsOjpp
c1N0cmluZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCkudHlwZSgpID09IFN0cmluZ1R5cGU7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlND
ZWxsOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zdHJ1
Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IEdldHRlclNldHRlclR5cGU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNDZWxsOjppc1Byb3h5KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkgPT0gUHJveHlUeXBlOwotICAgIH0K
LQotICAgIGlubGluZSBib29sIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBBUElW
YWx1ZVdyYXBwZXJUeXBlOwotICAgIH0KLQotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6c2V0U3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgewotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4oKSA9PSB0aGlzLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNp
dENoaWxkcmVuKCkpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5jbGFzc0luZm8oKSA9PSBt
X3N0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwotICAgICAgICBBU1NFUlQoIW1fc3RydWN0dXJlCi0g
ICAgICAgICAgICAgICB8fCBtX3N0cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRIYXNC
ZWVuSW52YWxpZGF0ZWQoKQotICAgICAgICAgICAgICAgfHwgbV9zdHJ1Y3R1cmUuZ2V0KCkgPT0g
c3RydWN0dXJlKTsKLSAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHN0
cnVjdHVyZSk7Ci0gICAgfQotCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjpp
bnRlcm5hbEFwcGVuZChKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1faXND
aGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKQEAgLTU4NiwyMyArNTQ0LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpbmxpbmUg
SlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKLSAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUp
Ci0gICAgewotICAgIH0KLQotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ3JlYXRpbmdF
YXJseUNlbGxUYWcpCi0gICAgewotI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQotICAgICAgICBB
U1NFUlQoZ2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKLSAgICAgICAgZ2xvYmFs
RGF0YS5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFzcygwKTsKLSAgICAgICAgaWYgKHN0cnVjdHVy
ZSkKLSNlbmRpZgotICAgICAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0RWFybHlWYWx1ZShnbG9iYWxE
YXRhLCB0aGlzLCBzdHJ1Y3R1cmUpOwotICAgICAgICAvLyBWZXJ5IGZpcnN0IHNldCBvZiBhbGxv
Y2F0aW9ucyB3b24ndCBoYXZlIGEgcmVhbCBzdHJ1Y3R1cmUuCi0gICAgICAgIEFTU0VSVChtX3N0
cnVjdHVyZSB8fCAhZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIH0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAkocmV2aXNpb24g
MTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RydWN0dXJl
Q2hhaW4uaCIKIAogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNw
cAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGlt
ZW91dENoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoL21hY2guaD4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogLyogSW5jbHVkZSBjb21w
aWxlciBzcGVjaWZpYyBtYWNyb3MgKi8KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KIAorCiAv
KiA9PT09IFBMQVRGT1JNIGhhbmRsZXMgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhp
Y3MgQVBJLCBhbmQKICAgIENQVS4gVGhpcyBtYWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2
b3Igb2YgcGxhdGZvcm0gYWRhcHRhdGlvbgogICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFj
cm9zLCBhbmQgdG9wLWxldmVsIHBvcnQgZGVmaW5pdGlvbnMuID09PT0gKi8KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDEzOTM2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAxLTEwICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgVGhlIEpJVFRodW5rcyBjbGFzcyBzaG91bGQgYmUgaW4g
aXRzIG93biBmaWxlLCBhbmQgZG9pbmcgc28gc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY5NgorCisg
ICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgQWxsIC5jcHAg
ZmlsZXMgdGhhdCB1c2UgdGhlIEpTQyBpbnRlcm5hbCBBUEkgbXVzdCBub3cgdHJhbnNpdGl2ZWx5
IGluY2x1ZGUKKyAgICAgICAgT3BlcmF0aW9ucy5oLCBhbmQgbm9uZSBvZiB0aGUgbWFqb3IgSlND
IGhlYWRlcnMgZG8gaXQgZm9yIHlvdSB0byBhdm9pZAorICAgICAgICBjaXJjdWxhcml0eS4gV2Vi
Q29yZSBkb2Vzbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgY2lyY3VsYXJpdHkgd2l0aCBKU0MsIHNv
CisgICAgICAgIHRoaXMgY2hhbmdlcyBhbGwgb2YgdGhlIG1ham9yIFdlYkNvcmUgSlNDIGJhc2Ug
aGVhZGVycyB0byBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMuaC4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRD
dXN0b20uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdFdyYXBwYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogYnJpZGdlL2MvY191dGlsaXR5Lmg6CisgICAgICAg
ICogYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW1h
Z2VMb2FkZXIuY3BwOgorICAgICAgICAqIHBsdWdpbnMvZWZsL1BsdWdpblZpZXdFZmwuY3BwOgor
ICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisKIDIwMTMtMDEtMTAgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgYW4gRU5BQkxFIG1hY3JvIGFu
ZCBhIFdlYkNvcmU6OlNldHRpbmcgZm9yIHRoZSB0aHJlYWRlZCBwYXJzZXIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCShyZXZpc2lvbiAxMzkyODEpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CaW5kaW5nU3RhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBCaW5kaW5nU3RhdGVfaAogCiAjaW5jbHVkZSA8
cnVudGltZS9KU09iamVjdC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAkocmV2aXNpb24gMTM5MjgxKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5
QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2
aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pT
QXJyYXkuaD4KICNpbmNsdWRlIDxydW50aW1lL0xvb2t1cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oPgotCisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMu
aD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDxydW50aW1l
L09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
UG9ydEN1c3RvbS5oCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgJKHJldmlzaW9uIDEzOTI4MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiTm9kZUZpbHRlckNvbmRp
dGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1
ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9P
cGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0V3JhcHBhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0V3JhcHBhYmxlLmgJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAko
cmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1
ZGUgPHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
T3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNp
bmNsdWRlIDxydW50aW1lL1JlZ0V4cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUmVnRXhwT2JqZWN0
Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAkocmV2aXNpb24gMTM5Mjgx
KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY191dGlsaXR5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIm5wcnVudGltZV9pbnRlcm5hbC5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL1dlYkNvcmUvYnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvanNjL0JyaWRnZUpTQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTU3Ry
aW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSw3IEBACiAK
ICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNSUNST0RBVEEp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNp
b24gMTM5MjgxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKIAogI2lmIFVTRShKU0MpCiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdFQkdMKSAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAog
I2lmIFVTRShKU0MpCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9Q
bHVnaW5WaWV3RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2Vm
bC9QbHVnaW5WaWV3RWZsLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9lZmwvUGx1Z2luVmlld0VmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2lt
cGwuaCIKICNpbmNsdWRlICJydW50aW1lL0pTTG9jay5oIgorI2luY2x1ZGUgInJ1bnRpbWUvT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+
CiAjaW5jbHVkZSA8RXZhcy5oPgpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSlNET01X
aW5kb3cuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNM
b2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJKHJldmlz
aW9uIDEzOTI4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAKICNp
bmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1l
L09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1w
bGVyTGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9X
ZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRp
c3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRl
IDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAko
cmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJh
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxMzkyODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJh
dGlvbnMuaD4KIAogI2lmIEVOQUJMRShNSFRNTCkKICNpbmNsdWRlIDxXZWJDb3JlL01IVE1MQXJj
aGl2ZS5oPgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01h
aW5FZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dl
YlByb2Nlc3NNYWluRWZsLmNwcAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVkZSA8
bGlic291cC9zb3VwLWNhY2hlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgJKHJldmlzaW9uIDEzOTI4MSkKKysr
IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYg
KzQ3LDYgQEAKICNpbmNsdWRlICJld2tfd2ViX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiZXdrX3dp
bmRvd19mZWF0dXJlcy5oIgogCi0jaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPEV2YXMuaD4g
CiAKICNlbmRpZiAvLyBFV2ViS2l0X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
bWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNw
cAkocmV2aXNpb24gMTM5MjgxKQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAicnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8
RWRqZS5oPgo=
</data>
<flag name="commit-queue"
          id="200135"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182406</attachid>
            <date>2013-01-11 13:31:41 -0800</date>
            <delta_ts>2013-01-11 13:31:41 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>thunks.patch</filename>
            <type>text/plain</type>
            <size>173561</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3NiBA
QAorMjAxMy0wMS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKSVRUaHVua3MgY2xhc3Mgc2hvdWxkIGJlIGluIGl0cyBvd24gZmlsZSwgYW5kIGRvaW5n
IHNvIHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2OTYKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBi
eSBTYW0gV2VpbmlnIGFuZCBHZW9mZnJleSBHYXJlbi4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggd2FzIHN1cHBvc2VkIHRvIGp1c3QgbW92ZSBKSVRUaHVua3MgaW50byBpdHMgb3duIGZp
bGUuIEJ1dCB0aGVuIEkKKyAgICAgICAgcmVhbGl6ZWQgdGhhdCB0aGVyZSBpcyBhIGhvcnJpYmxl
IGNpcmN1bGFyIGRlcGVuZGVuY3kgY2hhaW4gYmV0d2VlbiBKU0NlbGwsCisgICAgICAgIEpTR2xv
YmFsRGF0YSwgQ2FsbEZyYW1lLCBhbmQgV2Vhaywgd2hpY2ggb25seSB3b3JrcyBiZWNhdXNlIG9m
IG1hZ2ljYWwgaW5jbHVkZQorICAgICAgICBvcmRlciBpbiBKSVRTdHVicy5oLCBhbmQgdGhlIGZh
Y3QgdGhhdCBKU0dsb2JhbERhdGEuaCBpbmNsdWRlcyBKSVRTdHVicy5oCisgICAgICAgIGJlZm9y
ZSBpdCBpbmNsdWRlcyBKU0NlbGwgb3IgSlNWYWx1ZS4KKyAgICAgICAgCisgICAgICAgIEkgZmly
c3QgdHJpZWQgdG8ganVzdCBnZXQgSklUVGh1bmtzLmggdG8ganVzdCBtYWdpY2FsbHkgZG8gdGhl
IHNhbWUgcG9pbnRsZXNzCisgICAgICAgIGluY2x1ZGVzIHRoYXQgSklUU3R1YnMuaCBoYWQsIGJ1
dCB0aGVuIEkgZGVjaWRlZCB0byBhY3R1YWxseSBmaXggdGhlIHVuZGVyZmx5aW5nCisgICAgICAg
IHByb2JsZW0sIHdoaWNoIHdhcyB0aGF0IEpTQ2VsbCBuZWVkZWQgQ2FsbEZyYW1lLCBDYWxsRnJh
bWUgbmVlZGVkIEpTR2xvYmFsRGF0YSwKKyAgICAgICAgSlNHbG9iYWxEYXRhIG5lZWRlZCBKSVRU
aHVua3MsIEpJVFRodW5rcyBuZWVkZWQgV2VhaywgYW5kIFdlYWsgbmVlZGVkIEpTQ2VsbC4KKyAg
ICAgICAgTm93LCBhbGwgb2YgSlNDZWxsJ3Mgb3V0Z29pbmcgZGVwZW5kZW5jaWVzIGFyZSBwbGFj
ZWQgaW4gSlNDZWxsSW5saW5lcy5oLiBUaGlzCisgICAgICAgIGFsc28gZ2F2ZSBtZSBhbiBvcHBv
cnR1bml0eSB0byBtb3ZlIEpTVmFsdWUgaW5saW5lIG1ldGhvZHMgZnJvbSBKU0NlbGwuaCBpbnRv
CisgICAgICAgIEpTVmFsdWVJbmxpbmVzLmguIEJ1dCB0byBtYWtlIHRoaXMgcmVhbGx5IHdvcmss
IEkgbmVlZGVkIHRvIHJlbW92ZSBpbmNsdWRlcyBvZgorICAgICAgICAqSW5saW5lcy5oIGZyb20g
b3RoZXIgaGVhZGVycyAoQ29kZUJsb2NrLmggZm9yIGV4YW1wbGUgaW5jbHVkZWQgSlNWYWx1ZUlu
bGluZXMuaCwKKyAgICAgICAgd2hpY2ggZGVmZWF0cyB0aGUgd2hvbGUgZW50aXJlIHB1cnBvc2Ug
b2YgaGF2aW5nIGFuIElubGluZXMuaCBmaWxlKSwgYW5kIEkgbmVlZGVkCisgICAgICAgIHRvIGFk
ZCBpbmNsdWRlcyBvZiAqSW5saW5lcy5oIGludG8gYSBidW5jaCBvZiAuY3BwIGZpbGVzLiBJIGRp
ZCB0aGlzIG1vc3RseSBieQorICAgICAgICBoYXZpbmcgLmNwcCBmaWxlcyBpbmNsdWRlIE9wZXJh
dGlvbnMuaC4gSW4gZnV0dXJlLCBpZiB5b3UncmUgYWRkaW5nIGEgLmNwcCBmaWxlCisgICAgICAg
IHRvIEpTQywgeW91J2xsIGFsbW9zdCBjZXJ0YWlubHkgaGF2ZSB0byBpbmNsdWRlIE9wZXJhdGlv
bnMuaCB1bmxlc3MgeW91IGVuam95CisgICAgICAgIGxpbmsgZXJyb3JzLgorCisgICAgICAgICog
QVBJL0pTQmFzZS5jcHA6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwOgorICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmNwcDoKKyAgICAg
ICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3Bw
OgorICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwOgorICAgICAgICAqIEpTQ1R5cGVkQXJyYXlTdHVicy5oOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9m
aWxlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcDoKKyAg
ICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgICogYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAg
KiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgICog
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAg
ICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnku
Y3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRD
b21waWxlcjY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKToKKyAgICAgICAg
KERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFu
Rm9yRlBSKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U3BpbGwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKFNwZWN1bGF0aXZlSklUKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTdHJ1Y3R1cmVDaGVj
a0hvaXN0aW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFt
LmNwcDoKKyAgICAgICAgKiBoZWFwL0NvcGllZEJsb2NrLmg6CisgICAgICAgICogaGVhcC9Db3Bp
ZWRTcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgICogaGVhcC9IZWFwU3RhdGlzdGljcy5jcHA6CisgICAgICAg
ICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgICogaGVhcC9XZWFrQmxvY2suY3BwOgor
ICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgICogaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
OgorICAgICAgICAqIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwOgorICAgICAgICAqIGpp
dC9KSVQuY3BwOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAgICAgKiBq
aXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6Cisg
ICAgICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgICogaml0L0pJVENvZGUuaDoK
KyAgICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVFN0dWJz
Lmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAg
ICAgICogbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9MZWdh
Y3lQcm9maWxlci5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5jcHA6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlckJ5dGVjb2Rlcy5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbi5jcHA6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNw
cDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBw
cm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVy
T1NSRXhpdFNpdGUuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcDoK
KyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcDoKKyAgICAgICAgKiBw
cm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0FyZ0xpc3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9DYWxsRGF0YS5jcHA6CisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9Db25zdHJ1Y3RE
YXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
ICogcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9FcnJvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvR2V0
dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Fj
dGl2YXRpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6IEFkZGVk
LgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGwpOgorICAgICAg
ICAoSlNDOjpKU0NlbGw6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpz
dHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAg
ICAoSlNDOjphbGxvY2F0ZUNlbGwpOgorICAgICAgICAoSlNDOjppc1phcHBlZCk6CisgICAgICAg
IChKU0M6OkpTQ2VsbDo6aXNPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmlzU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjppc0dldHRlclNldHRlcik6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6aXNQcm94eSk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBw
ZXIpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnNldFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6bWV0aG9kVGFibGUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmluaGVyaXRzKToK
KyAgICAgICAgKEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KEpTQzo6SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU0NlbGw6
OnRvQm9vbGVhbik6CisgICAgICAgICogcnVudGltZS9KU0RhdGVNYXRoLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5o
OgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAg
ICAgICAoSlNDKToKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNOYW1lU2NvcGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm94eS5jcHA6
CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0pTVmFsdWUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZUlubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9JbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRv
VUludDMyKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVUludDMy
KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6YXNVSW50MzIpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjphc051bWJlcik6CisgICAgICAgIChKU0M6OmpzTmFOKToKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6SlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmVuY29kZSk6CisgICAgICAg
IChKU0M6OkpTVmFsdWU6OmRlY29kZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Om9wZXJhdG9y
IGJvb2wpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpT
Qzo6SlNWYWx1ZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRW1wdHkp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc1VuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OkpT
VmFsdWU6OmlzTnVsbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxs
KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNDZWxsKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aXNJbnQzMik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzRG91YmxlKToKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6aXNUcnVlKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNGYWxzZSk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRhZyk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnBh
eWxvYWQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc0ludDMyKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6YXNEb3VibGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjphc0NlbGwpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjppc051bWJlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6Omlz
Qm9vbGVhbik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmFzQm9vbGVhbik6CisgICAgICAgIChK
U0M6OnJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NCk6CisgICAgICAgIChKU0M6OnJlaW50ZXJwcmV0
SW50NjRUb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6aXNQcmltaXRpdmUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpp
c0dldHRlclNldHRlcik6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzT2JqZWN0KToKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6Z2V0U3RyaW5nKToKKyAgICAgICAgKEpTQzo6OjpnZXRTdHJpbmcp
OgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpnZXRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjpnZXRVSW50MzIpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1ByaW1pdGl2ZSk6Cisg
ICAgICAgIChKU0M6OkpTVmFsdWU6OmdldFByaW1pdGl2ZU51bWJlcik6CisgICAgICAgIChKU0M6
OkpTVmFsdWU6OnRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9PYmplY3QpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6aW5oZXJpdHMpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjp0b1RoaXNPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlOjpnZXQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXRCeUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjplcXVhbCk6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmVxdWFsU2xvd0Nhc2VJbmxpbmUpOgorICAgICAgICAo
SlNDOjpKU1ZhbHVlOjpzdHJpY3RFcXVhbFNsb3dDYXNlSW5saW5lKToKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6c3RyaWN0RXF1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5jcHA6CisgICAgICAgICogcnVudGltZS9KU1dpdGhTY29wZS5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU1dyYXBwZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNl
ci5jcHA6CisgICAgICAgICogcnVudGltZS9Mb29rdXAuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
TmFtZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL05hbWVJbnN0YW5jZS5jcHA6
CisgICAgICAgICogcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJy
b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0MpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cC5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDYWNoZS5jcHA6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBDYWNoZWRSZXN1bHQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUv
U3RydWN0dXJlQ2hhaW4uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVGltZW91dENoZWNrZXIuY3Bw
OgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorCiAyMDEzLTAxLTExICBHZW9mZnJleSBHYXJl
biAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bnVzZWQgdmVyc2lv
biBvZiBnZXREaXJlY3RMb2NhdGlvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0pTQ1R5
cGVkQXJyYXlTdHVicy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KU0NU
eXBlZEFycmF5U3R1YnMuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0pTQ1R5cGVkQXJyYXlTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIk9iamVjdFBy
b3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRmxvYXQz
MkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zsb2F0NjRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1Byb3h5LmgiCiAjaW5jbHVk
ZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2FtcGxp
bmdUb29sLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYg
KzI0LDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlICJJbml0aWFs
aXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAko
cmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNCArMjksMTUgQEAKIAogI2luY2x1ZGUgIkFQSUNhc3Qu
aCIKICNpbmNsdWRlICJBUElTaGltcy5oIgorI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1
ZGUgIkNvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU0xvY2suaCIKKyNpbmNsdWRlICJK
U09iamVjdC5oIgogI2luY2x1ZGUgIk9wYXF1ZUpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKLSNpbmNsdWRlIDxpbnRlcnByZXRlci9D
YWxsRnJhbWUuaD4KLSNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KLSNp
bmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24uaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMCArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAjaW5jbHVkZSAi
QVBJQ2FzdC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRl
IDxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPgorI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU0xvY2suaCIKKyNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsMTAgKzMwLDExIEBACiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKLSNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNp
bmNsdWRlICJKU0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNs
dWRlICJKU0xvY2suaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKIAogI2luY2x1
ZGUgIkhlYXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NsYXNzUmVmLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3
LDEzIEBACiAjaW5jbHVkZSAiSlNDbGFzc1JlZi5oIgogCiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgi
CiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVjdC5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNPYmplY3RSZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5j
bHVkZSA8cnVudGltZS9PYmplY3RQcm90b3R5cGUuaD4KLSNpbmNsdWRlIDxydW50aW1lL0lkZW50
aWZpZXIuaD4KKyNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi91
bmljb2RlL1VURjguaD4KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250
ZXh0UmVmLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NvbnRleHRSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiSlNDbGFzc1JlZi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAJKHJldmlzaW9u
IDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNp
bmNsdWRlICJKU1ZhbHVlUmVmLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5j
bHVkZSAiUmVnRXhwQ29uc3RydWN0b3IuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdFJlZi5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTY3JpcHRSZWZQcml2
YXRlLmgiCiAjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1
ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
V2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAJKHJldmlzaW9uIDEzOTQ4
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0NhbGxi
YWNrT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkpTV2Vha09iamVj
dE1hcFJlZkludGVybmFsLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvagkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtp
bmcgY29weSkKQEAgLTIxOTcsNyArMjE5Nyw2IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxq
aXRcSklUU3R1YnMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5caml0XEpJVFRodW5rcy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTksNiArMTk5LDcgQEAKIAkJMEY5MzMyQTUxNENBN0RERDAwODVG
M0M2IC8qIFN0cnVjdHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTYzQjM4
MTNGQzZGRTkwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1
ZVByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjk2RUJCMzE2Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2
NzZFRjQwMDhCQURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2
QSAvKiBKU0NlbGxJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcw
MTY1REJCOTAwMDVBRDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERp
c2Fzc2VtYmxlci5jcHAgKi87IH07CiAJCTBGOUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5
bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5
SWRMaXN0LmNwcCAqLzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3Jw
aGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUZDOEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEw
NTYsNiArMTA1Nyw3IEBACiAJCTBGOTMzMjlCMTRDQTdEQzEwMDg1RjNDNiAvKiBTdHJ1Y3R1cmVT
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBW
YWx1ZVByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsdWVQcm9m
aWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTZFQkIxMTY2NzZFRjQwMDhC
QURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb2RlQmxvY2tXaXRoSklUVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjk3NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NlbGxJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUQzMzZFMTY1REJCOEQwMDVBRDM4NyAvKiBEaXNhc3NlbWJsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGlzYXNzZW1ibGVyLmNw
cDsgcGF0aCA9IGRpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjlGQzhCRjE0RTFCNUZCMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRC
eUlkTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb2x5bW9y
cGhpY1B1dEJ5SWRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RkM4
QzAxNEUxQjVGQjAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0Miw2ICsyMzQ0LDcgQEAKIAkJCQk4NkZBOUU5MDE0
MkJCQjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJQkM3RjhGQkEwRTE5
RDFFRjAwODYzMkMwIC8qIEpTQ2VsbC5jcHAgKi8sCiAJCQkJQkMxMTY3RDgwRTE5QkNDOTAwODA2
NkREIC8qIEpTQ2VsbC5oICovLAorCQkJCTBGOTc0OTZGMTY4N0FERTIwMEE0RkY2QSAvKiBKU0Nl
bGxJbmxpbmVzLmggKi8sCiAJCQkJOTc4OEZDMjIxNDcxQUQwQzAwNjhDRTJEIC8qIEpTRGF0ZU1h
dGguY3BwICovLAogCQkJCTk3ODhGQzIzMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmgg
Ki8sCiAJCQkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LmggKi8sCkBAIC0zMjY2LDYgKzMyNjksOSBAQAogCQkJCTg2NzA0Qjg4MTJEQkEzMzcwMEE5RkU3
QiAvKiBZYXJyUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4QTEyREJBMzM3MDBB
OUZFN0IgLyogWWFyclBhdHRlcm4uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0QjQzMTJEQjhB
ODEwMEE5RkU3QiAvKiBZYXJyU3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1
RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjk3NDk3MTE2ODdBREU0MDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FycmF5QWxsb2NhdGlvblByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcnJheUFsbG9jYXRpb25Qcm9maWxlLmgiCiAKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnVw
ZGF0ZUluZGV4aW5nVHlwZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkxM
SW50Q2FsbExpbmtJbmZvLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0
Zi9Db21tYVByaW50ZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUg
IkpTVmFsdWUuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlZHVjZVdoaXRlc3BhY2UuaCIKICNpbmNsdWRlICJS
ZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCShyZXZpc2lv
biAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUu
aCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCisjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24g
MTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSlNTY29wZS5o
IgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShWQUxVRV9QUk9GSUxFUikKIAorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIENvbXByZXNzZWRMYXp5T3Bl
cmFuZFZhbHVlUHJvZmlsZUhvbGRlcjo6Q29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxl
SG9sZGVyKCkgeyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUmVzb2x2
ZUdsb2JhbFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Jlc29sdmVHbG9iYWxTdGF0dXMuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUmVzb2x2ZUdsb2JhbFN0YXR1cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkpTVmFsdWUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiVmFsdWVQcm9maWxlLmgiCiAjaW5jbHVkZSA8d3RmL0JvdW5k
c0NoZWNrZWRQb2ludGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCiAj
aW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
U291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJTeW1i
b2xUYWJsZS5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCShyZXZpc2lv
biAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAi
UHJvdGVjdC5oIgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEZWJ1Z2dlckFjdGl2YXRpb24uaCIK
IAogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2lu
Y2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkRGR0FycmF5TW9kZS5oIgogI2luY2x1ZGUgIkRGR0NhcGFiaWxpdGllcy5o
IgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKICNpbmNsdWRlICJSZXNvbHZlR2xvYmFsU3Rh
dHVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCShyZXZpc2lv
biAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRG
R0luc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCiAjaW5jbHVkZSAiR2V0QnlJ
ZFN0YXR1cy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3Rh
dHVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkRGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5oIgog
I2luY2x1ZGUgIkRGR1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiREZHVmlydHVhbFJlZ2lzdGVyQWxs
b2NhdGlvblBoYXNlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJE
RkdJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR1Zhcmlh
YmxlQWNjZXNzRGF0YUR1bXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNp
bmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAJKHJldmlzaW9u
IDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAj
aW5jbHVkZSAiREZHTm9kZS5oIgogI2luY2x1ZGUgIkpJVC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoREZHX0pJVCkgJiYgVVNFKEpTVkFMVUUzMl82NCkKIAogI2luY2x1ZGUgIkRGR09w
ZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGFM
b2cuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlz
aW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERG
R19KSVQpICYmIFVTRShKU1ZBTFVFNjQpCiAKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCisj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUg
IkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUg
IkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShy
ZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNp
bmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMzk0ODkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXJyYXlQcm90b3R5cGUu
aCIKICNpbmNsdWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgog
I2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
REZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpA
QCAtMzY0LDYgKzM2NSwyNzYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2xlYXJHZW5lcmF0aW9u
SW5mbwogICAgIG1fZnBycyA9IFJlZ2lzdGVyQmFuazxGUFJJbmZvPigpOwogfQogCitTaWxlbnRS
ZWdpc3RlclNhdmVQbGFuIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0
dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BSUmVnIHNvdXJjZSkKK3sKKyAgICBHZW5lcmF0aW9uSW5m
byYgaW5mbyA9IG1fZ2VuZXJhdGlvbkluZm9bc3BpbGxNZV07CisgICAgTm9kZUluZGV4IG5vZGVJ
bmRleCA9IGluZm8ubm9kZUluZGV4KCk7CisgICAgTm9kZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7
CisgICAgRGF0YUZvcm1hdCByZWdpc3RlckZvcm1hdCA9IGluZm8ucmVnaXN0ZXJGb3JtYXQoKTsK
KyAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUpOworICAgIEFTU0VS
VChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0RG91YmxlKTsKKyAgICAgICAgCisgICAgU2ls
ZW50U3BpbGxBY3Rpb24gc3BpbGxBY3Rpb247CisgICAgU2lsZW50RmlsbEFjdGlvbiBmaWxsQWN0
aW9uOworICAgICAgICAKKyAgICBpZiAoIWluZm8ubmVlZHNTcGlsbCgpKQorICAgICAgICBzcGls
bEFjdGlvbiA9IERvTm90aGluZ0ZvclNwaWxsOworICAgIGVsc2UgeworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlcikKKyAgICAgICAgICAgIHNwaWxsQWN0
aW9uID0gU3RvcmUzMlBheWxvYWQ7CisgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09
IERhdGFGb3JtYXRDZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQor
ICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZVB0cjsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOworICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTY0OworICAgICAgICB9CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICBpZiAocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpIHsKKyAgICAg
ICAgICAgIEFTU0VSVChpbmZvLnRhZ0dQUigpID09IHNvdXJjZSB8fCBpbmZvLnBheWxvYWRHUFIo
KSA9PSBzb3VyY2UpOworICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBzb3VyY2UgPT0gaW5mby50
YWdHUFIoKSA/IFN0b3JlMzJUYWcgOiBTdG9yZTMyUGF5bG9hZDsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgICAgICBz
cGlsbEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOworICAgICAgICB9CisjZW5kaWYKKyAgICB9Cisg
ICAgICAgIAorICAgIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlcikgewor
ICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOworICAgICAgICBBU1NFUlQoaXNK
U0ludGVnZXIoaW5mby5yZWdpc3RlckZvcm1hdCgpKSk7CisgICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9kZUluZGV4
KSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJDb25zdGFudDsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKKyAgICB9IGVs
c2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRCb29sZWFuKSB7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGZpbGxBY3Rp
b24gPSBEb05vdGhpbmdGb3JGaWxsOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
QVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3Rh
bnQoKSkgeworICAgICAgICAgICAgQVNTRVJUKGlzQm9vbGVhbkNvbnN0YW50KG5vZGVJbmRleCkp
OworICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldEJvb2xlYW5Db25zdGFudDsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKKyNlbmRpZgor
ICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwpIHsKKyAgICAg
ICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29u
c3RhbnQoKSkgeworICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50
KG5vZGVJbmRleCk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCB2YWx1ZS5pc0Nl
bGwoKSk7CisgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2VsbENvbnN0YW50OworICAgICAg
ICB9IGVsc2UgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZFB0cjsKKyNlbHNlCisgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsK
KyNlbmRpZgorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRh
Rm9ybWF0U3RvcmFnZSkgeworICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwor
ICAgICAgICBmaWxsQWN0aW9uID0gTG9hZFB0cjsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NF
UlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CisgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFudChub2RlSW5k
ZXgpLmlzQ2VsbCgpKQorICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRUcnVzdGVkSlND
b25zdGFudDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
U2V0SlNDb25zdGFudDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdEludGVnZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9
PSBEYXRhRm9ybWF0SlNJbnRlZ2VyKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQ
YXlsb2FkQm94SW50OworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBE
YXRhRm9ybWF0RG91YmxlKSB7CisgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0g
RGF0YUZvcm1hdEpTRG91YmxlKTsKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkRG91Ymxl
Qm94RG91YmxlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2Fk
NjQ7CisjZWxzZQorICAgICAgICBBU1NFUlQoaW5mby50YWdHUFIoKSA9PSBzb3VyY2UgfHwgaW5m
by5wYXlsb2FkR1BSKCkgPT0gc291cmNlKTsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQo
KSkKKyAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBpbmZvLnRhZ0dQUigpID09IHNvdXJjZSA/IFNl
dEpTQ29uc3RhbnRUYWcgOiBTZXRKU0NvbnN0YW50UGF5bG9hZDsKKyAgICAgICAgZWxzZSBpZiAo
aW5mby5wYXlsb2FkR1BSKCkgPT0gc291cmNlKQorICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExv
YWQzMlBheWxvYWQ7CisgICAgICAgIGVsc2UgeyAvLyBGaWxsIHRoZSBUYWcKKyAgICAgICAgICAg
IHN3aXRjaCAoaW5mby5zcGlsbEZvcm1hdCgpKSB7CisgICAgICAgICAgICBjYXNlIERhdGFGb3Jt
YXRJbnRlZ2VyOgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRh
Rm9ybWF0SlNJbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJU
YWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRD
ZWxsOgorICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNDZWxsKTsKKyAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2VsbFRhZzsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0Jvb2xl
YW4pOworICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRCb29sZWFuVGFnOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZDMyVGFnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisjZW5kaWYKKyAgICB9CisgICAgICAgIAorICAgIHJldHVybiBTaWxl
bnRSZWdpc3RlclNhdmVQbGFuKHNwaWxsQWN0aW9uLCBmaWxsQWN0aW9uLCBub2RlSW5kZXgsIHNv
dXJjZSk7Cit9CisgICAgCitTaWxlbnRSZWdpc3RlclNhdmVQbGFuIFNwZWN1bGF0aXZlSklUOjpz
aWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJj
ZSkKK3sKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IG1fZ2VuZXJhdGlvbkluZm9bc3BpbGxN
ZV07CisgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGluZm8ubm9kZUluZGV4KCk7CisgICAgTm9k
ZSYgbm9kZSA9IGF0KG5vZGVJbmRleCk7CisgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSA9PSBEYXRhRm9ybWF0RG91YmxlKTsKKworICAgIFNpbGVudFNwaWxsQWN0aW9uIHNwaWxsQWN0
aW9uOworICAgIFNpbGVudEZpbGxBY3Rpb24gZmlsbEFjdGlvbjsKKyAgICAgICAgCisgICAgaWYg
KCFpbmZvLm5lZWRzU3BpbGwoKSkKKyAgICAgICAgc3BpbGxBY3Rpb24gPSBEb05vdGhpbmdGb3JT
cGlsbDsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKCFhdChpbmZvLm5vZGVJbmRleCgpKS5o
YXNDb25zdGFudCgpKTsKKyAgICAgICAgQVNTRVJUKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRh
Rm9ybWF0Tm9uZSk7CisgICAgICAgIEFTU0VSVChpbmZvLmZwcigpID09IHNvdXJjZSk7CisgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmVEb3VibGU7CisgICAgfQorICAgICAgICAKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKKyAgICAgICAgQVNTRVJU
KGlzTnVtYmVyQ29uc3RhbnQobm9kZUluZGV4KSk7CisgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRE
b3VibGVDb25zdGFudDsKKyAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRh
Rm9ybWF0Tm9uZSAmJiBpbmZvLnNwaWxsRm9ybWF0KCkgIT0gRGF0YUZvcm1hdERvdWJsZSkgewor
ICAgICAgICAvLyBpdCB3YXMgYWxyZWFkeSBzcGlsbGVkIHByZXZpb3VzbHkgYW5kIG5vdCBhcyBh
IGRvdWJsZSwgd2hpY2ggbWVhbnMgd2UgbmVlZCB1bmJveGluZy4KKyAgICAgICAgQVNTRVJUKGlu
Zm8uc3BpbGxGb3JtYXQoKSAmIERhdGFGb3JtYXRKUyk7CisgICAgICAgIGZpbGxBY3Rpb24gPSBM
b2FkSlNVbmJveERvdWJsZTsKKyAgICB9IGVsc2UKKyAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRE
b3VibGU7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEFTU0VSVChpbmZvLnJlZ2lzdGVy
Rm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZSB8fCBpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgPT0g
RGF0YUZvcm1hdEpTRG91YmxlKTsKKyAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CisgICAg
ICAgIEFTU0VSVChpc051bWJlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICBmaWxsQWN0
aW9uID0gU2V0RG91YmxlQ29uc3RhbnQ7CisgICAgfSBlbHNlCisgICAgICAgIGZpbGxBY3Rpb24g
PSBMb2FkRG91YmxlOworI2VuZGlmCisKKyAgICByZXR1cm4gU2lsZW50UmVnaXN0ZXJTYXZlUGxh
bihzcGlsbEFjdGlvbiwgZmlsbEFjdGlvbiwgbm9kZUluZGV4LCBzb3VyY2UpOworfQorICAgIAor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U3BpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYgcGxhbikKK3sKKyAgICBzd2l0Y2ggKHBsYW4uc3BpbGxBY3Rpb24oKSkgeworICAgIGNh
c2UgRG9Ob3RoaW5nRm9yU3BpbGw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmUzMlRh
ZzoKKyAgICAgICAgbV9qaXQuc3RvcmUzMihwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6dGFnRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU3RvcmUzMlBheWxvYWQ6CisgICAgICAgIG1faml0LnN0b3JlMzIocGxhbi5n
cHIoKSwgSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVh
bFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZVB0cjoKKyAgICAg
ICAgbV9qaXQuc3RvcmVQdHIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQo
cGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgYnJlYWs7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjYXNlIFN0b3JlNjQ6CisgICAgICAgIG1faml0LnN0b3Jl
NjQocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgo
KSkudmlydHVhbFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBjYXNl
IFN0b3JlRG91YmxlOgorICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShwbGFuLmZwcigpLCBKSVRD
b21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIo
KSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisgICAgCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxs
KGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcmFtcGxlKQor
eworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgVU5VU0VEX1BBUkFNKGNhblRyYW1wbGUpOwor
I2VuZGlmCisgICAgc3dpdGNoIChwbGFuLmZpbGxBY3Rpb24oKSkgeworICAgIGNhc2UgRG9Ob3Ro
aW5nRm9yRmlsbDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50Ogor
ICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVlT2ZJbnQzMkNvbnN0YW50KHBsYW4ubm9kZUlu
ZGV4KCkpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0Qm9vbGVh
bkNvbnN0YW50OgorICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMih2YWx1ZU9mQm9vbGVh
bkNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU2V0Q2VsbENvbnN0YW50OgorICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW1QdHIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkuYXNDZWxsKCkpLCBwbGFu
LmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjYXNlIFNl
dFRydXN0ZWRKU0NvbnN0YW50OgorICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT2ZKU0NvbnN0YW50
QXNJbW02NChwbGFuLm5vZGVJbmRleCgpKS5hc1RydXN0ZWRJbW02NCgpLCBwbGFuLmdwcigpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXRKU0NvbnN0YW50OgorICAgICAgICBtX2ppdC5t
b3ZlKHZhbHVlT2ZKU0NvbnN0YW50QXNJbW02NChwbGFuLm5vZGVJbmRleCgpKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0RG91YmxlQ29uc3RhbnQ6CisgICAgICAg
IG1faml0Lm1vdmUoSW1tNjQocmVpbnRlcnByZXREb3VibGVUb0ludDY0KHZhbHVlT2ZOdW1iZXJD
b25zdGFudChwbGFuLm5vZGVJbmRleCgpKSkpLCBjYW5UcmFtcGxlKTsKKyAgICAgICAgbV9qaXQu
bW92ZTY0VG9Eb3VibGUoY2FuVHJhbXBsZSwgcGxhbi5mcHIoKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTG9hZDMyUGF5bG9hZEJveEludDoKKyAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3Rlcigp
KSwgcGxhbi5ncHIoKSk7CisgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkRG91
YmxlQm94RG91YmxlOgorICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NG
b3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsK
KyAgICAgICAgbV9qaXQuc3ViNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBwbGFu
LmdwcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkSlNVbmJveERvdWJsZToKKyAg
ICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUlu
ZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgY2FuVHJhbXBsZSk7CisgICAgICAgIHVuYm94RG91
YmxlKGNhblRyYW1wbGUsIHBsYW4uZnByKCkpOworICAgICAgICBicmVhazsKKyNlbHNlCisgICAg
Y2FzZSBTZXRKU0NvbnN0YW50VGFnOgorICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVlT2ZK
U0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnRhZygpKSwgcGxhbi5ncHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2V0SlNDb25zdGFudFBheWxvYWQ6CisgICAgICAgIG1faml0Lm1v
dmUoSW1tMzIodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkucGF5bG9hZCgpKSwg
cGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0SW50MzJUYWc6CisgICAg
ICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgcGxhbi5ncHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2V0Q2VsbFRhZzoKKyAgICAgICAgbV9qaXQu
bW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHBsYW4uZ3ByKCkpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNldEJvb2xlYW5UYWc6CisgICAgICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkJvb2xlYW5UYWcpLCBwbGFuLmdwcigpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTZXREb3VibGVDb25zdGFudDoKKyAgICAgICAgbV9qaXQubG9hZERvdWJs
ZShhZGRyZXNzT2ZEb3VibGVDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSwgcGxhbi5mcHIoKSk7
CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBMb2FkMzJUYWc6CisgICAgICAgIG1f
aml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1
YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZDMyUGF5bG9hZDoKKyAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZFB0cjoKKyAgICAgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOworICAgICAgICBicmVhazsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
ICAgIGNhc2UgTG9hZDY0OgorICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigp
KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBjYXNlIExvYWREb3VibGU6CisgICAgICAg
IG1faml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmZwcigpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorICAg
IAogY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3IqIFNwZWN1bGF0aXZlSklUOjp0eXBlZEFycmF5
RGVzY3JpcHRvcihBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAgIHN3aXRjaCAoYXJyYXlNb2Rl
LnR5cGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsMjc1ICszMzIsMTAg
QEAgcHVibGljOgogICAgIC8vIHRoZXkgc3BpbGwgYWxsIGxpdmUgdmFsdWVzIHRvIHRoZSBhcHBy
b3ByaWF0ZQogICAgIC8vIHNsb3RzIGluIHRoZSBKU1N0YWNrIHdpdGhvdXQgY2hhbmdpbmcgYW55
IHN0YXRlCiAgICAgLy8gaW4gdGhlIEdlbmVyYXRpb25JbmZvLgotICAgIFNpbGVudFJlZ2lzdGVy
U2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQ
UlJlZyBzb3VyY2UpCi0gICAgewotICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IG1fZ2Vu
ZXJhdGlvbkluZm9bc3BpbGxNZV07Ci0gICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBpbmZv
Lm5vZGVJbmRleCgpOwotICAgICAgICBOb2RlJiBub2RlID0gYXQobm9kZUluZGV4KTsKLSAgICAg
ICAgRGF0YUZvcm1hdCByZWdpc3RlckZvcm1hdCA9IGluZm8ucmVnaXN0ZXJGb3JtYXQoKTsKLSAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKTsKLSAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFGb3JtYXREb3VibGUpOwotICAgICAgICAKLSAg
ICAgICAgU2lsZW50U3BpbGxBY3Rpb24gc3BpbGxBY3Rpb247Ci0gICAgICAgIFNpbGVudEZpbGxB
Y3Rpb24gZmlsbEFjdGlvbjsKLSAgICAgICAgCi0gICAgICAgIGlmICghaW5mby5uZWVkc1NwaWxs
KCkpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IERvTm90aGluZ0ZvclNwaWxsOwotICAgICAg
ICBlbHNlIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3By
KCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9y
bWF0SW50ZWdlcikKLSAgICAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlMzJQYXlsb2Fk
OwotICAgICAgICAgICAgZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwg
fHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UpCi0gICAgICAgICAgICAgICAg
c3BpbGxBY3Rpb24gPSBTdG9yZVB0cjsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRKUyk7Ci0gICAgICAgICAgICAg
ICAgc3BpbGxBY3Rpb24gPSBTdG9yZTY0OwotICAgICAgICAgICAgfQotI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKLSAgICAgICAgICAgIGlmIChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRKUykg
ewotICAgICAgICAgICAgICAgIEFTU0VSVChpbmZvLnRhZ0dQUigpID09IHNvdXJjZSB8fCBpbmZv
LnBheWxvYWRHUFIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0g
c291cmNlID09IGluZm8udGFnR1BSKCkgPyBTdG9yZTMyVGFnIDogU3RvcmUzMlBheWxvYWQ7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09
IHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBTdG9yZTMyUGF5bG9hZDsK
LSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAo
cmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKLSAgICAgICAgICAgIEFTU0VS
VChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBBU1NFUlQoaXNKU0ludGVnZXIo
aW5mby5yZWdpc3RlckZvcm1hdCgpKSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFu
dCgpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzSW50MzJDb25zdGFudChub2RlSW5kZXgp
KTsKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SW50MzJDb25zdGFudDsKLSAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2Fk
OwotICAgICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRCb29sZWFu
KSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IERvTm90aGluZ0ZvckZpbGw7Ci0jZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsK
LSAgICAgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgICAgICBB
U1NFUlQoaXNCb29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgZmls
bEFjdGlvbiA9IFNldEJvb2xlYW5Db25zdGFudDsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotI2VuZGlmCi0gICAgICAgIH0g
ZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwpIHsKLSAgICAgICAgICAg
IEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5oYXND
b25zdGFudCgpKSB7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0Nv
bnN0YW50KG5vZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwg
dmFsdWUuaXNDZWxsKCkpOwotICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRDZWxsQ29u
c3RhbnQ7Ci0gICAgICAgICAgICB9IGVsc2UgewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAg
ICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7Ci0jZWxzZQotICAgICAgICAgICAgICAgIGZp
bGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBmaWxsQWN0
aW9uID0gTG9hZFB0cjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWdp
c3RlckZvcm1hdCAmIERhdGFGb3JtYXRKUyk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlT2ZKU0NvbnN0YW50KG5v
ZGVJbmRleCkuaXNDZWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRU
cnVzdGVkSlNDb25zdGFudDsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgIGZpbGxBY3Rpb24gPSBTZXRKU0NvbnN0YW50OwotICAgICAgICAgICAgfSBlbHNlIGlmIChp
bmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7Ci0gICAgICAg
ICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlBheWxvYWRCb3hJbnQ7Ci0gICAgICAgICAgICB9
IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlKSB7Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0RvdWJsZSk7
Ci0gICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWREb3VibGVCb3hEb3VibGU7Ci0gICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDY0OwotI2Vs
c2UKLSAgICAgICAgICAgIEFTU0VSVChpbmZvLnRhZ0dQUigpID09IHNvdXJjZSB8fCBpbmZvLnBh
eWxvYWRHUFIoKSA9PSBzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQo
KSkKLSAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gaW5mby50YWdHUFIoKSA9PSBzb3VyY2Ug
PyBTZXRKU0NvbnN0YW50VGFnIDogU2V0SlNDb25zdGFudFBheWxvYWQ7Ci0gICAgICAgICAgICBl
bHNlIGlmIChpbmZvLnBheWxvYWRHUFIoKSA9PSBzb3VyY2UpCi0gICAgICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWQzMlBheWxvYWQ7Ci0gICAgICAgICAgICBlbHNlIHsgLy8gRmlsbCB0aGUg
VGFnCi0gICAgICAgICAgICAgICAgc3dpdGNoIChpbmZvLnNwaWxsRm9ybWF0KCkpIHsKLSAgICAg
ICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnRlZ2VyOgotICAgICAgICAgICAgICAgICAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7Ci0gICAgICAgICAg
ICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRJbnQzMlRhZzsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0NlbGwpOwotICAg
ICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Q2VsbFRhZzsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKLSAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRKU0Jv
b2xlYW4pOwotICAgICAgICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0Qm9vbGVhblRhZzsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQzMlRhZzsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotI2VuZGlmCi0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiBTaWxlbnRSZWdpc3RlclNhdmVQbGFu
KHNwaWxsQWN0aW9uLCBmaWxsQWN0aW9uLCBub2RlSW5kZXgsIHNvdXJjZSk7Ci0gICAgfQotICAg
IAotICAgIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVh
bFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJlZyBzb3VyY2UpCi0gICAgewotICAgICAgICBHZW5lcmF0
aW9uSW5mbyYgaW5mbyA9IG1fZ2VuZXJhdGlvbkluZm9bc3BpbGxNZV07Ci0gICAgICAgIE5vZGVJ
bmRleCBub2RlSW5kZXggPSBpbmZvLm5vZGVJbmRleCgpOwotICAgICAgICBOb2RlJiBub2RlID0g
YXQobm9kZUluZGV4KTsKLSAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBE
YXRhRm9ybWF0RG91YmxlKTsKLQotICAgICAgICBTaWxlbnRTcGlsbEFjdGlvbiBzcGlsbEFjdGlv
bjsKLSAgICAgICAgU2lsZW50RmlsbEFjdGlvbiBmaWxsQWN0aW9uOwotICAgICAgICAKLSAgICAg
ICAgaWYgKCFpbmZvLm5lZWRzU3BpbGwoKSkKLSAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gRG9O
b3RoaW5nRm9yU3BpbGw7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKCFhdChp
bmZvLm5vZGVJbmRleCgpKS5oYXNDb25zdGFudCgpKTsKLSAgICAgICAgICAgIEFTU0VSVChpbmZv
LnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdE5vbmUpOwotICAgICAgICAgICAgQVNTRVJUKGlu
Zm8uZnByKCkgPT0gc291cmNlKTsKLSAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVEb3Vi
bGU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYg
KG5vZGUuaGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzTnVtYmVyQ29uc3Rh
bnQobm9kZUluZGV4KSk7Ci0gICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0RG91YmxlQ29uc3Rh
bnQ7Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpICE9IERhdGFGb3JtYXRO
b25lICYmIGluZm8uc3BpbGxGb3JtYXQoKSAhPSBEYXRhRm9ybWF0RG91YmxlKSB7Ci0gICAgICAg
ICAgICAvLyBpdCB3YXMgYWxyZWFkeSBzcGlsbGVkIHByZXZpb3VzbHkgYW5kIG5vdCBhcyBhIGRv
dWJsZSwgd2hpY2ggbWVhbnMgd2UgbmVlZCB1bmJveGluZy4KLSAgICAgICAgICAgIEFTU0VSVChp
bmZvLnNwaWxsRm9ybWF0KCkgJiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAgICAgZmlsbEFjdGlv
biA9IExvYWRKU1VuYm94RG91YmxlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkRG91YmxlOwotI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgQVNT
RVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlIHx8IGluZm8ucmVn
aXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOwotICAgICAgICBpZiAobm9kZS5o
YXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNOdW1iZXJDb25zdGFudChub2Rl
SW5kZXgpKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXREb3VibGVDb25zdGFudDsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZERvdWJsZTsKLSNlbmRp
ZgotCi0gICAgICAgIHJldHVybiBTaWxlbnRSZWdpc3RlclNhdmVQbGFuKHNwaWxsQWN0aW9uLCBm
aWxsQWN0aW9uLCBub2RlSW5kZXgsIHNvdXJjZSk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc2ls
ZW50U3BpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYgcGxhbikKLSAgICB7Ci0gICAg
ICAgIHN3aXRjaCAocGxhbi5zcGlsbEFjdGlvbigpKSB7Ci0gICAgICAgIGNhc2UgRG9Ob3RoaW5n
Rm9yU3BpbGw6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTdG9yZTMyVGFnOgot
ICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwbGFuLmdwcigpLCBKSVRDb21waWxlcjo6dGFnRm9y
KGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBTdG9yZTMyUGF5bG9hZDoKLSAgICAgICAgICAgIG1faml0LnN0
b3JlMzIocGxhbi5ncHIoKSwgSklUQ29tcGlsZXI6OnBheWxvYWRGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFN0b3JlUHRyOgotICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIocGxhbi5ncHIoKSwgSklU
Q29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVy
KCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGNh
c2UgU3RvcmU2NDoKLSAgICAgICAgICAgIG1faml0LnN0b3JlNjQocGxhbi5ncHIoKSwgSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5kZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkp
KTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGNhc2UgU3RvcmVEb3VibGU6
Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShwbGFuLmZwcigpLCBKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICB2b2lkIHNpbGVudEZpbGwo
Y29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYgcGxhbiwgR1BSUmVnIGNhblRyYW1wbGUpCi0g
ICAgewotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIFVOVVNFRF9QQVJBTShjYW5UcmFt
cGxlKTsKLSNlbmRpZgotICAgICAgICBzd2l0Y2ggKHBsYW4uZmlsbEFjdGlvbigpKSB7Ci0gICAg
ICAgIGNhc2UgRG9Ob3RoaW5nRm9yRmlsbDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFNldEludDMyQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVl
T2ZJbnQzMkNvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXRCb29sZWFuQ29uc3RhbnQ6Ci0gICAgICAgICAg
ICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMih2YWx1ZU9mQm9vbGVhbkNvbnN0YW50KHBsYW4ubm9k
ZUluZGV4KCkpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBTZXRDZWxsQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIo
dmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSkuYXNDZWxsKCkpLCBwbGFuLmdwcigp
KTsKLSAgICAgICAgICAgIGJyZWFrOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGNhc2Ug
U2V0VHJ1c3RlZEpTQ29uc3RhbnQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT2ZKU0Nv
bnN0YW50QXNJbW02NChwbGFuLm5vZGVJbmRleCgpKS5hc1RydXN0ZWRJbW02NCgpLCBwbGFuLmdw
cigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEpTQ29uc3RhbnQ6Ci0g
ICAgICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT2ZKU0NvbnN0YW50QXNJbW02NChwbGFuLm5vZGVJ
bmRleCgpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBT
ZXREb3VibGVDb25zdGFudDoKLSAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tNjQocmVpbnRlcnBy
ZXREb3VibGVUb0ludDY0KHZhbHVlT2ZOdW1iZXJDb25zdGFudChwbGFuLm5vZGVJbmRleCgpKSkp
LCBjYW5UcmFtcGxlKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmU2NFRvRG91YmxlKGNhblRyYW1w
bGUsIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTG9hZDMy
UGF5bG9hZEJveEludDoKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5
bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3By
KCkpOwotICAgICAgICAgICAgbV9qaXQub3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIsIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTG9hZERv
dWJsZUJveERvdWJsZToKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRk
cmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3By
KCkpOwotICAgICAgICAgICAgbV9qaXQuc3ViNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvYWRK
U1VuYm94RG91YmxlOgotICAgICAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxSZWdpc3RlcigpKSwgY2FuVHJhbXBs
ZSk7Ci0gICAgICAgICAgICB1bmJveERvdWJsZShjYW5UcmFtcGxlLCBwbGFuLmZwcigpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotI2Vsc2UKLSAgICAgICAgY2FzZSBTZXRKU0NvbnN0YW50VGFnOgot
ICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGVJ
bmRleCgpKS50YWcoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU2V0SlNDb25zdGFudFBheWxvYWQ6Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMy
KHZhbHVlT2ZKU0NvbnN0YW50KHBsYW4ubm9kZUluZGV4KCkpLnBheWxvYWQoKSksIHBsYW4uZ3By
KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0SW50MzJUYWc6Ci0gICAg
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHBsYW4u
Z3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0Q2VsbFRhZzoKLSAg
ICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwbGFu
LmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNldEJvb2xlYW5UYWc6
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFn
KSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZXREb3Vi
bGVDb25zdGFudDoKLSAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoYWRkcmVzc09mRG91Ymxl
Q29uc3RhbnQocGxhbi5ub2RlSW5kZXgoKSksIHBsYW4uZnByKCkpOwotICAgICAgICAgICAgYnJl
YWs7Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBMb2FkMzJUYWc6Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkMzIoSklUQ29tcGlsZXI6OnRhZ0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVn
aXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TG9hZDMyUGF5bG9hZDoKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5
bG9hZEZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3By
KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTG9hZFB0cjoKLSAgICAgICAg
ICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IoYXQocGxhbi5ub2RlSW5k
ZXgoKSkudmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGNhc2UgTG9hZDY0OgotICAgICAgICAgICAg
bV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkp
LnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNl
bmRpZgotICAgICAgICBjYXNlIExvYWREb3VibGU6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91
YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKGF0KHBsYW4ubm9kZUluZGV4KCkpLnZpcnR1YWxS
ZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAg
fQorICAgIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVh
bFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpOworICAgIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEZQUlJl
ZyBzb3VyY2UpOworICAgIHZvaWQgc2lsZW50U3BpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbiYpOworICAgIHZvaWQgc2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFu
JiwgR1BSUmVnIGNhblRyYW1wbGUpOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxl
Y3Rpb25UeXBlPgogICAgIHZvaWQgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGJvb2wgZG9T
cGlsbCwgQ29sbGVjdGlvblR5cGUmIHBsYW5zLCBHUFJSZWcgZXhjbHVkZSwgR1BSUmVnIGV4Y2x1
ZGUyID0gSW52YWxpZEdQUlJlZywgRlBSUmVnIGZwckV4Y2x1ZGUgPSBJbnZhbGlkRlBSUmVnKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5n
UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
dWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiREZHSW5zZXJ0aW9uU2V0
LmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKICNpbmNsdWRlICJERkdWYXJpYWJsZUFjY2Vzc0Rh
dGFEdW1wLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcAkocmV2
aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2
ZW50U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHVmFsdWVTb3VyY2UuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVk
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRC
bG9jay5oCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9D
b3BpZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
Q29weVdvcmtMaXN0LmgiCiAjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1
ZS5oIgotI2luY2x1ZGUgIkpTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgog
I2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcAkocmV2aXNpb24gMTM5NDg5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiVHJhY2luZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiV2Vha1NldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXBTdGF0aXN0aWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTdGF0aXN0aWNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNp
bmNsdWRlIDxzdGRsaWIuaD4KICNpZiBPUyhVTklYKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSAiSW5jcmVtZW50YWxTd2VlcGVyLmgiCiAjaW5jbHVkZSAiSlND
ZWxsLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEs
NiArMTEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNp
dG9yLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLQorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24g
MTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5oIgog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgi
CiAKIG5hbWVzcGFjZSBKU0MgIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
bG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgog
I2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJ1Y3R1
cmUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJv
dXRpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRh
LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJ
KHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpTU0UyQ2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rp
b24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5j
bHVkZSAiU2FtcGxpbmdUb29sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFyaXRobWV0aWMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZp
c2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAi
U2FtcGxpbmdUb29sLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwzMl82NC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkpJVFN0dWJDYWxsLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQ29kZS5oCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOSBAQAogCiAjaWYgRU5BQkxF
KEpJVCkgfHwgRU5BQkxFKExMSU5UKQogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkpTVmFsdWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKKyNpbmNsdWRlICJKSVRTdHVi
cy5oIgorI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDEzOTQ4OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAKICNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCAr
MzYsNiBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIlJl
Z2lzdGVyLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZU9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIlRodW5r
R2VuZXJhdG9ycy5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9uIDEz
OTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1
ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYuaCIKLSNpbmNsdWRlICJSZWdpc3Rlci5oIgotI2luY2x1ZGUgIlJlc29sdmVPcGVyYXRpb24u
aCIKLSNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKKyNpbmNsdWRlICJUaHVua0dlbmVyYXRv
ci5oIgorI2luY2x1ZGUgIldlYWsuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNlcHRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNl
cHRpb25zLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTExJbnRDb21tb24uaCIKICNp
bmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCShyZXZpc2lvbiAx
Mzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZS5oIgogI2luY2x1ZGUgIlBy
b2ZpbGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAko
cmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiTGVn
YWN5UHJvZmlsZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmls
ZS5oIgogI2luY2x1ZGUgIlRyYWNpbmcuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRl
Y29kZS5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJC
eXRlY29kZVNlcXVlbmNlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzLmgiCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmNwcAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkocmV2aXNpb24gMTM5NDg5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJDb21w
aWxhdGlvbi5oIgogCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9T
dHJpbmdQcmludFN0cmVhbS5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAkocmV2aXNp
b24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29t
cGlsZWRCeXRlY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaCIKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJKU09OT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvZmlsZXJPU1JFeGl0Lmgi
CiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5j
cHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9TUkV4aXRTaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTY29wZS5oIgogI2luY2x1
ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9T
dHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVy
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
T3JpZ2luLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIlByb2ZpbGVyT3JpZ2luLmgiCiAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9maWxlckJ5dGVjb2Rl
cy5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmNwcAko
cmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyT3JpZ2luU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rl
cy5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuaCIKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsy
NCw3IEBACiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5o
IgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIHVz
aW5nIHN0ZDo6bWluOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhbkNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJCb29sZWFuUHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDYgKzIyLDcgQEAKICNpbmNsdWRlICJCb29sZWFuT2JqZWN0LmgiCiAKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAi
T2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FsbERhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhbGxEYXRhLmNw
cAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2Fs
bERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkocmV2aXNpb24g
MTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGlu
ZXMuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1
ZGUgIkNvZGVQcm9maWxpbmcuaCIKKyNpbmNsdWRlICJEZWJ1Z2dlci5oIgorI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0xv
Y2suaCIKLSNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJQYXJzZXIuaCIKLSNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgPHd0
Zi9XVEZUaHJlYWREYXRhLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc3RydWN0RGF0YS5jcHAJKHJldmlzaW9uIDEz
OTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnN0cnVjdERhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHJl
dmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiSlNTdHJp
bmdCdWlsZGVyLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8dGltZS5oPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCShy
ZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAKICNpbmNsdWRlICJK
U0RhdGVNYXRoLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQorI2luY2x1ZGUgIkpT
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNp
bmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCShyZXZpc2lvbiAxMzk0ODkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJFcnJvclByb3RvdHlwZS5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgi
CiAKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxk
ZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2UgSlND
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiRXhlY3V0aW9uSGFybmVzcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpJ
VERyaXZlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJMZXhlci5o
IgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNp
bmNsdWRlICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0
dGVyLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lu
Y2x1ZGUgIkdldHRlclNldHRlci5oIgogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJOdW1lcmljU3Ry
aW5ncy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxuZXc+CiAjaW5jbHVk
ZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCShyZXZp
c2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZ1
bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBY3RpdmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5k
RnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAi
SlNPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDExICsyNCw5IEBACiAjZGVmaW5lIEpTQ2VsbF9oCiAKICNpbmNsdWRlICJDYWxs
RGF0YS5oIgotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbnN0cnVjdERhdGEu
aCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSlNW
YWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlR5cGVk
QXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCkBAIC0zOCw2ICsz
Niw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29weVZpc2l0b3I7CitjbGFzcyBFeGVj
U3RhdGU7CiBjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdDsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpAQCAtMTY1LDE3NCArMTY0LDYgQEAgcHJp
dmF0ZToKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKIH07CiAKLWlu
bGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKLXsKLX0KLQotaW5saW5l
IHZvaWQgSlNDZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17
Ci0jaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCi0gICAgQVNTRVJUKGdsb2JhbERhdGEuaXNJbml0
aWFsaXppbmdPYmplY3QoKSk7Ci0gICAgZ2xvYmFsRGF0YS5zZXRJbml0aWFsaXppbmdPYmplY3RD
bGFzcygwKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlmCi0g
ICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLX0KLQotaW5saW5lIFN0cnVjdHVyZSogSlNDZWxsOjpz
dHJ1Y3R1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKLX0KLQot
aW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgTUFSS19MT0dfUEFSRU5UKHZpc2l0b3IsIGNlbGwpOwotCi0g
ICAgdmlzaXRvci5hcHBlbmQoJmNlbGwtPm1fc3RydWN0dXJlKTsKLX0KLQotLy8gLS0tIEpTVmFs
dWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWlubGluZSBib29sIEpT
VmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxs
KCktPmlzU3RyaW5nKCk7Ci19Ci0KLWlubGluZSBib29sIEpTVmFsdWU6OmlzUHJpbWl0aXZlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gIWlzQ2VsbCgpIHx8IGFzQ2VsbCgpLT5pc1N0cmluZygpOwot
fQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0dldHRlclNldHRlcigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pc0dldHRlclNldHRlcigpOwotfQotCi1pbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgp
ICYmIGFzQ2VsbCgpLT5pc09iamVjdCgpOwotfQotCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpnZXRT
dHJpbmcoRXhlY1N0YXRlKiBleGVjLCBTdHJpbmcmIHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlz
Q2VsbCgpICYmIGFzQ2VsbCgpLT5nZXRTdHJpbmcoZXhlYywgcyk7Ci19Ci0KLWlubGluZSBTdHJp
bmcgSlNWYWx1ZTo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICByZXR1
cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMpIDogU3RyaW5nKCk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBCYXNlPiBTdHJpbmcgSGFuZGxlQ29udmVydGVyPEJhc2UsIFVu
a25vd24+OjpnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJldHVybiBq
c1ZhbHVlKCkuZ2V0U3RyaW5nKGV4ZWMpOwotfQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6
OmdldE9iamVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdl
dE9iamVjdCgpIDogMDsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFVJbnQz
Mih1aW50MzJfdCYgdikgY29uc3QKLXsKLSAgICBpZiAoaXNJbnQzMigpKSB7Ci0gICAgICAgIGlu
dDMyX3QgaSA9IGFzSW50MzIoKTsKLSAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihp
KTsKLSAgICAgICAgcmV0dXJuIGkgPj0gMDsKLSAgICB9Ci0gICAgaWYgKGlzRG91YmxlKCkpIHsK
LSAgICAgICAgZG91YmxlIGQgPSBhc0RvdWJsZSgpOwotICAgICAgICB2ID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGQpOwotICAgICAgICByZXR1cm4gdiA9PSBkOwotICAgIH0KLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLWlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0
ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdAotewot
ICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b1ByaW1pdGl2ZShleGVjLCBwcmVmZXJy
ZWRUeXBlKSA6IGFzVmFsdWUoKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0UHJpbWl0
aXZlTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVl
KQotewotICAgIGlmIChpc0ludDMyKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNJbnQzMigpOwot
ICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
aWYgKGlzRG91YmxlKCkpIHsKLSAgICAgICAgbnVtYmVyID0gYXNEb3VibGUoKTsKLSAgICAgICAg
dmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChpc0Nl
bGwoKSkKLSAgICAgICAgcmV0dXJuIGFzQ2VsbCgpLT5nZXRQcmltaXRpdmVOdW1iZXIoZXhlYywg
bnVtYmVyLCB2YWx1ZSk7Ci0gICAgaWYgKGlzVHJ1ZSgpKSB7Ci0gICAgICAgIG51bWJlciA9IDEu
MDsKLSAgICAgICAgdmFsdWUgPSAqdGhpczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIGlmIChpc0ZhbHNlKCkgfHwgaXNOdWxsKCkpIHsKLSAgICAgICAgbnVtYmVyID0gMC4wOwot
ICAgICAgICB2YWx1ZSA9ICp0aGlzOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
QVNTRVJUKGlzVW5kZWZpbmVkKCkpOwotICAgIG51bWJlciA9IFFOYU47Ci0gICAgdmFsdWUgPSAq
dGhpczsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQUxXQVlTX0lOTElORSBkb3VibGUgSlNWYWx1
ZTo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkp
Ci0gICAgICAgIHJldHVybiBhc0ludDMyKCk7Ci0gICAgaWYgKGlzRG91YmxlKCkpCi0gICAgICAg
IHJldHVybiBhc0RvdWJsZSgpOwotICAgIHJldHVybiB0b051bWJlclNsb3dDYXNlKGV4ZWMpOwot
fQotCi1pbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKLXsKLSAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVl
Ojp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMs
IGdsb2JhbE9iamVjdCkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Ci19
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCwg
c2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKHNpemUgPj0gc2l6ZW9mKFQpKTsKLSNpZiBFTkFC
TEUoR0NfVkFMSURBVElPTikKLSAgICBBU1NFUlQoIWhlYXAuZ2xvYmFsRGF0YSgpLT5pc0luaXRp
YWxpemluZ09iamVjdCgpKTsKLSAgICBoZWFwLmdsb2JhbERhdGEoKS0+c2V0SW5pdGlhbGl6aW5n
T2JqZWN0Q2xhc3MoJlQ6OnNfaW5mbyk7Ci0jZW5kaWYKLSAgICBKU0NlbGwqIHJlc3VsdCA9IDA7
Ci0gICAgaWYgKFQ6Om5lZWRzRGVzdHJ1Y3Rpb24gJiYgVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1cmUp
Ci0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVXaXRo
SW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemUpKTsKLSAgICBlbHNlIGlmIChUOjpuZWVk
c0Rlc3RydWN0aW9uICYmICFUOjpoYXNJbW1vcnRhbFN0cnVjdHVyZSkKLSAgICAgICAgcmVzdWx0
ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcC5hbGxvY2F0ZVdpdGhOb3JtYWxEZXN0cnVjdG9y
KHNpemUpKTsKLSAgICBlbHNlIAotICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwq
PihoZWFwLmFsbG9jYXRlV2l0aG91dERlc3RydWN0b3Ioc2l6ZSkpOwotICAgIHJlc3VsdC0+Y2xl
YXJTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotICAgIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLXZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwKQotewotICAgIHJldHVybiBh
bGxvY2F0ZUNlbGw8VD4oaGVhcCwgc2l6ZW9mKFQpKTsKLX0KLSAgICAKLWlubGluZSBib29sIGlz
WmFwcGVkKGNvbnN0IEpTQ2VsbCogY2VsbCkKLXsKLSAgICByZXR1cm4gY2VsbC0+aXNaYXBwZWQo
KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBpbmxpbmUgVG8g
anNDYXN0KEZyb20qIGZyb20pCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiSlNDZWxsLmgiCisKK25hbWVzcGFjZSBKU0Mgewor
CitpbmxpbmUgSlNDZWxsOjpKU0NlbGwoQ3JlYXRpbmdFYXJseUNlbGxUYWcpCit7Cit9CisKK2lu
bGluZSBKU0NlbGw6OkpTQ2VsbChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorICAgIDogbV9zdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgdGhpcywgc3RydWN0dXJl
KQoreworfQorCitpbmxpbmUgdm9pZCBKU0NlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSkKK3sKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyAgICBBU1NFUlQo
Z2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKKyAgICBnbG9iYWxEYXRhLnNldElu
aXRpYWxpemluZ09iamVjdENsYXNzKDApOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZ2xvYmFs
RGF0YSk7CisjZW5kaWYKKyAgICBBU1NFUlQobV9zdHJ1Y3R1cmUpOworfQorCitpbmxpbmUgdm9p
ZCBKU0NlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIENyZWF0aW5nRWFybHlDZWxsVGFnKQoreworI2lmIEVOQUJMRShHQ19W
QUxJREFUSU9OKQorICAgIEFTU0VSVChnbG9iYWxEYXRhLmlzSW5pdGlhbGl6aW5nT2JqZWN0KCkp
OworICAgIGdsb2JhbERhdGEuc2V0SW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCk7CisgICAgaWYg
KHN0cnVjdHVyZSkKKyNlbmRpZgorICAgICAgICBtX3N0cnVjdHVyZS5zZXRFYXJseVZhbHVlKGds
b2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZSk7CisgICAgLy8gVmVyeSBmaXJzdCBzZXQgb2YgYWxs
b2NhdGlvbnMgd29uJ3QgaGF2ZSBhIHJlYWwgc3RydWN0dXJlLgorICAgIEFTU0VSVChtX3N0cnVj
dHVyZSB8fCAhZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworfQorCitpbmxpbmUgU3Ry
dWN0dXJlKiBKU0NlbGw6OnN0cnVjdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RydWN0
dXJlLmdldCgpOworfQorCitpbmxpbmUgdm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBNQVJLX0xPR19QQVJFTlQodmlz
aXRvciwgY2VsbCk7CisKKyAgICB2aXNpdG9yLmFwcGVuZCgmY2VsbC0+bV9zdHJ1Y3R1cmUpOwor
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCogYWxsb2NhdGVDZWxsKEhlYXAmIGhlYXAs
IHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVChzaXplID49IHNpemVvZihUKSk7CisjaWYgRU5B
QkxFKEdDX1ZBTElEQVRJT04pCisgICAgQVNTRVJUKCFoZWFwLmdsb2JhbERhdGEoKS0+aXNJbml0
aWFsaXppbmdPYmplY3QoKSk7CisgICAgaGVhcC5nbG9iYWxEYXRhKCktPnNldEluaXRpYWxpemlu
Z09iamVjdENsYXNzKCZUOjpzX2luZm8pOworI2VuZGlmCisgICAgSlNDZWxsKiByZXN1bHQgPSAw
OworICAgIGlmIChUOjpuZWVkc0Rlc3RydWN0aW9uICYmIFQ6Omhhc0ltbW9ydGFsU3RydWN0dXJl
KQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihoZWFwLmFsbG9jYXRlV2l0
aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplKSk7CisgICAgZWxzZSBpZiAoVDo6bmVl
ZHNEZXN0cnVjdGlvbiAmJiAhVDo6aGFzSW1tb3J0YWxTdHJ1Y3R1cmUpCisgICAgICAgIHJlc3Vs
dCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXAuYWxsb2NhdGVXaXRoTm9ybWFsRGVzdHJ1Y3Rv
cihzaXplKSk7CisgICAgZWxzZSAKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDZWxs
Kj4oaGVhcC5hbGxvY2F0ZVdpdGhvdXREZXN0cnVjdG9yKHNpemUpKTsKKyAgICByZXN1bHQtPmNs
ZWFyU3RydWN0dXJlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKyAgICAKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+Cit2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCkKK3sKKyAgICByZXR1cm4g
YWxsb2NhdGVDZWxsPFQ+KGhlYXAsIHNpemVvZihUKSk7Cit9CisgICAgCitpbmxpbmUgYm9vbCBp
c1phcHBlZChjb25zdCBKU0NlbGwqIGNlbGwpCit7CisgICAgcmV0dXJuIGNlbGwtPmlzWmFwcGVk
KCk7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3N0cnVjdHVyZS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNDZWxsOjpp
c1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RydWN0dXJlLT50eXBlSW5mbygpLnR5
cGUoKSA9PSBTdHJpbmdUeXBlOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6OmlzR2V0dGVyU2V0
dGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgp
ID09IEdldHRlclNldHRlclR5cGU7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNQcm94eSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9PSBQ
cm94eVR5cGU7Cit9CisKK2lubGluZSBib29sIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXIoKSBj
b25zdAoreworICAgIHJldHVybiBtX3N0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gQVBJ
VmFsdWVXcmFwcGVyVHlwZTsKK30KKworaW5saW5lIHZvaWQgSlNDZWxsOjpzZXRTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBB
U1NFUlQoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSA9PSB0
aGlzLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwor
ICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpID09IG1fc3RydWN0dXJlLT5jbGFzc0lu
Zm8oKSk7CisgICAgQVNTRVJUKCFtX3N0cnVjdHVyZQorICAgICAgICB8fCBtX3N0cnVjdHVyZS0+
dHJhbnNpdGlvbldhdGNocG9pbnRTZXRIYXNCZWVuSW52YWxpZGF0ZWQoKQorICAgICAgICB8fCBt
X3N0cnVjdHVyZS5nZXQoKSA9PSBzdHJ1Y3R1cmUpOworICAgIG1fc3RydWN0dXJlLnNldChnbG9i
YWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUpOworfQorCitpbmxpbmUgY29uc3QgTWV0aG9kVGFibGUq
IEpTQ2VsbDo6bWV0aG9kVGFibGUoKSBjb25zdAoreworICAgIHJldHVybiAmY2xhc3NJbmZvKCkt
Pm1ldGhvZFRhYmxlOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKGNvbnN0IENs
YXNzSW5mbyogaW5mbykgY29uc3QKK3sKKyAgICByZXR1cm4gY2xhc3NJbmZvKCktPmlzU3ViQ2xh
c3NPZihpbmZvKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIEpTQ2VsbDo6ZmFzdEdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBpZiAoIXN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3QodGhp
cyktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIHJldHVybiBtZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworLy8gRmFzdCBjYWxsIHRvIGdldCBhIHByb3BlcnR5
IHdoZXJlIHdlIG1heSBub3QgeWV0IGhhdmUgY29udmVydGVkIHRoZSBzdHJpbmcgdG8gYW4KKy8v
IGlkZW50aWZpZXIuIFRoZSBmaXJzdCB0aW1lIHdlIHBlcmZvcm0gYSBwcm9wZXJ0eSBhY2Nlc3Mg
d2l0aCBhIGdpdmVuIHN0cmluZywgdHJ5CisvLyBwZXJmb3JtaW5nIHRoZSBwcm9wZXJ0eSBtYXAg
bG9va3VwIHdpdGhvdXQgZm9ybWluZyBhbiBpZGVudGlmaWVyLiBXZSBkZXRlY3QgdGhpcworLy8g
Y2FzZSBieSBjaGVja2luZyB3aGV0aGVyIHRoZSBoYXNoIGhhcyB5ZXQgYmVlbiBzZXQgZm9yIHRo
aXMgc3RyaW5nLgorQUxXQVlTX0lOTElORSBKU1ZhbHVlIEpTQ2VsbDo6ZmFzdEdldE93blByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmICghc3Ry
dWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCkgJiYgIXN0
cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0ID0gbmFtZS5pbXBsKCktPmhhc0hhc2goKQorICAgICAgICAgICAgPyBz
dHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCBuYW1l
KSkKKyAgICAgICAgICAgIDogc3RydWN0dXJlKCktPmdldChleGVjLT5nbG9iYWxEYXRhKCksIG5h
bWUpOworICAgICAgICBpZiAob2Zmc2V0ICE9IGludmFsaWRPZmZzZXQpCisgICAgICAgICAgICBy
ZXR1cm4gYXNPYmplY3QodGhpcyktPmxvY2F0aW9uRm9yT2Zmc2V0KG9mZnNldCktPmdldCgpOwor
ICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZSgpOworfQorCitpbmxpbmUgYm9vbCBKU0NlbGw6OnRv
Qm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpIAor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcqPih0aGlzKS0+dG9Cb29s
ZWFuKCk7CisgICAgcmV0dXJuICFzdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAJKHJl
dmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQubmV0KQpAQCAtNzQsNiArNzQsNyBA
QAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1Njb3BlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGxpbWl0
cy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
SlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNl
ci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMTkxLDExICsxOTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5saW5lV2F0Y2hw
b2ludFNldCBtX2luaGVyaXRvcklEV2F0Y2hwb2ludDsKICAgICB9OwogCi0gICAgaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNGdW5jdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXND
ZWxsKCkgJiYgKGFzQ2VsbCgpLT5pbmhlcml0cygmSlNGdW5jdGlvbjo6c19pbmZvKSB8fCBhc0Nl
bGwoKS0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb246OnNfaW5mbykpOwotICAgIH0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0Z1bmN0aW9uX2gKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiAxMzk0ODkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGFibGVBbGxvY2F0b3Iu
aCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSW50cmluc2ljLmgiCi0jaW5jbHVkZSAi
SklUU3R1YnMuaCIKKyNpbmNsdWRlICJKSVRUaHVua3MuaCIKICNpbmNsdWRlICJKSVRUaHVua3Mu
aCIKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCkBAIC00NSw2ICs0
NSw3IEBACiAjaW5jbHVkZSAiU21hbGxTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU3Ryb25nLmgiCiAj
aW5jbHVkZSAiVGVybWluYXRvci5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2lu
Y2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVHlwZWRBcnJheURlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCkBAIC02Nyw2ICs2OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBDb2RlQ2FjaGU7CiAgICAgY2xh
c3MgQ29tbW9uSWRlbnRpZmllcnM7CisgICAgY2xhc3MgRXhlY1N0YXRlOwogICAgIGNsYXNzIEhh
bmRsZVN0YWNrOwogICAgIGNsYXNzIElkZW50aWZpZXJUYWJsZTsKICAgICBjbGFzcyBJbnRlcnBy
ZXRlcjsKQEAgLTE4OSw3ICsxOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBHbG9i
YWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xpZW50RGF0YSogY2xpZW50RGF0
YTsKLSAgICAgICAgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWU7CisgICAgICAgIEV4ZWNTdGF0ZSog
dG9wQ2FsbEZyYW1lOwogCiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlDb25zdHJ1Y3Rv
clRhYmxlOwogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5UHJvdG90eXBlVGFibGU7CkBA
IC0zMDksNyArMzExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgUmV0dXJuQWRkcmVz
c1B0ciBleGNlcHRpb25Mb2NhdGlvbjsKICAgICAgICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVyblZh
bHVlOwotICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvclRocm93OworICAgICAgICBFeGVj
U3RhdGUqIGNhbGxGcmFtZUZvclRocm93OwogICAgICAgICB2b2lkKiB0YXJnZXRNYWNoaW5lUENG
b3JUaHJvdzsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHRhcmdldEludGVycHJldGVyUENGb3JUaHJv
dzsKICNpZiBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTTmFt
ZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2luY2x1ZGUgIkpTVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxl
ci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAkocmV2aXNp
b24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgiCiAjaW5jbHVkZSAiTm9kZXMu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVk
ZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSw3ICsyNSw3
IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgotCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiAjaWYg
VVNFKFBUSFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAKICNpbmNs
dWRlICJFcnJvci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm90QW5PYmplY3QuaCIKIAorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJMb2NhbC5oIgogI2luY2x1ZGUgIkxvY2FsU2NvcGUuaCIKICNpbmNsdWRlICJMb29rdXAuaCIK
KyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAko
cmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2NCwyNyArMTE2NCw2IEBAIGlubGluZSBKU1ZhbHVl
IEpTT2JqZWN0Ojpwcm90b3R5cGUoKSBjb24KICAgICByZXR1cm4gc3RydWN0dXJlKCktPnN0b3Jl
ZFByb3RvdHlwZSgpOwogfQogCi1pbmxpbmUgY29uc3QgTWV0aG9kVGFibGUqIEpTQ2VsbDo6bWV0
aG9kVGFibGUoKSBjb25zdAotewotICAgIHJldHVybiAmY2xhc3NJbmZvKCktPm1ldGhvZFRhYmxl
OwotfQotCi1pbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKGNvbnN0IENsYXNzSW5mbyogaW5m
bykgY29uc3QKLXsKLSAgICByZXR1cm4gY2xhc3NJbmZvKCktPmlzU3ViQ2xhc3NPZihpbmZvKTsK
LX0KLQotLy8gdGhpcyBtZXRob2QgaXMgaGVyZSB0byBiZSBhZnRlciB0aGUgaW5saW5lIGRlY2xh
cmF0aW9uIG9mIEpTQ2VsbDo6aW5oZXJpdHMKLWlubGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRz
KGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKSBjb25zdAotewotICAgIHJldHVybiBpc0NlbGwo
KSAmJiBhc0NlbGwoKS0+aW5oZXJpdHMoY2xhc3NJbmZvKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0
KiBKU1ZhbHVlOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIHJl
dHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3QoYXND
ZWxsKCksIGV4ZWMpIDogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoZXhlYyk7Ci19Ci0KIEFMV0FZU19J
TkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZSgpLT5nZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBwcm9wZXJ0eU5hbWUpOwpAQCAtMTIwOCwyOSArMTE4Nyw2IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGUKICAgICByZXR1cm4ganNDYXN0PEpTT2JqZWN0
Kj4oY2VsbCktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQotewotICAgIGlmICghc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90KCkpCi0gICAgICAgIHJldHVybiBhc09iamVjdCh0aGlzKS0+aW5s
aW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgcmV0
dXJuIG1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwotfQotCi0vLyBGYXN0IGNhbGwgdG8gZ2V0IGEgcHJvcGVydHkgd2hlcmUg
d2UgbWF5IG5vdCB5ZXQgaGF2ZSBjb252ZXJ0ZWQgdGhlIHN0cmluZyB0byBhbgotLy8gaWRlbnRp
Zmllci4gVGhlIGZpcnN0IHRpbWUgd2UgcGVyZm9ybSBhIHByb3BlcnR5IGFjY2VzcyB3aXRoIGEg
Z2l2ZW4gc3RyaW5nLCB0cnkKLS8vIHBlcmZvcm1pbmcgdGhlIHByb3BlcnR5IG1hcCBsb29rdXAg
d2l0aG91dCBmb3JtaW5nIGFuIGlkZW50aWZpZXIuIFdlIGRldGVjdCB0aGlzCi0vLyBjYXNlIGJ5
IGNoZWNraW5nIHdoZXRoZXIgdGhlIGhhc2ggaGFzIHlldCBiZWVuIHNldCBmb3IgdGhpcyBzdHJp
bmcuCi1BTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHkoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKCFzdHJ1Y3R1cmUo
KS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSAmJiAhc3RydWN0dXJl
KCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKSkgewotICAgICAgICBQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQgPSBuYW1lLmltcGwoKS0+aGFzSGFzaCgpCi0gICAgICAgICAgICA/IHN0cnVjdHVy
ZSgpLT5nZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKQotICAg
ICAgICAgICAgOiBzdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7Ci0g
ICAgICAgIGlmIChvZmZzZXQgIT0gaW52YWxpZE9mZnNldCkKLSAgICAgICAgICAgIHJldHVybiBh
c09iamVjdCh0aGlzKS0+bG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0KS0+Z2V0KCk7Ci0gICAgfQot
ICAgIHJldHVybiBKU1ZhbHVlKCk7Ci19Ci0KIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGlu
ZSBhIGZ1bmN0aW9uIHRoaXMgbGFyZ2UgYnV0IGl0IG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UKIC8v
IHNpbmNlIHRoaXMgaXMgZnVuY3Rpb24gdmVyeSBob3QgaW4gdmFyaWFibGUgbG9va3VwCiBBTFdB
WVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTE0NTYs
NzQgKzE0MTIsNiBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6dG9QcmltaXRpdmUoRXhlCiAg
ICAgcmV0dXJuIG1ldGhvZFRhYmxlKCktPmRlZmF1bHRWYWx1ZSh0aGlzLCBleGVjLCBwcmVmZXJy
ZWRUeXBlKTsKIH0KIAotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29uc3QKLXsKLSAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChhc1ZhbHVlKCkpOwotICAgIHJldHVybiBnZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKLX0KLQotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KSBjb25zdAotewotICAg
IGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUg
PSBzeW50aGVzaXplUHJvdG90eXBlKGV4ZWMpOwotICAgICAgICBpZiAoIXByb3RvdHlwZS0+Z2V0
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJv
cGVydHlOYW1lKTsKLSAgICB9Ci0gICAgSlNDZWxsKiBjZWxsID0gYXNDZWxsKCk7Ci0gICAgd2hp
bGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNlbGwtPmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVl
KGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmpl
Y3QoY2VsbCktPnByb3RvdHlwZSgpOwotICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgp
KQotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIGNlbGwgPSBhc09i
amVjdChwcm90b3R5cGUpOwotICAgIH0KLX0KLQotaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdAotewotICAgIFBy
b3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGdldChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwotfQotCi1pbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXQoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QK
LXsKLSAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAgICBKU09iamVjdCogcHJv
dG90eXBlID0gc3ludGhlc2l6ZVByb3RvdHlwZShleGVjKTsKLSAgICAgICAgaWYgKCFwcm90b3R5
cGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4
ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgfQotICAgIEpTQ2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8
SlNDZWxsKj4oYXNDZWxsKCkpOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChjZWxs
LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KGNlbGwsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVj
LCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IGFzT2JqZWN0KGNl
bGwpLT5wcm90b3R5cGUoKTsKLSAgICAgICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKLSAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBjZWxsID0gcHJvdG90eXBl
LmFzQ2VsbCgpOwotICAgIH0KLX0KLQotaW5saW5lIHZvaWQgSlNWYWx1ZTo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQotewotICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0gICAg
ICAgIHB1dFRvUHJpbWl0aXZlKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIGFzQ2VsbCgpLT5tZXRob2RUYWJsZSgpLT5wdXQoYXND
ZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCi1pbmxpbmUgdm9p
ZCBKU1ZhbHVlOjpwdXRCeUluZGV4KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQotewotICAgIGlmIChVTkxJS0VM
WSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIHB1dFRvUHJpbWl0aXZlQnlJbmRleChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXNDZWxsKCksIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKLX0KLQogQUxXQVlTX0lOTElORSBKU09i
amVjdCogUmVnaXN0ZXI6OmZ1bmN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIWpzVmFsdWUoKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuY3BwCShyZXZpc2lv
biAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTUHJveHkuaCIKIAog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUg
IkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJp
YWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogaW50IEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3Q6OmZpbmRSZWdpc3RlckluZGV4KHZvaWQqIHJlZ2lzdGVyQWRkcmVzcykKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkocmV2aXNpb24gMTM5NDg5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtNDkxLDEzICs0OTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBib29sIGlz
SlNTdHJpbmcoSlNWYWx1ZSB2KSB7IHJldHVybiB2LmlzQ2VsbCgpICYmIHYuYXNDZWxsKCktPmNs
YXNzSW5mbygpID09ICZKU1N0cmluZzo6c19pbmZvOyB9CiAKLSAgICBpbmxpbmUgYm9vbCBKU0Nl
bGw6OnRvQm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAo
aXNTdHJpbmcoKSkgCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJp
bmcqPih0aGlzKS0+dG9Cb29sZWFuKCk7Ci0gICAgICAgIHJldHVybiAhc3RydWN0dXJlKCktPm1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICB9
Ci0KICAgICAvLyAtLS0gSlNWYWx1ZSBpbmxpbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgICAKICAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjp0b0Jvb2xlYW4oRXhlY1N0YXRlKiBl
eGVjKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdK
b2luZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSm9pbmVyLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsy
OSw5IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTU2NvcGUu
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKLQogbmFtZXNwYWNlIEpTQyB7CiAKIC8vIFRo
ZSBkZXN0aW5hdGlvbiBpcyAxNmJpdHMsIGF0IGxlYXN0IG9uZSBzdHJpbmcgaXMgMTYgYml0cy4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9s
VGFibGVPYmplY3QuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkocmV2aXNpb24g
MTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJOdW1iZXJPYmplY3QuaCIKICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGluZXMu
aAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YWx1ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNDcwICsyNiw3NzIgQEAKICNpZm5kZWYg
SlNWYWx1ZUlubGluZXNfaAogI2RlZmluZSBKU1ZhbHVlSW5saW5lc19oCiAKKyNpbmNsdWRlICJJ
bnRlcm5hbEZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgorI2luY2x1ZGUg
IkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci0gICAgQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFsdWU6OnRvSW50MzIoRXhlY1N0YXRlKiBl
eGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzSW50MzIoKSkKLSAgICAgICAgICAgIHJl
dHVybiBhc0ludDMyKCk7Ci0gICAgICAgIHJldHVybiBKU0M6OnRvSW50MzIodG9OdW1iZXIoZXhl
YykpOwotICAgIH0KLQotICAgIGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICAvLyBTZWUgY29tbWVudCBvbiBKU0M6
OnRvVUludDMyLCBhYm92ZS4KLSAgICAgICAgcmV0dXJuIHRvSW50MzIoZXhlYyk7Ci0gICAgfQot
Ci0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkgPj0gMDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgdWludDMyX3QgSlNWYWx1ZTo6YXNVSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzVUludDMyKCkpOworQUxXQVlTX0lOTElORSBpbnQzMl90IEpTVmFsdWU6OnRvSW50MzIo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCiAgICAgICAgIHJl
dHVybiBhc0ludDMyKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc051
bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNOdW1iZXIoKSk7Ci0gICAgICAg
IHJldHVybiBpc0ludDMyKCkgPyBhc0ludDMyKCkgOiBhc0RvdWJsZSgpOwotICAgIH0KLQotICAg
IGlubGluZSBKU1ZhbHVlIGpzTmFOKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlKFFO
YU4pOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNoYXIgaSkKLSAgICB7
Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAg
fQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgY2hhciBpKQotICAgIHsK
LSAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShzaG9ydCBpKQotICAgIHsKLSAgICAgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSh1bnNpZ25lZCBzaG9ydCBpKQotICAgIHsKLSAgICAgICAg
KnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9CisgICAgcmV0
dXJuIEpTQzo6dG9JbnQzMih0b051bWJlcihleGVjKSk7Cit9CiAKLSAgICBpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZSh1bnNpZ25lZCBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGkpIDwgMCkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVuY29kZUFzRG91
YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOwot
ICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxvbmcgaSkKLSAgICB7Ci0gICAg
ICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhp
cyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0
aWNfY2FzdDxpbnQzMl90PihpKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUodW5zaWduZWQgbG9uZyBpKQotICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQz
Ml90PihpKSAhPSBpKSB7Ci0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3Vi
bGUsIHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOwot
ICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGxvbmcgbG9uZyBpKQotICAgIHsK
LSAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpICE9IGkpIHsKLSAgICAgICAgICAg
ICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgKnRoaXMgPSBKU1ZhbHVl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZSh1bnNpZ25lZCBsb25nIGxvbmcgaSkKLSAgICB7Ci0gICAgICAgIGlmIChzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oaSkgIT0gaSkgewotICAgICAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKEVu
Y29kZUFzRG91YmxlLCBzdGF0aWNfY2FzdDxkb3VibGU+KGkpKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICAqdGhpcyA9IEpTVmFsdWUoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGkpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkK
LSAgICB7Ci0gICAgICAgIGNvbnN0IGludDMyX3QgYXNJbnQzMiA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KGQpOwotICAgICAgICBpZiAoYXNJbnQzMiAhPSBkIHx8ICghYXNJbnQzMiAmJiBzaWduYml0
KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCi0gICAgICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5j
b2RlQXNEb3VibGUsIGQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
ICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihkKSk7Ci0gICAgfQotCi0gICAg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlIHZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLnUuYXNJbnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
SlNWYWx1ZSBKU1ZhbHVlOjpkZWNvZGUoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEpTVmFsdWUpCi0g
ICAgewotICAgICAgICBKU1ZhbHVlIHY7Ci0gICAgICAgIHYudS5hc0ludDY0ID0gZW5jb2RlZEpT
VmFsdWU7Ci0gICAgICAgIHJldHVybiB2OwotICAgIH0KK2lubGluZSB1aW50MzJfdCBKU1ZhbHVl
Ojp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgLy8gU2VlIGNvbW1lbnQg
b24gSlNDOjp0b1VJbnQzMiwgYWJvdmUuCisgICAgcmV0dXJuIHRvSW50MzIoZXhlYyk7Cit9CisK
K2lubGluZSBib29sIEpTVmFsdWU6OmlzVUludDMyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNJ
bnQzMigpICYmIGFzSW50MzIoKSA+PSAwOworfQorCitpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6
YXNVSW50MzIoKSBjb25zdAoreworICAgIEFTU0VSVChpc1VJbnQzMigpKTsKKyAgICByZXR1cm4g
YXNJbnQzMigpOworfQorCitpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzTnVtYmVyKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoaXNOdW1iZXIoKSk7CisgICAgcmV0dXJuIGlzSW50MzIoKSA/IGFzSW50
MzIoKSA6IGFzRG91YmxlKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlIGpzTmFOKCkKK3sKKyAgICBy
ZXR1cm4gSlNWYWx1ZShRTmFOKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoY2hhciBp
KQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIGNoYXIgaSkKK3sKKyAgICAqdGhpcyA9
IEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShzaG9ydCBpKQoreworICAgICp0aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQz
Ml90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKHVuc2lnbmVkIHNob3J0IGkp
Cit7CisgICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKwor
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUodW5zaWduZWQgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaSkgPCAwKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgKnRoaXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5l
IEpTVmFsdWU6OkpTVmFsdWUobG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90
PihpKSAhPSBpKSB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShFbmNvZGVBc0RvdWJsZSwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPihpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRoaXMg
PSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGkpKTsKK30KKworaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUodW5zaWduZWQgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJf
dD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0
YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlz
ID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNWYWx1
ZTo6SlNWYWx1ZShsb25nIGxvbmcgaSkKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
aSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUsIHN0YXRp
Y19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0aGlzID0g
SlNWYWx1ZShzdGF0aWNfY2FzdDxpbnQzMl90PihpKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKHVuc2lnbmVkIGxvbmcgbG9uZyBpKQoreworICAgIGlmIChzdGF0aWNfY2FzdDx1aW50
MzJfdD4oaSkgIT0gaSkgeworICAgICAgICAqdGhpcyA9IEpTVmFsdWUoRW5jb2RlQXNEb3VibGUs
IHN0YXRpY19jYXN0PGRvdWJsZT4oaSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICp0
aGlzID0gSlNWYWx1ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSkpOworfQorCitpbmxpbmUgSlNW
YWx1ZTo6SlNWYWx1ZShkb3VibGUgZCkKK3sKKyAgICBjb25zdCBpbnQzMl90IGFzSW50MzIgPSBz
dGF0aWNfY2FzdDxpbnQzMl90PihkKTsKKyAgICBpZiAoYXNJbnQzMiAhPSBkIHx8ICghYXNJbnQz
MiAmJiBzaWduYml0KGQpKSkgeyAvLyB0cnVlIGZvciAtMC4wCisgICAgICAgICp0aGlzID0gSlNW
YWx1ZShFbmNvZGVBc0RvdWJsZSwgZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnRo
aXMgPSBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDMyX3Q+KGQpKTsKK30KKworaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlIHZhbHVlKQoreworICAgIHJldHVybiB2
YWx1ZS51LmFzSW50NjQ7Cit9CisKK2lubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmRlY29kZShFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkSlNWYWx1ZSkKK3sKKyAgICBKU1ZhbHVlIHY7CisgICAgdi51LmFz
SW50NjQgPSBlbmNvZGVkSlNWYWx1ZTsKKyAgICByZXR1cm4gdjsKK30KIAogI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQotICAgIHsKLSAgICAgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9
IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNOdWxsVGFnKQotICAg
IHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gTnVsbFRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5
bG9hZCA9IDA7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoKQoreworICAgIHUuYXNC
aXRzLnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CisK
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTTnVsbFRhZykKK3sKKyAgICB1LmFzQml0cy50YWcg
PSBOdWxsVGFnOworICAgIHUuYXNCaXRzLnBheWxvYWQgPSAwOworfQogICAgIAotICAgIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0Jp
dHMudGFnID0gVW5kZWZpbmVkVGFnOwotICAgICAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKLSAg
ICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1VuZGVmaW5lZFRhZykKK3sKKyAgICB1LmFz
Qml0cy50YWcgPSBVbmRlZmluZWRUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Cit9CiAg
ICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFnKQotICAgIHsKLSAgICAg
ICAgdS5hc0JpdHMudGFnID0gQm9vbGVhblRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9
IDE7Ci0gICAgfQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFnKQoreworICAgIHUu
YXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IDE7Cit9CiAg
ICAgCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNGYWxzZVRhZykKLSAgICB7Ci0gICAg
ICAgIHUuYXNCaXRzLnRhZyA9IEJvb2xlYW5UYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQg
PSAwOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhhc2hUYWJsZURlbGV0
ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNCaXRzLnRhZyA9IERlbGV0ZWRWYWx1ZVRh
ZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCi0gICAgewotICAgICAgICBpZiAocHRyKQotICAg
ICAgICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKLSAgICAgICAgdS5hc0JpdHMucGF5bG9h
ZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChw
dHIpCi0gICAgICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB1LmFzQml0cy50YWcgPSBFbXB0eVZhbHVlVGFnOwotICAgICAgICB1LmFzQml0
cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Pihjb25zdF9jYXN0PEpTQ2VsbCo+
KHB0cikpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0YWcoKSAhPSBEZWxldGVkVmFsdWVUYWcpOwotICAg
ICAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9PSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQot
Ci0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhl
cikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0lu
dDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEVtcHR5VmFsdWVUYWc7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRhZygpID09IFVuZGVmaW5lZFRhZzsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09
IE51bGxUYWc7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWRP
ck51bGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNO
dWxsKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA9PSBDZWxsVGFnOwotICAgIH0KLQotICAgIGlu
bGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRhZygpID09IEludDMyVGFnOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6Omlz
RG91YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB0YWcoKSA8IExvd2VzdFRhZzsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1RydWUoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYgcGF5bG9hZCgpOwotICAgIH0K
K2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCit7CisgICAgdS5hc0JpdHMudGFn
ID0gQm9vbGVhblRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKK30KKworaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKQoreworICAgIHUuYXNCaXRz
LnRhZyA9IERlbGV0ZWRWYWx1ZVRhZzsKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gMDsKK30KKwor
aW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNDZWxsKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAg
ICAgICAgdS5hc0JpdHMudGFnID0gQ2VsbFRhZzsKKyAgICBlbHNlCisgICAgICAgIHUuYXNCaXRz
LnRhZyA9IEVtcHR5VmFsdWVUYWc7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8aW50MzJfdD4ocHRyKTsKK30KIAotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRmFs
c2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZygpID09IEJvb2xlYW5UYWcgJiYg
IXBheWxvYWQoKTsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwq
IHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICB1LmFzQml0cy50YWcgPSBDZWxsVGFnOwor
ICAgIGVsc2UKKyAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Pihjb25zdF9jYXN0PEpTQ2Vs
bCo+KHB0cikpOworfQogCi0gICAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRhZygpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMudGFnOwotICAgIH0KK2lubGluZSBKU1Zh
bHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGFnKCkgIT0gRGVsZXRl
ZFZhbHVlVGFnKTsKKyAgICByZXR1cm4gdGFnKCkgIT0gRW1wdHlWYWx1ZVRhZzsKK30KKworaW5s
aW5lIGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QK
K3sKKyAgICByZXR1cm4gdS5hc0ludDY0ID09IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKK3sK
KyAgICByZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUuYXNJbnQ2NDsKK30KKworaW5saW5lIGJv
b2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IEVtcHR5
VmFsdWVUYWc7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOworfQorCitpbmxpbmUgYm9vbCBK
U1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVybiB0YWcoKSA9PSBOdWxsVGFnOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGlzVW5kZWZpbmVkKCkgfHwgaXNOdWxsKCk7Cit9CisKK2lubGluZSBib29sIEpT
VmFsdWU6OmlzQ2VsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRhZygpID09IENlbGxUYWc7Cit9
CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAoreworICAgIHJldHVybiB0
YWcoKSA9PSBJbnQzMlRhZzsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNEb3VibGUoKSBj
b25zdAoreworICAgIHJldHVybiB0YWcoKSA8IExvd2VzdFRhZzsKK30KKworaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNUcnVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdGFnKCkgPT0gQm9vbGVhblRh
ZyAmJiBwYXlsb2FkKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzRmFsc2UoKSBjb25z
dAoreworICAgIHJldHVybiB0YWcoKSA9PSBCb29sZWFuVGFnICYmICFwYXlsb2FkKCk7Cit9CisK
K2lubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0YWcoKSBjb25zdAoreworICAgIHJldHVybiB1LmFz
Qml0cy50YWc7Cit9CiAgICAgCi0gICAgaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6cGF5bG9hZCgp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9Citp
bmxpbmUgaW50MzJfdCBKU1ZhbHVlOjpwYXlsb2FkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5h
c0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjphc0lu
dDMyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDMyKCkpOwotICAgICAgICBy
ZXR1cm4gdS5hc0JpdHMucGF5bG9hZDsKLSAgICB9CitpbmxpbmUgaW50MzJfdCBKU1ZhbHVlOjph
c0ludDMyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNJbnQzMigpKTsKKyAgICByZXR1cm4gdS5h
c0JpdHMucGF5bG9hZDsKK30KICAgICAKLSAgICBpbmxpbmUgZG91YmxlIEpTVmFsdWU6OmFzRG91
YmxlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc0RvdWJsZSgpKTsKLSAgICAgICAg
cmV0dXJuIHUuYXNEb3VibGU7Ci0gICAgfQoraW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJs
ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzRG91YmxlKCkpOworICAgIHJldHVybiB1LmFzRG91
YmxlOworfQogICAgIAotICAgIEFMV0FZU19JTkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKLSAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0JpdHMucGF5bG9hZCk7Ci0gICAgfQotCi0g
ICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3Vi
bGUgZCkKLSAgICB7Ci0gICAgICAgIHUuYXNEb3VibGUgPSBkOwotICAgIH0KLQotICAgIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKGludCBpKQotICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0g
SW50MzJUYWc7Ci0gICAgICAgIHUuYXNCaXRzLnBheWxvYWQgPSBpOwotICAgIH0KK0FMV0FZU19J
TkxJTkUgSlNDZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAoreworICAgIEFTU0VSVChpc0Nl
bGwoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odS5hc0JpdHMucGF5
bG9hZCk7Cit9CisKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0RvdWJs
ZVRhZywgZG91YmxlIGQpCit7CisgICAgdS5hc0RvdWJsZSA9IGQ7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKGludCBpKQoreworICAgIHUuYXNCaXRzLnRhZyA9IEludDMyVGFnOworICAg
IHUuYXNCaXRzLnBheWxvYWQgPSBpOworfQogCiAjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKLSAg
ICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90IHRhZywgaW50MzJfdCBwYXlsb2FkKQot
ICAgIHsKLSAgICAgICAgdS5hc0JpdHMudGFnID0gdGFnOwotICAgICAgICB1LmFzQml0cy5wYXls
b2FkID0gcGF5bG9hZDsKLSAgICB9CitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShpbnQzMl90IHRh
ZywgaW50MzJfdCBwYXlsb2FkKQoreworICAgIHUuYXNCaXRzLnRhZyA9IHRhZzsKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gcGF5bG9hZDsKK30KICNlbmRpZgogCi0gICAgaW5saW5lIGJvb2wgSlNW
YWx1ZTo6aXNOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW50MzIoKSB8
fCBpc0RvdWJsZSgpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVh
bigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNUcnVlKCkgfHwgaXNGYWxzZSgpOwot
ICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmFzQm9vbGVhbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQoaXNCb29sZWFuKCkpOwotICAgICAgICByZXR1cm4gcGF5bG9hZCgp
OwotICAgIH0KK2lubGluZSBib29sIEpTVmFsdWU6OmlzTnVtYmVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaXNJbnQzMigpIHx8IGlzRG91YmxlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6
OmlzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVHJ1ZSgpIHx8IGlzRmFsc2UoKTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6YXNCb29sZWFuKCkgY29uc3QKK3sKKyAgICBBU1NF
UlQoaXNCb29sZWFuKCkpOworICAgIHJldHVybiBwYXlsb2FkKCk7Cit9CiAKICNlbHNlIC8vICFV
U0UoSlNWQUxVRTMyXzY0KSBpLmUuIFVTRShKU1ZBTFVFNjQpCiAKLSAgICAvLyAweDAgY2FuIG5l
dmVyIG9jY3VyIG5hdHVyYWxseSBiZWNhdXNlIGl0IGhhcyBhIHRhZyBvZiAwMCwgaW5kaWNhdGlu
ZyBhIHBvaW50ZXIgdmFsdWUsIGJ1dCBhIHBheWxvYWQgb2YgMHgwLCB3aGljaCBpcyBpbiB0aGUg
KGludmFsaWQpIHplcm8gcGFnZS4KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCi0gICAg
ewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIC8vIDB4NCBj
YW4gbmV2ZXIgb2NjdXIgbmF0dXJhbGx5IGJlY2F1c2UgaXQgaGFzIGEgdGFnIG9mIDAwLCBpbmRp
Y2F0aW5nIGEgcG9pbnRlciB2YWx1ZSwgYnV0IGEgcGF5bG9hZCBvZiAweDQsIHdoaWNoIGlzIGlu
IHRoZSAoaW52YWxpZCkgemVybyBwYWdlLgotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEhh
c2hUYWJsZURlbGV0ZWRWYWx1ZVRhZykKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IFZhbHVl
RGVsZXRlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0
cikKLSAgICB7Ci0gICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihwdHIpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2Vs
bCogcHRyKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpT
VmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJ
bnQ2NDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0
IEpTVmFsdWUmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCA9
PSBvdGhlci51LmFzSW50NjQ7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6b3Bl
cmF0b3IhPShjb25zdCBKU1ZhbHVlJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OwotICAgIH0KLQotICAgIGlubGluZSBib29s
IEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYXNJbnQ2
NCA9PSBWYWx1ZUVtcHR5OwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVW5k
ZWZpbmVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1
ZShKU1VuZGVmaW5lZCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNOdWxs
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051
bGwpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVHJ1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU0ZhbHNlKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjphc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGlzQm9vbGVhbigpKTsKLSAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpT
VHJ1ZSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDMyX3QgSlNWYWx1ZTo6YXNJbnQzMigpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXNJbnQzMigpKTsKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
SlNWYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzTnVtYmVy
KCkgJiYgIWlzSW50MzIoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U051bGxUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQgPSBWYWx1ZU51bGw7Ci0gICAgfQor
Ly8gMHgwIGNhbiBuZXZlciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2Yg
MDAsIGluZGljYXRpbmcgYSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4MCwgd2hp
Y2ggaXMgaW4gdGhlIChpbnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1
ZSgpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVFbXB0eTsKK30KKworLy8gMHg0IGNhbiBuZXZl
ciBvY2N1ciBuYXR1cmFsbHkgYmVjYXVzZSBpdCBoYXMgYSB0YWcgb2YgMDAsIGluZGljYXRpbmcg
YSBwb2ludGVyIHZhbHVlLCBidXQgYSBwYXlsb2FkIG9mIDB4NCwgd2hpY2ggaXMgaW4gdGhlIChp
bnZhbGlkKSB6ZXJvIHBhZ2UuCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShIYXNoVGFibGVEZWxl
dGVkVmFsdWVUYWcpCit7CisgICAgdS5hc0ludDY0ID0gVmFsdWVEZWxldGVkOworfQorCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShKU0NlbGwqIHB0cikKK3sKKyAgICB1LmFzSW50NjQgPSByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFs
dWUoY29uc3QgSlNDZWxsKiBwdHIpCit7CisgICAgdS5hc0ludDY0ID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSk7Cit9CisKK2lubGluZSBKU1Zh
bHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0OworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgPT0gb3RoZXIudS5hc0ludDY0OworfQorCitp
bmxpbmUgYm9vbCBKU1ZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IEpTVmFsdWUmIG90aGVyKSBjb25z
dAoreworICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIudS5hc0ludDY0OworfQorCitpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdS5hc0ludDY0
ID09IFZhbHVlRW1wdHk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNVbmRlZmluZWQpOwor
fQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVybiBh
c1ZhbHVlKCkgPT0gSlNWYWx1ZShKU051bGwpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c1RydWUoKSBjb25zdAoreworICAgIHJldHVybiBhc1ZhbHVlKCkgPT0gSlNWYWx1ZShKU1RydWUp
OworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0ZhbHNlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNGYWxzZSk7Cit9CisKK2lubGluZSBib29sIEpTVmFs
dWU6OmFzQm9vbGVhbigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQm9vbGVhbigpKTsKKyAgICBy
ZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNUcnVlKTsKK30KKworaW5saW5lIGludDMyX3Qg
SlNWYWx1ZTo6YXNJbnQzMigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzSW50MzIoKSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHUuYXNJbnQ2NCk7Cit9CisKK2lubGluZSBib29s
IEpTVmFsdWU6OmlzRG91YmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNOdW1iZXIoKSAmJiAh
aXNJbnQzMigpOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU051bGxUYWcpCit7Cisg
ICAgdS5hc0ludDY0ID0gVmFsdWVOdWxsOworfQogICAgIAotICAgIGlubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFsdWVV
bmRlZmluZWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoSlNUcnVlVGFn
KQotICAgIHsKLSAgICAgICAgdS5hc0ludDY0ID0gVmFsdWVUcnVlOwotICAgIH0KK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKEpTVW5kZWZpbmVkVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVl
VW5kZWZpbmVkOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShKU1RydWVUYWcpCit7Cisg
ICAgdS5hc0ludDY0ID0gVmFsdWVUcnVlOworfQorCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShK
U0ZhbHNlVGFnKQoreworICAgIHUuYXNJbnQ2NCA9IFZhbHVlRmFsc2U7Cit9CisKK2lubGluZSBi
b29sIEpTVmFsdWU6OmlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QKK3sKKyAgICAvLyBVbmRlZmlu
ZWQgYW5kIG51bGwgc2hhcmUgdGhlIHNhbWUgdmFsdWUsIGJhciB0aGUgJ3VuZGVmaW5lZCcgYml0
IGluIHRoZSBleHRlbmRlZCB0YWcuCisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5k
ZWZpbmVkKSA9PSBWYWx1ZU51bGw7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmlzQm9vbGVh
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsK
K30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDZWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ISh1LmFzSW50NjQgJiBUYWdNYXNrKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNJbnQz
MigpIGNvbnN0Cit7CisgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBU
YWdUeXBlTnVtYmVyOworfQorCitpbmxpbmUgaW50NjRfdCByZWludGVycHJldERvdWJsZVRvSW50
NjQoZG91YmxlIHZhbHVlKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFs
dWUpOworfQoraW5saW5lIGRvdWJsZSByZWludGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpOworfQorCitB
TFdBWVNfSU5MSU5FIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSBk
KQoreworICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJs
ZUVuY29kZU9mZnNldDsKK30KKworaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCit7Cisg
ICAgdS5hc0ludDY0ID0gVGFnVHlwZU51bWJlciB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpKTsK
K30KKworaW5saW5lIGRvdWJsZSBKU1ZhbHVlOjphc0RvdWJsZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKGlzRG91YmxlKCkpOworICAgIHJldHVybiByZWludGVycHJldEludDY0VG9Eb3VibGUodS5h
c0ludDY0IC0gRG91YmxlRW5jb2RlT2Zmc2V0KTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6
aXNOdW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiB1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVy
OworfQorCitBTFdBWVNfSU5MSU5FIEpTQ2VsbCogSlNWYWx1ZTo6YXNDZWxsKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaXNDZWxsKCkpOworICAgIHJldHVybiB1LnB0cjsKK30KIAotICAgIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKEpTRmFsc2VUYWcpCi0gICAgewotICAgICAgICB1LmFzSW50NjQg
PSBWYWx1ZUZhbHNlOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzVW5kZWZp
bmVkT3JOdWxsKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFVuZGVmaW5lZCBhbmQgbnVsbCBz
aGFyZSB0aGUgc2FtZSB2YWx1ZSwgYmFyIHRoZSAndW5kZWZpbmVkJyBiaXQgaW4gdGhlIGV4dGVu
ZGVkIHRhZy4KLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiB+VGFnQml0VW5kZWZpbmVkKSA9
PSBWYWx1ZU51bGw7Ci0gICAgfQorI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKLSAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0Jvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
ICh1LmFzSW50NjQgJiB+MSkgPT0gVmFsdWVGYWxzZTsKLSAgICB9CitpbmxpbmUgYm9vbCBKU1Zh
bHVlOjppc1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgp
LT5pc1N0cmluZygpOworfQorCitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1ByaW1pdGl2ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICFpc0NlbGwoKSB8fCBhc0NlbGwoKS0+aXNTdHJpbmcoKTsKK30K
KworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aXNHZXR0ZXJTZXR0ZXIoKTsKK30KKworaW5saW5l
IGJvb2wgSlNWYWx1ZTo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAm
JiBhc0NlbGwoKS0+aXNPYmplY3QoKTsKK30KKworaW5saW5lIGJvb2wgSlNWYWx1ZTo6Z2V0U3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nJiBzKSBjb25zdAoreworICAgIHJldHVybiBpc0Nl
bGwoKSAmJiBhc0NlbGwoKS0+Z2V0U3RyaW5nKGV4ZWMsIHMpOworfQorCitpbmxpbmUgU3RyaW5n
IEpTVmFsdWU6OmdldFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldFN0cmluZyhleGVjKSA6IFN0cmluZygpOworfQorCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgQmFzZT4gU3RyaW5nIEhhbmRsZUNvbnZlcnRlcjxCYXNlLCBVbmtu
b3duPjo6Z2V0U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4ganNW
YWx1ZSgpLmdldFN0cmluZyhleGVjKTsKK30KKworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjpn
ZXRPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT5nZXRP
YmplY3QoKSA6IDA7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpnZXRVSW50MzIo
dWludDMyX3QmIHYpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkgeworICAgICAgICBpbnQz
Ml90IGkgPSBhc0ludDMyKCk7CisgICAgICAgIHYgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaSk7
CisgICAgICAgIHJldHVybiBpID49IDA7CisgICAgfQorICAgIGlmIChpc0RvdWJsZSgpKSB7Cisg
ICAgICAgIGRvdWJsZSBkID0gYXNEb3VibGUoKTsKKyAgICAgICAgdiA9IHN0YXRpY19jYXN0PHVp
bnQzMl90PihkKTsKKyAgICAgICAgcmV0dXJuIHYgPT0gZDsKKyAgICB9CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitpbmxpbmUgSlNWYWx1ZSBKU1ZhbHVlOjp0b1ByaW1pdGl2ZShFeGVjU3RhdGUq
IGV4ZWMsIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9QcmltaXRpdmUoZXhlYywgcHJlZmVycmVk
VHlwZSkgOiBhc1ZhbHVlKCk7Cit9CisKK2lubGluZSBib29sIEpTVmFsdWU6OmdldFByaW1pdGl2
ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1ZSkK
K3sKKyAgICBpZiAoaXNJbnQzMigpKSB7CisgICAgICAgIG51bWJlciA9IGFzSW50MzIoKTsKKyAg
ICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlm
IChpc0RvdWJsZSgpKSB7CisgICAgICAgIG51bWJlciA9IGFzRG91YmxlKCk7CisgICAgICAgIHZh
bHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaXNDZWxs
KCkpCisgICAgICAgIHJldHVybiBhc0NlbGwoKS0+Z2V0UHJpbWl0aXZlTnVtYmVyKGV4ZWMsIG51
bWJlciwgdmFsdWUpOworICAgIGlmIChpc1RydWUoKSkgeworICAgICAgICBudW1iZXIgPSAxLjA7
CisgICAgICAgIHZhbHVlID0gKnRoaXM7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBpZiAoaXNGYWxzZSgpIHx8IGlzTnVsbCgpKSB7CisgICAgICAgIG51bWJlciA9IDAuMDsKKyAg
ICAgICAgdmFsdWUgPSAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFT
U0VSVChpc1VuZGVmaW5lZCgpKTsKKyAgICBudW1iZXIgPSBRTmFOOworICAgIHZhbHVlID0gKnRo
aXM7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0FMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6
OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQor
ICAgICAgICByZXR1cm4gYXNJbnQzMigpOworICAgIGlmIChpc0RvdWJsZSgpKQorICAgICAgICBy
ZXR1cm4gYXNEb3VibGUoKTsKKyAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKK30K
KworaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU09iamVjdCogSlNWYWx1ZTo6
dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBn
bG9iYWxPYmplY3QpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBnbG9iYWxPYmplY3QpOworfQor
CitpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0Z1bmN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNDZWxsKCkgJiYgKGFzQ2VsbCgpLT5pbmhlcml0cygmSlNGdW5jdGlvbjo6c19pbmZvKSB8fCBh
c0NlbGwoKS0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb246OnNfaW5mbykpOworfQorCisvLyB0
aGlzIG1ldGhvZCBpcyBoZXJlIHRvIGJlIGFmdGVyIHRoZSBpbmxpbmUgZGVjbGFyYXRpb24gb2Yg
SlNDZWxsOjppbmhlcml0cworaW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8pIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2Vs
bCgpLT5pbmhlcml0cyhjbGFzc0luZm8pOworfQorCitpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6
OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChhc0NlbGwoKSwgZXhl
YykgOiB0b1RoaXNPYmplY3RTbG93Q2FzZShleGVjKTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNW
YWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgY29u
c3QKK3sKKyAgICBQcm9wZXJ0eVNsb3Qgc2xvdChhc1ZhbHVlKCkpOworICAgIHJldHVybiBnZXQo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6
Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KSBjb25zdAoreworICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7CisgICAg
ICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBzeW50aGVzaXplUHJvdG90eXBlKGV4ZWMpOworICAg
ICAgICBpZiAoIXByb3RvdHlwZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0dXJu
IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICB9CisgICAgSlNDZWxsKiBj
ZWxsID0gYXNDZWxsKCk7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKGNlbGwtPmZh
c3RHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAg
ICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIEpT
VmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3QoY2VsbCktPnByb3RvdHlwZSgpOworICAgICAgICBp
ZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgICAgIGNlbGwgPSBhc09iamVjdChwcm90b3R5cGUpOworICAgIH0KK30KKworaW5s
aW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVy
dHlOYW1lKSBjb25zdAoreworICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSk7CisgICAg
cmV0dXJuIGdldChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitpbmxpbmUgSlNWYWx1
ZSBKU1ZhbHVlOjpnZXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkgY29uc3QKK3sKKyAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkg
eworICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gc3ludGhlc2l6ZVByb3RvdHlwZShleGVj
KTsKKyAgICAgICAgaWYgKCFwcm90b3R5cGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAg
IHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgfQorICAgIEpT
Q2VsbCogY2VsbCA9IGNvbnN0X2Nhc3Q8SlNDZWxsKj4oYXNDZWxsKCkpOworICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgIGlmIChjZWxsLT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgICAgICBy
ZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IGFzT2JqZWN0KGNlbGwpLT5wcm90b3R5cGUoKTsKKyAgICAgICAgaWYgKCFw
cm90b3R5cGUuaXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgICAgICBjZWxsID0gcHJvdG90eXBlLmFzQ2VsbCgpOworICAgIH0KK30KKworaW5saW5lIHZv
aWQgSlNWYWx1ZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIGlmIChVTkxJ
S0VMWSghaXNDZWxsKCkpKSB7CisgICAgICAgIHB1dFRvUHJpbWl0aXZlKGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGFzQ2VsbCgp
LT5tZXRob2RUYWJsZSgpLT5wdXQoYXNDZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworfQorCitpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRCeUluZGV4KEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRo
cm93KQoreworICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKSB7CisgICAgICAgIHB1dFRvUHJp
bWl0aXZlQnlJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXNDZWxsKCktPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgoYXNDZWxsKCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsK
K30KKworaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25z
dAoreworICAgIGlmIChpc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxsKCkt
PnN0cnVjdHVyZSgpKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworLy8gRUNNQSAx
MS45LjMKK2lubGluZSBib29sIEpTVmFsdWU6OmVxdWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBpZiAodjEuaXNJbnQzMigpICYmIHYyLmlzSW50MzIo
KSkKKyAgICAgICAgcmV0dXJuIHYxID09IHYyOworCisgICAgcmV0dXJuIGVxdWFsU2xvd0Nhc2Uo
ZXhlYywgdjEsIHYyKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmVxdWFsU2xv
d0Nhc2VJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQorewor
ICAgIGRvIHsKKyAgICAgICAgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkKKyAg
ICAgICAgICAgIHJldHVybiB2MS5hc051bWJlcigpID09IHYyLmFzTnVtYmVyKCk7CisKKyAgICAg
ICAgYm9vbCBzMSA9IHYxLmlzU3RyaW5nKCk7CisgICAgICAgIGJvb2wgczIgPSB2Mi5pc1N0cmlu
ZygpOworICAgICAgICBpZiAoczEgJiYgczIpCisgICAgICAgICAgICByZXR1cm4gYXNTdHJpbmco
djEpLT52YWx1ZShleGVjKSA9PSBhc1N0cmluZyh2MiktPnZhbHVlKGV4ZWMpOworCisgICAgICAg
IGlmICh2MS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAodjIuaXNVbmRl
ZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IGlmICghdjIuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgcmV0dXJuIHYyLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVm
aW5lZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworICAgICAgICB9CiAKLSAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEo
dS5hc0ludDY0ICYgVGFnTWFzayk7Ci0gICAgfQorICAgICAgICBpZiAodjIuaXNVbmRlZmluZWRP
ck51bGwoKSkgeworICAgICAgICAgICAgaWYgKCF2MS5pc0NlbGwoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdjEuYXNDZWxsKCktPnN0cnVjdHVy
ZSgpLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7
CisgICAgICAgIH0KIAotICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzSW50MzIoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuICh1LmFzSW50NjQgJiBUYWdUeXBlTnVtYmVyKSA9PSBUYWdU
eXBlTnVtYmVyOwotICAgIH0KKyAgICAgICAgaWYgKHYxLmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
ICAgIGlmICh2Mi5pc09iamVjdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB2MSA9PSB2MjsK
KyAgICAgICAgICAgIEpTVmFsdWUgcDEgPSB2MS50b1ByaW1pdGl2ZShleGVjKTsKKyAgICAgICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB2MSA9IHAxOworICAgICAgICAgICAgaWYgKHYxLmlzSW50MzIoKSAm
JiB2Mi5pc0ludDMyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHYxID09IHYyOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlubGluZSBpbnQ2NF90IHJlaW50ZXJw
cmV0RG91YmxlVG9JbnQ2NChkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKTsKLSAgICB9Ci0gICAgaW5saW5lIGRvdWJsZSByZWlu
dGVycHJldEludDY0VG9Eb3VibGUoaW50NjRfdCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Ci0gICAgfQorICAgICAgICBpZiAodjIuaXNP
YmplY3QoKSkgeworICAgICAgICAgICAgSlNWYWx1ZSBwMiA9IHYyLnRvUHJpbWl0aXZlKGV4ZWMp
OworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHYyID0gcDI7CisgICAgICAgICAgICBpZiAodjEu
aXNJbnQzMigpICYmIHYyLmlzSW50MzIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdjEgPT0g
djI7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAgQUxXQVlTX0lOTElO
RSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUgZCkKLSAgICB7Ci0g
ICAgICAgIHUuYXNJbnQ2NCA9IHJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChkKSArIERvdWJsZUVu
Y29kZU9mZnNldDsKLSAgICB9CisgICAgICAgIGlmIChzMSB8fCBzMikgeworICAgICAgICAgICAg
ZG91YmxlIGQxID0gdjEudG9OdW1iZXIoZXhlYyk7CisgICAgICAgICAgICBkb3VibGUgZDIgPSB2
Mi50b051bWJlcihleGVjKTsKKyAgICAgICAgICAgIHJldHVybiBkMSA9PSBkMjsKKyAgICAgICAg
fQogCi0gICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoaW50IGkpCi0gICAgewotICAgICAgICB1
LmFzSW50NjQgPSBUYWdUeXBlTnVtYmVyIHwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGkpOwotICAg
IH0KKyAgICAgICAgaWYgKHYxLmlzQm9vbGVhbigpKSB7CisgICAgICAgICAgICBpZiAodjIuaXNO
dW1iZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2MS5h
c0Jvb2xlYW4oKSkgPT0gdjIuYXNOdW1iZXIoKTsKKyAgICAgICAgfSBlbHNlIGlmICh2Mi5pc0Jv
b2xlYW4oKSkgeworICAgICAgICAgICAgaWYgKHYxLmlzTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHYxLmFzTnVtYmVyKCkgPT0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2Mi5hc0Jvb2xl
YW4oKSk7CisgICAgICAgIH0KIAotICAgIGlubGluZSBkb3VibGUgSlNWYWx1ZTo6YXNEb3VibGUo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzRG91YmxlKCkpOwotICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRJbnQ2NFRvRG91YmxlKHUuYXNJbnQ2NCAtIERvdWJsZUVuY29kZU9mZnNl
dCk7Ci0gICAgfQorICAgICAgICByZXR1cm4gdjEgPT0gdjI7CisgICAgfSB3aGlsZSAodHJ1ZSk7
Cit9CisKKy8vIEVDTUEgMTEuOS4zCitBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6c3RyaWN0
RXF1YWxTbG93Q2FzZUlubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdjEsIEpTVmFsdWUg
djIpCit7CisgICAgQVNTRVJUKHYxLmlzQ2VsbCgpICYmIHYyLmlzQ2VsbCgpKTsKKworICAgIGlm
ICh2MS5hc0NlbGwoKS0+aXNTdHJpbmcoKSAmJiB2Mi5hc0NlbGwoKS0+aXNTdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIGFzU3RyaW5nKHYxKS0+dmFsdWUoZXhlYykgPT0gYXNTdHJpbmcodjIpLT52
YWx1ZShleGVjKTsKKworICAgIHJldHVybiB2MSA9PSB2MjsKK30KKworaW5saW5lIGJvb2wgSlNW
YWx1ZTo6c3RyaWN0RXF1YWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYy
KQoreworICAgIGlmICh2MS5pc0ludDMyKCkgJiYgdjIuaXNJbnQzMigpKQorICAgICAgICByZXR1
cm4gdjEgPT0gdjI7CiAKLSAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc051bWJlcigpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gdS5hc0ludDY0ICYgVGFnVHlwZU51bWJlcjsKLSAgICB9
CisgICAgaWYgKHYxLmlzTnVtYmVyKCkgJiYgdjIuaXNOdW1iZXIoKSkKKyAgICAgICAgcmV0dXJu
IHYxLmFzTnVtYmVyKCkgPT0gdjIuYXNOdW1iZXIoKTsKIAotICAgIEFMV0FZU19JTkxJTkUgSlND
ZWxsKiBKU1ZhbHVlOjphc0NlbGwoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQ2Vs
bCgpKTsKLSAgICAgICAgcmV0dXJuIHUucHRyOwotICAgIH0KKyAgICBpZiAoIXYxLmlzQ2VsbCgp
IHx8ICF2Mi5pc0NlbGwoKSkKKyAgICAgICAgcmV0dXJuIHYxID09IHYyOwogCi0jZW5kaWYgLy8g
VVNFKEpTVkFMVUU2NCkKKyAgICByZXR1cm4gc3RyaWN0RXF1YWxTbG93Q2FzZUlubGluZShleGVj
LCB2MSwgdjIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAJKHJldmlzaW9u
IDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSlNWYXJpYWJsZU9iamVjdC5oIgogCisjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVmFyaWFibGVPYmpl
Y3Q6OnNfaW5mbyA9IHsgIlZhcmlhYmxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1ZhcmlhYmxlT2JqZWN0KSB9OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmNwcAkocmV2aXNpb24gMTM5NDg5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SlNXaXRoU2NvcGUuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKwogbmFtZXNwYWNlIEpT
QyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dpdGhTY29wZTo6c19pbmZvID0geyAiV2l0aFNjb3Bl
IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpdGhTY29wZSkg
fTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVy
T2JqZWN0LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IE1ha3MgT3Jsb3ZpY2gKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDkgQXBwbGUsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDks
IDIwMTIgQXBwbGUsIEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMiw4IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNXcmFwcGVyT2JqZWN0LmgiCiAKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RS
SVZJQUxfREVTVFJVQ1RPUihKU1dyYXBwZXJPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1
ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBl
Lmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTG9va3VwLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAi
RXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiTmFtZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
bWVJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmFtZUluc3RhbmNlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmFtZUluc3RhbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIk5hbWVJbnN0YW5jZS5oIgogCiAjaW5jbHVkZSAiSlNTY29wZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCShyZXZp
c2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lUHJvdG90
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk5hbWVQ
cm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEz
OTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JQ
cm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlw
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIk51bWJl
ckNvbnN0cnVjdG9yLmgiCiAKICNpbmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiTnVtYmVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiTnVtYmVyUHJvdG90
eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJOdW1iZXJQcm90b3R5cGUu
aCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUg
Ik9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQ
cm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNp
bmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJK
U1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVy
YXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMywxMDUgKzExMyw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICByZXR1cm4gcm9wZUJ1aWxkZXIucmVsZWFzZSgpOwogICAgIH0KIAotICAg
IC8vIEVDTUEgMTEuOS4zCi0gICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6ZXF1YWwoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQotICAgIHsKLSAgICAgICAgaWYgKHYxLmlz
SW50MzIoKSAmJiB2Mi5pc0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm4gdjEgPT0gdjI7Ci0K
LSAgICAgICAgcmV0dXJuIGVxdWFsU2xvd0Nhc2UoZXhlYywgdjEsIHYyKTsKLSAgICB9Ci0KLSAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgSlNWYWx1ZTo6ZXF1YWxTbG93Q2FzZUlubGluZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCi0gICAgewotICAgICAgICBkbyB7Ci0g
ICAgICAgICAgICBpZiAodjEuaXNOdW1iZXIoKSAmJiB2Mi5pc051bWJlcigpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB2MS5hc051bWJlcigpID09IHYyLmFzTnVtYmVyKCk7Ci0KLSAgICAgICAg
ICAgIGJvb2wgczEgPSB2MS5pc1N0cmluZygpOwotICAgICAgICAgICAgYm9vbCBzMiA9IHYyLmlz
U3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAoczEgJiYgczIpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGFzU3RyaW5nKHYxKS0+dmFsdWUoZXhlYykgPT0gYXNTdHJpbmcodjIpLT52YWx1ZShleGVj
KTsKLQotICAgICAgICAgICAgaWYgKHYxLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAodjIuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKCF2Mi5pc0NlbGwoKSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiB2Mi5hc0Nl
bGwoKS0+c3RydWN0dXJlKCktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHYyLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXYxLmlzQ2VsbCgpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHYx
LmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodjEu
aXNPYmplY3QoKSkgewotICAgICAgICAgICAgICAgIGlmICh2Mi5pc09iamVjdCgpKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdjEgPT0gdjI7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBw
MSA9IHYxLnRvUHJpbWl0aXZlKGV4ZWMpOwotICAgICAgICAgICAgICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgICAgIHYxID0gcDE7Ci0gICAgICAgICAgICAgICAgaWYgKHYxLmlzSW50MzIoKSAmJiB2Mi5p
c0ludDMyKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2MSA9PSB2MjsKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHYyLmlz
T2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlIHAyID0gdjIudG9QcmltaXRpdmUo
ZXhlYyk7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdjIgPSBwMjsKLSAg
ICAgICAgICAgICAgICBpZiAodjEuaXNJbnQzMigpICYmIHYyLmlzSW50MzIoKSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHYxID09IHYyOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoczEgfHwgczIpIHsKLSAgICAgICAgICAg
ICAgICBkb3VibGUgZDEgPSB2MS50b051bWJlcihleGVjKTsKLSAgICAgICAgICAgICAgICBkb3Vi
bGUgZDIgPSB2Mi50b051bWJlcihleGVjKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZDEgPT0g
ZDI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2MS5pc0Jvb2xlYW4oKSkgewot
ICAgICAgICAgICAgICAgIGlmICh2Mi5pc051bWJlcigpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2MS5hc0Jvb2xlYW4oKSkgPT0gdjIuYXNOdW1iZXIo
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodjIuaXNCb29sZWFuKCkpIHsKLSAgICAgICAgICAg
ICAgICBpZiAodjEuaXNOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYxLmFz
TnVtYmVyKCkgPT0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2Mi5hc0Jvb2xlYW4oKSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiB2MSA9PSB2MjsKLSAgICAgICAgfSB3aGlsZSAo
dHJ1ZSk7Ci0gICAgfQotCi0gICAgLy8gRUNNQSAxMS45LjMKLSAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgSlNWYWx1ZTo6c3RyaWN0RXF1YWxTbG93Q2FzZUlubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdjEsIEpTVmFsdWUgdjIpCi0gICAgewotICAgICAgICBBU1NFUlQodjEuaXNDZWxsKCkg
JiYgdjIuaXNDZWxsKCkpOwotCi0gICAgICAgIGlmICh2MS5hc0NlbGwoKS0+aXNTdHJpbmcoKSAm
JiB2Mi5hc0NlbGwoKS0+aXNTdHJpbmcoKSkKLSAgICAgICAgICAgIHJldHVybiBhc1N0cmluZyh2
MSktPnZhbHVlKGV4ZWMpID09IGFzU3RyaW5nKHYyKS0+dmFsdWUoZXhlYyk7Ci0KLSAgICAgICAg
cmV0dXJuIHYxID09IHYyOwotICAgIH0KLQotICAgIGlubGluZSBib29sIEpTVmFsdWU6OnN0cmlj
dEVxdWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKLSAgICB7Ci0g
ICAgICAgIGlmICh2MS5pc0ludDMyKCkgJiYgdjIuaXNJbnQzMigpKQotICAgICAgICAgICAgcmV0
dXJuIHYxID09IHYyOwotCi0gICAgICAgIGlmICh2MS5pc051bWJlcigpICYmIHYyLmlzTnVtYmVy
KCkpCi0gICAgICAgICAgICByZXR1cm4gdjEuYXNOdW1iZXIoKSA9PSB2Mi5hc051bWJlcigpOwot
Ci0gICAgICAgIGlmICghdjEuaXNDZWxsKCkgfHwgIXYyLmlzQ2VsbCgpKQotICAgICAgICAgICAg
cmV0dXJuIHYxID09IHYyOwotCi0gICAgICAgIHJldHVybiBzdHJpY3RFcXVhbFNsb3dDYXNlSW5s
aW5lKGV4ZWMsIHYxLCB2Mik7Ci0gICAgfQotCiAgICAgLy8gU2VlIEVTNSAxMS44LjEvMTEuOC4y
LzExLjguNSBmb3IgZGVmaW5pdGlvbiBvZiBsZWZ0Rmlyc3QsIHRoaXMgdmFsdWUgZW5zdXJlcyBj
b3JyZWN0CiAgICAgLy8gZXZhbHVhdGlvbiBvcmRlcmluZyBmb3IgYXJndW1lbnQgY29udmVyc2lv
bnMgZm9yICc8JyBhbmQgJz4nLiBGb3IgJzwnIHBhc3MgdGhlIHZhbHVlCiAgICAgLy8gdHJ1ZSwg
Zm9yIGxlZnRGaXJzdCwgZm9yICc+JyBwYXNzIHRoZSB2YWx1ZSBmYWxzZSAoYW5kIHJldmVyc2Ug
b3BlcmFuZCBvcmRlcikuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIz
LDcgQEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNpbmNsdWRl
ICJMZXhlci5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNo
ZS5oIgotI2luY2x1ZGUgInlhcnIvWWFyci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckpJVC5oIgor
I2luY2x1ZGUgIllhcnIuaCIKKyNpbmNsdWRlICJZYXJySklULmgiCiAjaW5jbHVkZSA8c3RkaW8u
aD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCi0KICNkZWZp
bmUgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTiAwCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAkocmV2aXNp
b24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBI
b2RvdmFuIChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMjYsOCArMjcsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLQogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5o
IgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRSZXN1
bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENhY2hlZFJlc3VsdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNoZWRS
ZXN1bHQuaCIKIAorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRj
aGVzQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMzk0
ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJSZWdFeHBDb25z
dHJ1Y3Rvci5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiUmVnRXhwTWF0Y2hlc0FycmF5LmgiCiAjaW5jbHVkZSAiUmVnRXhwUHJvdG90
eXBlLmgiCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogCiAjaW5j
bHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRl
ICJMb29rdXAuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNsdWRlICJS
ZWdFeHBQcm90b3R5cGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUg
IkpTVmFsdWUuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVnRXhwLmgi
CiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFw
LmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNs
dWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9w
ZXJ0eVNsb3QuaCIKICNpbmNsdWRlICJSZWplY3QuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlj
dEV2YWxBY3RpdmF0aW9uLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKIAogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAJ
KHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUg
IkVycm9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdSZWN1cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYg
KzIyLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVy
cy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxMzk0
ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTA2LDQ4ICs1MDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIHR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVjdCgp
ID09IGxleGljYWxHbG9iYWxPYmplY3Q7CiAgICAgfQogCi0gICAgaW5saW5lIEpTVmFsdWUgSlNW
YWx1ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlz
Q2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxsKCktPnN0cnVjdHVyZSgp
KTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgSlNDZWxsOjppc09iamVjdCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zdHJ1
Y3R1cmUtPmlzT2JqZWN0KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNDZWxsOjppc1N0
cmluZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkudHlwZSgpID09IFN0cmluZ1R5cGU7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgSlNDZWxs
Ojppc0dldHRlclNldHRlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1
cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IEdldHRlclNldHRlclR5cGU7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgSlNDZWxsOjppc1Byb3h5KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkgPT0gUHJveHlUeXBlOwotICAgIH0KLQot
ICAgIGlubGluZSBib29sIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBBUElWYWx1
ZVdyYXBwZXJUeXBlOwotICAgIH0KLQotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6c2V0U3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
ewotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4oKSA9PSB0aGlzLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENo
aWxkcmVuKCkpOwotICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5jbGFzc0luZm8oKSA9PSBtX3N0
cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwotICAgICAgICBBU1NFUlQoIW1fc3RydWN0dXJlCi0gICAg
ICAgICAgICAgICB8fCBtX3N0cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRIYXNCZWVu
SW52YWxpZGF0ZWQoKQotICAgICAgICAgICAgICAgfHwgbV9zdHJ1Y3R1cmUuZ2V0KCkgPT0gc3Ry
dWN0dXJlKTsKLSAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHN0cnVj
dHVyZSk7Ci0gICAgfQotCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjppbnRl
cm5hbEFwcGVuZChKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1faXNDaGVj
a2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKQEAgLTU4NiwyMyArNTQ0LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpbmxpbmUgSlND
ZWxsOjpKU0NlbGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUpCi0g
ICAgewotICAgIH0KLQotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ3JlYXRpbmdFYXJs
eUNlbGxUYWcpCi0gICAgewotI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQotICAgICAgICBBU1NF
UlQoZ2xvYmFsRGF0YS5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKLSAgICAgICAgZ2xvYmFsRGF0
YS5zZXRJbml0aWFsaXppbmdPYmplY3RDbGFzcygwKTsKLSAgICAgICAgaWYgKHN0cnVjdHVyZSkK
LSNlbmRpZgotICAgICAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0RWFybHlWYWx1ZShnbG9iYWxEYXRh
LCB0aGlzLCBzdHJ1Y3R1cmUpOwotICAgICAgICAvLyBWZXJ5IGZpcnN0IHNldCBvZiBhbGxvY2F0
aW9ucyB3b24ndCBoYXZlIGEgcmVhbCBzdHJ1Y3R1cmUuCi0gICAgICAgIEFTU0VSVChtX3N0cnVj
dHVyZSB8fCAhZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIH0KLQogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hh
aW4uaCIKIAogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAko
cmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91
dENoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoL21hY2guaD4KSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogLyogSW5jbHVkZSBjb21waWxl
ciBzcGVjaWZpYyBtYWNyb3MgKi8KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KIAorCiAvKiA9
PT09IFBMQVRGT1JNIGhhbmRsZXMgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3Mg
QVBJLCBhbmQKICAgIENQVS4gVGhpcyBtYWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Ig
b2YgcGxhdGZvcm0gYWRhcHRhdGlvbgogICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9z
LCBhbmQgdG9wLWxldmVsIHBvcnQgZGVmaW5pdGlvbnMuID09PT0gKi8KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAxLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgVGhlIEpJVFRodW5rcyBjbGFzcyBzaG91bGQgYmUgaW4gaXRz
IG93biBmaWxlLCBhbmQgZG9pbmcgc28gc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY5NgorCisgICAg
ICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgQWxsIC5jcHAgZmls
ZXMgdGhhdCB1c2UgdGhlIEpTQyBpbnRlcm5hbCBBUEkgbXVzdCBub3cgdHJhbnNpdGl2ZWx5IGlu
Y2x1ZGUKKyAgICAgICAgT3BlcmF0aW9ucy5oLCBhbmQgbm9uZSBvZiB0aGUgbWFqb3IgSlNDIGhl
YWRlcnMgZG8gaXQgZm9yIHlvdSB0byBhdm9pZAorICAgICAgICBjaXJjdWxhcml0eS4gV2ViQ29y
ZSBkb2Vzbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgY2lyY3VsYXJpdHkgd2l0aCBKU0MsIHNvCisg
ICAgICAgIHRoaXMgY2hhbmdlcyBhbGwgb2YgdGhlIG1ham9yIFdlYkNvcmUgSlNDIGJhc2UgaGVh
ZGVycyB0byBpbmNsdWRlCisgICAgICAgIE9wZXJhdGlvbnMuaC4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0JpbmRpbmdTdGF0ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdFdyYXBwYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHA6CisgICAgICAgICogYnJpZGdlL2MvY191dGlsaXR5Lmg6CisgICAgICAgICog
YnJpZGdlL2pzYy9CcmlkZ2VKU0MuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VM
b2FkZXIuY3BwOgorICAgICAgICAqIHBsdWdpbnMvZWZsL1BsdWdpblZpZXdFZmwuY3BwOgorICAg
ICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisKIDIwMTMtMDEtMTEgIFBoaWxpcCBSb2dl
cnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTa2lwIENhY2hlZEltYWdlOjpDcmVhdGVJ
bWFnZSBpZiB3ZSBkb24ndCBoYXZlIGltYWdlIGRhdGEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0JpbmRpbmdTdGF0ZS5oCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9CaW5kaW5nU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogI2RlZmluZSBCaW5kaW5nU3RhdGVfaAogCiAjaW5jbHVkZSA8cnVudGltZS9KU09i
amVjdC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJW
aWV3SGVscGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5o
PgogI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgJKHJldmlz
aW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxo
ZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMTM5NDg5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNp
bmNsdWRlIDxydW50aW1lL0xvb2t1cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oPgotCisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8
aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNsdWRl
IDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5o
CShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1
ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5oIgogI2lu
Y2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0VmFsdWUuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFdyYXBwYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9u
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUv
RGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDxydW50
aW1lL1JlZ0V4cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxpdHkuaAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNl
L1dlYkNvcmUvYnJpZGdlL2MvY191dGlsaXR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIm5wcnVudGltZV9pbnRlcm5hbC5oIgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL1dlYkNvcmUv
YnJpZGdlL2pzYy9CcmlkZ2VKU0MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvanNjL0JyaWRnZUpTQy5oCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvanNjL0JyaWRnZUpTQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CisjaW5j
bHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCw3IEBACiAKICNpZiBVU0UoSlND
KQogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg+CisjaW5jbHVkZSA8cnVudGltZS9P
cGVyYXRpb25zLmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMTM5NDg5KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDYgKzUyLDcgQEAKIAogI2lmIFVTRShKU0MpCiAjaW5jbHVkZSA8cnVudGltZS9K
U0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdFQkdMKSAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlTG9h
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lmIFVTRShKU0Mp
CiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3
RWZsLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL1dlYkNvcmUvcGx1Z2lucy9lZmwv
UGx1Z2luVmlld0VmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJQbHVnaW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNs
dWRlICJydW50aW1lL0pTTG9jay5oIgorI2luY2x1ZGUgInJ1bnRpbWUvT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjaW5jbHVkZSA8
RXZhcy5oPgpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lv
biAxMzk0ODkpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNp
bmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5j
bHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5jcHAJKHJldmlzaW9uIDEzOTQ4OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAKICNpbmNsdWRlIDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1w
bGVyTGludXguY3BwCShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gMTM5
NDg5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CShyZXZpc2lvbiAxMzk0ODkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL09wZXJhdGlvbnMuaD4KIAog
I2lmIEVOQUJMRShNSFRNTCkKICNpbmNsdWRlIDxXZWJDb3JlL01IVE1MQXJjaGl2ZS5oPgpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWlu
RWZsLmNwcAkocmV2aXNpb24gMTM5NDg5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9l
ZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBA
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNzLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3Vw
LWNhY2hlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5j
bHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgJKHJldmlzaW9uIDEzOTQ4OSkKKysrIFNvdXJjZS9XZWJL
aXQvZWZsL2V3ay9FV2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDYgQEAKICNp
bmNsdWRlICJld2tfd2ViX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiZXdrX3dpbmRvd19mZWF0dXJl
cy5oIgogCi0jaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPEV2YXMuaD4gCiAKICNlbmRpZiAv
LyBFV2ViS2l0X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkocmV2aXNpb24g
MTM5NDg5KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1
ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmgiCisjaW5jbHVkZSAicnVudGltZS9PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8
RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>