<?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>59447</bug_id>
          
          <creation_ts>2011-04-26 04:51:09 -0700</creation_ts>
          <short_desc>Optimizing gaussian blur filter to ARM-neon SIMD instruction set</short_desc>
          <delta_ts>2011-04-28 07:19:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Zoltan Herczeg">zherczeg</assigned_to>
          <cc>barraclough</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>krit</cc>
    
    <cc>loki</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>392395</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-26 04:51:09 -0700</bug_when>
    <thetext>Faster shadow casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392400</commentid>
    <comment_count>1</comment_count>
      <attachid>91092</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-26 05:07:10 -0700</bug_when>
    <thetext>Created attachment 91092
patch

More arm magic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392404</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-26 05:09:45 -0700</bug_when>
    <thetext>Attachment 91092 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.cpp:182:  The parameter name &quot;NL&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 8 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>392411</commentid>
    <comment_count>3</comment_count>
      <attachid>91092</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-26 05:40:00 -0700</bug_when>
    <thetext>Comment on attachment 91092
patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        This patch contains two sub-routines, one for speeding up
&gt; +        alpha channel only gaussian blur (by 2.5 times) and one
&gt; +        for speeding up all channel blur (by 4 times).

I wish you could move more code to the NEON files. I fear that we run into the same disaster like SVG and HTML Canvas were three years ago. Everyone is adding his platform dependent code to the main file and no one is able to work with the code. What do you think about a similar  design like GraphicsContext. GraphicsContext.cpp/.h interacts as Layer between WebCore and the platform dependent code. E.g. GraphicsContext::setStroke calls setPlatformStroke and so on. In your case the apply function could call platformApply. Every code that could be shared would still be part of apply or other functions in FEGaussianBlur. The rest moves to &lt;platform&gt;/FEGaussianBlur&lt;platform&gt;.cpp
This way we could avoid all the #if PLATFORM clauses in FEGaussianBlue.cpp. What do you think?

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:202
&gt; +    int widthMultipliedByFour = 4 * paintSize.width();

this can be const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392415</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-26 06:06:45 -0700</bug_when>
    <thetext>&gt; I wish you could move more code to the NEON files. I fear that we run into the same disaster like SVG and HTML Canvas were three years ago. Everyone is adding his platform dependent code to the main file and no one is able to work with the code. What do you think about a similar  design like GraphicsContext. GraphicsContext.cpp/.h interacts as Layer between WebCore and the platform dependent code. E.g. GraphicsContext::setStroke calls setPlatformStroke and so on. In your case the apply function could call platformApply. Every code that could be shared would still be part of apply or other functions in FEGaussianBlur. The rest moves to &lt;platform&gt;/FEGaussianBlur&lt;platform&gt;.cpp
&gt; This way we could avoid all the #if PLATFORM clauses in FEGaussianBlue.cpp. What do you think?

I like the idea although I have no idea how to implement it. We usually replace something in the middle of a big chunk of code, which depend on several local variables. Would be good if we could use inline functions... And perhaps dynamic CPU feature detection (later).

So would it be a good idea to move the current code into an inline functions? Or how?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392567</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-26 10:59:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; I wish you could move more code to the NEON files. I fear that we run into the same disaster like SVG and HTML Canvas were three years ago. Everyone is adding his platform dependent code to the main file and no one is able to work with the code. What do you think about a similar  design like GraphicsContext. GraphicsContext.cpp/.h interacts as Layer between WebCore and the platform dependent code. E.g. GraphicsContext::setStroke calls setPlatformStroke and so on. In your case the apply function could call platformApply. Every code that could be shared would still be part of apply or other functions in FEGaussianBlur. The rest moves to &lt;platform&gt;/FEGaussianBlur&lt;platform&gt;.cpp
&gt; &gt; This way we could avoid all the #if PLATFORM clauses in FEGaussianBlue.cpp. What do you think?

I think Dirks idea is very wise, we should go that way.

&gt; 
&gt; I like the idea although I have no idea how to implement it. We usually replace something in the middle of a big chunk of code, which depend on several local variables. Would be good if we could use inline functions... And perhaps dynamic CPU feature detection (later).
I&apos;d say we just add a &quot;void platformApply(xxx)&quot; method, in eg. FEGaussianBlur.h where xxx are the needed arguments, which shall be passed from the apply() method -&gt; apply() should call plaformApply(xxx).
In your patch, the first ifdef section (for CPU(NEON)), would go into FEGaussianBlurNEON.cpp, and the #else part into FEGaussianBlurDefault.cpp. The Neon version compiles in FEGaussianBlur.cpp &amp; FEGaussianBlurNeon.cpp, and the non-Neon builds FEGaussiaunBlur.cpp &amp; FEGaussianBlurDefault.cpp.

&gt; So would it be a good idea to move the current code into an inline functions? Or how?
Does my approach make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392791</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-26 15:14:05 -0700</bug_when>
    <thetext>Krit, would you please review this today as part of the reviewathon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392799</commentid>
    <comment_count>7</comment_count>
      <attachid>91092</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-26 15:19:46 -0700</bug_when>
    <thetext>Comment on attachment 91092
patch

I&apos;m more for discussing patches if there is something to discuss  than giving r- and discuss it afterwards. But I fear Eric ;-). r- See comments of Niko and me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393238</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-26 18:28:48 -0700</bug_when>
    <thetext>Bwahahaha!

Thanks Dirk! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393334</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-26 21:56:06 -0700</bug_when>
    <thetext>&gt; &gt; So would it be a good idea to move the current code into an inline functions? Or how?
&gt; Does my approach make sense?

I fear the code duplications and performance losses. For example, the non-NEON lighting filter code is a simple loop, since all the utility functions are available. If I would move it to a separate directory I would have to duplicite them, since we only speed-up the internal pixel drawing. The border pixels are still drawn in a common way (and those loops using those common functions). If I would make them non-inline (to avoid code duplication), it would be a huge performance loss. We want to speed up drawing not slowing it down :)

I am totally agree about that we need to avoid ugly code, but unlike GraphicsContext, we have a lot of common core code we want to share among the platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393391</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-26 23:46:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; &gt; So would it be a good idea to move the current code into an inline functions? Or how?
&gt; &gt; Does my approach make sense?
&gt; 
&gt; I fear the code duplications and performance losses. For example, the non-NEON lighting filter code is a simple loop, since all the utility functions are available. If I would move it to a separate directory I would have to duplicite them, since we only speed-up the internal pixel drawing. The border pixels are still drawn in a common way (and those loops using those common functions). If I would make them non-inline (to avoid code duplication), it would be a huge performance loss. We want to speed up drawing not slowing it down :)
Okay, but why not leave every code which can be shared in FEGaussianBlur itself?
We don&apos;t need to move the inner loop and duplicate it.
Why shall we make them non-inline? No need to, eh?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393392</commentid>
    <comment_count>11</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-26 23:48:08 -0700</bug_when>
    <thetext>&gt; Okay, but why not leave every code which can be shared in FEGaussianBlur itself?
&gt; We don&apos;t need to move the inner loop and duplicate it.
&gt; Why shall we make them non-inline? No need to, eh?

There are several possible solutions, and I can&apos;t choose among them :) If you are online, could we discuss this in #irc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393421</commentid>
    <comment_count>12</comment_count>
      <attachid>91248</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-27 00:44:06 -0700</bug_when>
    <thetext>Created attachment 91248
clever patch

How about this solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393423</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-27 00:46:45 -0700</bug_when>
    <thetext>Attachment 91248 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 11 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>393435</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-27 01:24:58 -0700</bug_when>
    <thetext>Attachment 91248 did not build on win:
Build output: http://queues.webkit.org/results/8508897</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393437</commentid>
    <comment_count>15</comment_count>
      <attachid>91248</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-27 01:30:15 -0700</bug_when>
    <thetext>Comment on attachment 91248
clever patch

This looks great to me, doesn&apos;t build on win/efl though, can you look into that first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393441</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-27 01:36:50 -0700</bug_when>
    <thetext>Attachment 91248 did not build on mac:
Build output: http://queues.webkit.org/results/8511308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393481</commentid>
    <comment_count>17</comment_count>
      <attachid>91266</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-27 04:15:09 -0700</bug_when>
    <thetext>Created attachment 91266
next try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393495</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-27 04:41:26 -0700</bug_when>
    <thetext>Attachment 91266 did not build on mac:
Build output: http://queues.webkit.org/results/8509942</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393531</commentid>
    <comment_count>19</comment_count>
      <attachid>91280</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-27 07:05:45 -0700</bug_when>
    <thetext>Created attachment 91280
mac fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393551</commentid>
    <comment_count>20</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-27 08:15:30 -0700</bug_when>
    <thetext>Wow all build work! I know the Changelog should be updated, but otherwise, this patch is ready for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393556</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-27 08:24:12 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Wow all build work! I know the Changelog should be updated, but otherwise, this patch is ready for review!

Gtk is not ready yet ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393561</commentid>
    <comment_count>22</comment_count>
      <attachid>91280</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-27 08:32:12 -0700</bug_when>
    <thetext>Comment on attachment 91280
mac fix

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

Much better! I&apos;d like to let Niko make the final review. He may has more suggestions. The graphics code looks sane to me.

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:141
&gt; +inline void FEGaussianBlur::platformApply(ByteArray* srcPixelArray, ByteArray* tmpPixelArray, unsigned kernelSizeX, unsigned kernelSizeY, IntSize&amp; paintSize)
&gt; +{
&gt; +    // The selection here eventually should happen dynamically on some platforms.
&gt; +#if CPU(ARM_NEON) &amp;&amp; COMPILER(GCC)
&gt; +    platformApplyNeon(srcPixelArray, tmpPixelArray, kernelSizeX, kernelSizeY, paintSize);
&gt; +#else
&gt; +    platformApplyGeneric(srcPixelArray, tmpPixelArray, kernelSizeX, kernelSizeY, paintSize);
&gt; +#endif
&gt; +}

I&apos;d like to see this in the header as well. This way we would have a platform independent cpp file.

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:252
&gt; +inline void FELighting::platformApply(LightingData&amp; data, LightSource::PaintingData&amp; paintingData)
&gt; +{
&gt; +    // The selection here eventually should happen dynamically on some platforms.
&gt; +#if CPU(ARM_NEON) &amp;&amp; COMPILER(GCC)
&gt; +    platformApplyNeon(data, paintingData);
&gt; +#else
&gt; +    platformApplyGeneric(data, paintingData);
&gt; +#endif
&gt; +}

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393564</commentid>
    <comment_count>23</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-04-27 08:34:29 -0700</bug_when>
    <thetext>Attachment 91280 did not build on gtk:
Build output: http://queues.webkit.org/results/8507989</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394271</commentid>
    <comment_count>24</comment_count>
      <attachid>91437</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-27 23:54:49 -0700</bug_when>
    <thetext>Created attachment 91437
final patch

If WildFox likes it xD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394276</commentid>
    <comment_count>25</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-04-28 00:10:35 -0700</bug_when>
    <thetext>Attachment 91437 did not build on qt:
Build output: http://queues.webkit.org/results/8519271</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394277</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-28 00:12:44 -0700</bug_when>
    <thetext>Attachment 91437 did not build on chromium:
Build output: http://queues.webkit.org/results/8518286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394295</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-28 00:50:03 -0700</bug_when>
    <thetext>Attachment 91437 did not build on chromium:
Build output: http://queues.webkit.org/results/8520264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394301</commentid>
    <comment_count>28</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-28 01:11:00 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 91280 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=91280&amp;action=review
&gt; 
&gt; Much better! I&apos;d like to let Niko make the final review. He may has more suggestions. The graphics code looks sane to me.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:141
&gt; &gt; +inline void FEGaussianBlur::platformApply(ByteArray* srcPixelArray, ByteArray* tmpPixelArray, unsigned kernelSizeX, unsigned kernelSizeY, IntSize&amp; paintSize)
&gt; &gt; +{
&gt; &gt; +    // The selection here eventually should happen dynamically on some platforms.
&gt; &gt; +#if CPU(ARM_NEON) &amp;&amp; COMPILER(GCC)
&gt; &gt; +    platformApplyNeon(srcPixelArray, tmpPixelArray, kernelSizeX, kernelSizeY, paintSize);
&gt; &gt; +#else
&gt; &gt; +    platformApplyGeneric(srcPixelArray, tmpPixelArray, kernelSizeX, kernelSizeY, paintSize);
&gt; &gt; +#endif
&gt; &gt; +}
&gt; 
&gt; I&apos;d like to see this in the header as well. This way we would have a platform independent cpp file.

Seems some compilers does not like the idea :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394306</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-28 01:50:01 -0700</bug_when>
    <thetext>Attachment 91437 did not build on mac:
Build output: http://queues.webkit.org/results/8520276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394345</commentid>
    <comment_count>30</comment_count>
      <attachid>91465</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-28 03:56:38 -0700</bug_when>
    <thetext>Created attachment 91465
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394370</commentid>
    <comment_count>31</comment_count>
      <attachid>91465</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-04-28 05:11:04 -0700</bug_when>
    <thetext>Comment on attachment 91465
patch

Looks great to me! As always I can&apos;t say anything regarding the assembler part, but I&apos;ll trust you since you&apos;re the expert in this area! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394415</commentid>
    <comment_count>32</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-04-28 07:19:59 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/85180</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91092</attachid>
            <date>2011-04-26 05:07:10 -0700</date>
            <delta_ts>2011-04-27 00:44:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>26976</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSAyMWYyMmUxNDA0ZmIzMGJlYmI4MmY1NTgxMWJiN2NmZmU4MDIwY2NkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBUdWUsIDI2IEFwciAyMDExIDE0OjAzOjUxICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDI1ICsrCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUdhdXNzaWFuQmx1ci5jcHAgICB8ICAgNTkgKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5jcHAgICAgICAgfCAgICAyICstCiAuLi4vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcCAgICB8ICAzNDMgKysrKysrKysrKysrKysr
KysrKysKIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCAgICAg
IHwgICA1OSArKysrCiAuLi4vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3Bw
ICAgICAgICB8ICAgMTIgKy0KIDggZmlsZXMgY2hhbmdlZCwgNDk4IGluc2VydGlvbnMoKyksIDgg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1
c3NpYW5CbHVyTkVPTi5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA3MDc1NWUuLmVhNTcwZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wNC0yNiAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3pl
Z0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgT3B0aW1pemluZyBnYXVzc2lhbiBibHVyIGZpbHRlciB0byBBUk0tbmVvbiBT
SU1EIGluc3RydWN0aW9uIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTk0NDcKKworICAgICAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIHR3byBzdWIt
cm91dGluZXMsIG9uZSBmb3Igc3BlZWRpbmcgdXAKKyAgICAgICAgYWxwaGEgY2hhbm5lbCBvbmx5
IGdhdXNzaWFuIGJsdXIgKGJ5IDIuNSB0aW1lcykgYW5kIG9uZQorICAgICAgICBmb3Igc3BlZWRp
bmcgdXAgYWxsIGNoYW5uZWwgYmx1ciAoYnkgNCB0aW1lcykuCisKKyAgICAgICAgQW5kIGEgZmV3
IHR5cG8gZml4ZXMgZm9yIHRoZSBuZW9uaXplZCBsaWdodGluZyBmaWx0ZXIuCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRUdhdXNzaWFuQmx1cjo6YXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
VEZfQUxJR05FRCk6CisgICAgICAgIChXZWJDb3JlOjpmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zv
ck5lb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3Np
YW5CbHVyTkVPTi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTkVPTi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXVEZfQUxJR05FRCk6
CisKIDIwMTEtMDQtMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4NDg2NC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCAxYWM5ODY3Li43YjIwZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00MTUxLDYgKzQx
NTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0
U291cmNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
TGlnaHRpbmdORU9OLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUZyZWVUeXBlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udFBsYXRmb3JtRGF0YS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMDZkOGY0YS4uNjlhZmVl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE5NDYsNiArMTk0Niw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCkBAIC0zMDgwLDcgKzMwODEsOCBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBcCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwCiB9CiAKIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9NQVRITUw9MSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCA5Mjk2
ODI4Li4wY2E1MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtMzUsNiArMzUsMTEgQEAK
ICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
IAorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorI2luY2x1ZGUgIkZFR2F1c3Np
YW5CbHVyTkVPTi5oIgorI2luY2x1ZGUgPHd0Zi9BbGlnbm1lbnQuaD4KKyNlbmRpZgorCiB1c2lu
ZyBzdGQ6Om1heDsKIAogc3RhdGljIGNvbnN0IGZsb2F0IGdHYXVzc2lhbktlcm5lbEZhY3RvciA9
IDMgLyA0LmYgKiBzcXJ0ZigyICogcGlGbG9hdCk7CkBAIC0xOTMsNiArMTk4LDU5IEBAIHZvaWQg
RkVHYXVzc2lhbkJsdXI6OmFwcGx5KCkKICAgICBSZWZQdHI8Qnl0ZUFycmF5PiB0bXBJbWFnZURh
dGEgPSBCeXRlQXJyYXk6OmNyZWF0ZShwYWludFNpemUud2lkdGgoKSAqIHBhaW50U2l6ZS5oZWln
aHQoKSAqIDQpOwogICAgIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSA9IHRtcEltYWdlRGF0YS5n
ZXQoKTsKIAorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorICAgIGludCB3aWR0
aE11bHRpcGxpZWRCeUZvdXIgPSA0ICogcGFpbnRTaXplLndpZHRoKCk7CisgICAgRkVHYXVzc2lh
bkJsdXJQYWludGluZ0RhdGFGb3JOZW9uIGFyZ3VtZW50c1ggPSB7CisgICAgICAgIDQsCisgICAg
ICAgIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgd2lkdGhNdWx0aXBsaWVkQnlGb3Vy
LAorICAgICAgICAoaXNBbHBoYUltYWdlKCkgPyAoKHBhaW50U2l6ZS5oZWlnaHQoKSA+PiAyKSA8
PCAyKSA6IHBhaW50U2l6ZS5oZWlnaHQoKSkgKiB3aWR0aE11bHRpcGxpZWRCeUZvdXIsCisgICAg
ICAgIGlzQWxwaGFJbWFnZSgpID8gKHBhaW50U2l6ZS5oZWlnaHQoKSAmIDB4MykgOiAwLAorICAg
ICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICBpc0FscGhhSW1hZ2UoKSA/
IDAgOiBmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24oKQorICAgIH07CisgICAgRkVHYXVz
c2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uIGFyZ3VtZW50c1kgPSB7CisgICAgICAgIDQgKiBw
YWludFNpemUud2lkdGgoKSwKKyAgICAgICAgNCAqIHBhaW50U2l6ZS53aWR0aCgpICogcGFpbnRT
aXplLmhlaWdodCgpLAorICAgICAgICA0LAorICAgICAgICAoaXNBbHBoYUltYWdlKCkgPyAoKHBh
aW50U2l6ZS53aWR0aCgpID4+IDIpIDw8IDIpIDogcGFpbnRTaXplLndpZHRoKCkpICogNCwKKyAg
ICAgICAgaXNBbHBoYUltYWdlKCkgPyAocGFpbnRTaXplLndpZHRoKCkgJiAweDMpIDogMCwKKyAg
ICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgaXNBbHBoYUltYWdlKCkg
PyAwIDogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uKCkKKyAgICB9OworCisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgaWYgKGtlcm5lbFNpemVYKSB7Cisg
ICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWCwgYXJndW1lbnRzWC5kaXN0
YW5jZUxlZnQsIGFyZ3VtZW50c1guZGlzdGFuY2VSaWdodCk7CisgICAgICAgICAgICBhcmd1bWVu
dHNYLmludmVydGVkS2VybmVsU2l6ZSA9IDEgLyBzdGF0aWNfY2FzdDxmbG9hdD4oa2VybmVsU2l6
ZVgpOworICAgICAgICAgICAgaWYgKGlzQWxwaGFJbWFnZSgpKQorICAgICAgICAgICAgICAgIG5l
b25EcmF3QWxwaGFDaGFubmVsR2F1c3NpYW5CbHVyKHNyY1BpeGVsQXJyYXktPmRhdGEoKSwgdG1w
UGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbmVvbkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKHNyY1BpeGVsQXJyYXkt
PmRhdGEoKSwgdG1wUGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFy
cmF5OworICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7CisgICAgICAg
ICAgICBzcmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChrZXJuZWxTaXplWSkgeworICAgICAgICAgICAga2VybmVsUG9zaXRpb24oaSwga2VybmVs
U2l6ZVksIGFyZ3VtZW50c1kuZGlzdGFuY2VMZWZ0LCBhcmd1bWVudHNZLmRpc3RhbmNlUmlnaHQp
OworICAgICAgICAgICAgYXJndW1lbnRzWS5pbnZlcnRlZEtlcm5lbFNpemUgPSAxIC8gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGtlcm5lbFNpemVZKTsKKyAgICAgICAgICAgIGlmIChpc0FscGhhSW1hZ2Uo
KSkKKyAgICAgICAgICAgICAgICBuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cih0bXBQ
aXhlbEFycmF5LT5kYXRhKCksIHNyY1BpeGVsQXJyYXktPmRhdGEoKSwgJmFyZ3VtZW50c1kpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNz
aWFuQmx1cih0bXBQaXhlbEFycmF5LT5kYXRhKCksIHNyY1BpeGVsQXJyYXktPmRhdGEoKSwgJmFy
Z3VtZW50c1kpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQnl0ZUFycmF5KiBhdXhQ
aXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHRtcFBpeGVsQXJyYXkgPSBz
cmNQaXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1eFBpeGVsQXJyYXk7
CisgICAgICAgIH0KKyAgICB9CisjZWxzZQogICAgIGludCBzdHJpZGUgPSA0ICogcGFpbnRTaXpl
LndpZHRoKCk7CiAgICAgaW50IGR4TGVmdCA9IDA7CiAgICAgaW50IGR4UmlnaHQgPSAwOwpAQCAt
MjE3LDYgKzI3NSw3IEBAIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KCkKICAgICAgICAgICAg
IHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OwogICAgICAgICB9CiAgICAgfQorI2VuZGlm
CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmR1bXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKaW5kZXggMTNh
NjlmZC4uMTliZTMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKICNpZiBD
UFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKICNpbmNsdWRlICJGRUxpZ2h0aW5nTkVPTi5o
IgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQWxpZ25tZW50Lmg+CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVy
TkVPTi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNkMzlkYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
YXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAKQEAgLTAsMCArMSwzNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
RUdhdXNzaWFuQmx1ck5FT04uaCIKKworI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0ND
KQorCisjaW5jbHVkZSA8d3RmL0FsaWdubWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0YXRpYyBXVEZfQUxJR05FRCh1bnNpZ25lZCBjaGFyLCBzX0ZFR2F1c3NpYW5CbHVyQ29uc3Rh
bnRzRm9yTmVvbltdLCAxNikgPSB7CisgICAgLy8gTWFwcGluZyBmcm9tIEFSTSB0byBORU9OIHJl
Z2lzdGVycy4KKyAgICAwLCAxNiwgMTYsIDE2LCAxLCAgMTYsIDE2LCAxNiwgMiwgIDE2LCAxNiwg
MTYsIDMsICAxNiwgMTYsIDE2LAorICAgIC8vIE1hcHBpbmcgZnJvbSBORU9OIHRvIEFSTSByZWdp
c3RlcnMuCisgICAgMCwgNCwgIDgsICAxMiwgMTYsIDE2LCAxNiwgMTYKK307CisKK3Vuc2lnbmVk
IGNoYXIqIGZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbigpCit7CisgICAgcmV0dXJuIHNf
RkVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uOworfQorCisjZGVmaW5lIEFTU1RSSU5HKHN0
cikgI3N0cgorI2RlZmluZSBUT1NUUklORyh2YWx1ZSkgQVNTVFJJTkcodmFsdWUpCisKKyNkZWZp
bmUgU1RSSURFX09GRlNFVCBUT1NUUklORygwKQorI2RlZmluZSBTVFJJREVfV0lEVEhfT0ZGU0VU
IFRPU1RSSU5HKDQpCisjZGVmaW5lIFNUUklERV9MSU5FX09GRlNFVCBUT1NUUklORyg4KQorI2Rl
ZmluZSBTVFJJREVfTElORV9XSURUSF9PRkZTRVQgVE9TVFJJTkcoMTIpCisjZGVmaW5lIFJFTUFJ
TklOR19TVFJJREVTX09GRlNFVCBUT1NUUklORygxNikKKyNkZWZpbmUgRElTVEFOQ0VfTEVGVF9P
RkZTRVQgVE9TVFJJTkcoMjApCisjZGVmaW5lIERJU1RBTkNFX1JJR0hUX09GRlNFVCBUT1NUUklO
RygyNCkKKyNkZWZpbmUgSU5WRVJURURfS0VSTkVMX1NJWkVfT0ZGU0VUIFRPU1RSSU5HKDI4KQor
I2RlZmluZSBQQUlOVElOR19DT05TVEFOVFNfT0ZGU0VUIFRPU1RSSU5HKDMyKQorI2RlZmluZSBO
TCAiXG4iCisKKy8vIFJlZ2lzdGVyIGFsbG9jYXRpb24uCisjZGVmaW5lIFNPVVJDRV9SICAgICAg
ICAgICAgICAgICJyMCIKKyNkZWZpbmUgREVTVElOQVRJT05fUiAgICAgICAgICAgInIxIgorI2Rl
ZmluZSBMRUZUX1IgICAgICAgICAgICAgICAgICAicjIiCisjZGVmaW5lIFJJR0hUX1IgICAgICAg
ICAgICAgICAgICJyMyIKKyNkZWZpbmUgU09VUkNFX0VORF9SICAgICAgICAgICAgInI0IgorI2Rl
ZmluZSBERVNUSU5BVElPTl9FTkRfUiAgICAgICAicjUiCisjZGVmaW5lIFNUUklERV9SICAgICAg
ICAgICAgICAgICJyNiIKKyNkZWZpbmUgU1RSSURFX1dJRFRIX1IgICAgICAgICAgInI3IgorI2Rl
ZmluZSBTVFJJREVfTElORV9SICAgICAgICAgICAicjgiCisjZGVmaW5lIFNPVVJDRV9MSU5FX0VO
RF9SICAgICAgICJyMTAiCisjZGVmaW5lIERJU1RBTkNFX0xFRlRfUiAgICAgICAgICJyMTEiCisj
ZGVmaW5lIERJU1RBTkNFX1JJR0hUX1IgICAgICAgICJyMTIiCisjZGVmaW5lIE1BWF9LRVJORUxf
U0laRV9SICAgICAgICJsciIKKworLy8gQWx0ZXJuYXRlIG5hbWVzLgorI2RlZmluZSBJTklUX0lO
VkVSVEVEX0tFUk5FTF9TSVpFX1IgU09VUkNFX0VORF9SCisjZGVmaW5lIElOSVRfUEFJTlRJTkdf
Q09OU1RBTlRTX1IgREVTVElOQVRJT05fRU5EX1IKKyNkZWZpbmUgSU5JVF9TVU1fUiBMRUZUX1IK
KyNkZWZpbmUgUkVNQUlOSU5HX1NUUklERVNfUiBTT1VSQ0VfTElORV9FTkRfUgorCisjZGVmaW5l
IElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgICJxMCIKKyNkZWZpbmUgU1VNX1EgICAgICAgICAgICAg
ICAgICAgInExIgorI2RlZmluZSBQSVhFTF9RICAgICAgICAgICAgICAgICAicTIiCisjZGVmaW5l
IFBJWEVMX0QwICAgICAgICAgICAgICAgICJkNCIKKyNkZWZpbmUgUElYRUxfRDEgICAgICAgICAg
ICAgICAgImQ1IgorI2RlZmluZSBQSVhFTF9EMDAgICAgICAgICAgICAgICAiZDRbMF0iCisjZGVm
aW5lIFBJWEVMX0QwMSAgICAgICAgICAgICAgICJkNFsxXSIKKyNkZWZpbmUgUElYRUxfUzEgICAg
ICAgICAgICAgICAgInM5IgorI2RlZmluZSBQSVhFTF9EMTAgICAgICAgICAgICAgICAiZDVbMF0i
CisjZGVmaW5lIFBJWEVMX1MyICAgICAgICAgICAgICAgICJzMTAiCisjZGVmaW5lIFBJWEVMX0Qx
MSAgICAgICAgICAgICAgICJkNVsxXSIKKyNkZWZpbmUgUkVNQUlOSU5HX1NUUklERVNfUzAgICAg
InMxMiIKKworI2RlZmluZSBSRUFEX1JBTkdFICAgICAgICAgICAgICAiZDE2LWQxOCIKKyNkZWZp
bmUgUkVNQVBfQVJNX05FT04xX1EgICAgICAgImQxNiIKKyNkZWZpbmUgUkVNQVBfQVJNX05FT04y
X1EgICAgICAgImQxNyIKKyNkZWZpbmUgUkVNQVBfTkVPTl9BUk1fUSAgICAgICAgImQxOCIKKwor
YXNtICggLy8gTk9MSU5UCisiLmdsb2JsICIgVE9TVFJJTkcobmVvbkRyYXdBbGxDaGFubmVsR2F1
c3NpYW5CbHVyKSBOTAorVE9TVFJJTkcobmVvbkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKSAi
OiIgTkwKKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBscn0iIE5MCisgICAgImxk
ciAiIFNUUklERV9SICIsIFtyMiwgIyIgU1RSSURFX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIg
U1RSSURFX1dJRFRIX1IgIiwgW3IyLCAjIiBTVFJJREVfV0lEVEhfT0ZGU0VUICJdIiBOTAorICAg
ICJsZHIgIiBESVNUQU5DRV9MRUZUX1IgIiwgW3IyLCAjIiBESVNUQU5DRV9MRUZUX09GRlNFVCAi
XSIgTkwKKyAgICAibGRyICIgRElTVEFOQ0VfUklHSFRfUiAiLCBbcjIsICMiIERJU1RBTkNFX1JJ
R0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgU1RSSURFX0xJTkVfUiAiLCBbcjIsICMiIFNU
UklERV9MSU5FX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgU09VUkNFX0xJTkVfRU5EX1IgIiwg
W3IyLCAjIiBTVFJJREVfTElORV9XSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIElOSVRf
SU5WRVJURURfS0VSTkVMX1NJWkVfUiAiLCBbcjIsICMiIElOVkVSVEVEX0tFUk5FTF9TSVpFX09G
RlNFVCAiXSIgTkwKKyAgICAibGRyICIgSU5JVF9QQUlOVElOR19DT05TVEFOVFNfUiAiLCBbcjIs
ICMiIFBBSU5USU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisKKyAgICAvLyBJbml0aWFsaXpl
IGxvY2Fscy4KKyAgICAibXVsICIgRElTVEFOQ0VfTEVGVF9SICIsICIgRElTVEFOQ0VfTEVGVF9S
ICIsICIgU1RSSURFX1IgTkwKKyAgICAibXVsICIgRElTVEFOQ0VfUklHSFRfUiAiLCAiIERJU1RB
TkNFX1JJR0hUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJtb3YgIiBNQVhfS0VSTkVMX1NJWkVf
UiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKyAgICAiY21wICIgTUFYX0tFUk5FTF9TSVpFX1Ig
IiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJtb3ZjcyAiIE1BWF9LRVJORUxfU0laRV9SICIs
ICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBT
T1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgInZkdXAuZjMyICIgSU5WRVJU
RURfS0VSTkVMX1NJWkVfUSAiLCAiIElOSVRfSU5WRVJURURfS0VSTkVMX1NJWkVfUiBOTAorICAg
ICJ2bGQxLmYzMiB7ICIgUkVBRF9SQU5HRSAiIH0sIFsiIElOSVRfUEFJTlRJTkdfQ09OU1RBTlRT
X1IgIl0hIiBOTAorCisiLmFsbENoYW5uZWxNYWluTG9vcDoiIE5MCisKKyAgICAvLyBJbml0aWFs
aXplIHRoZSBzdW0gdmFyaWFibGUuCisgICAgInZtb3YudTMyICIgU1VNX1EgIiwgIzAiIE5MCisg
ICAgIm1vdiAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJhZGQgIiBTT1VSQ0Vf
RU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIE1BWF9LRVJORUxfU0laRV9SIE5MCisgICAgImNtcCAi
IElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbGxDaGFubmVsSW5p
dFN1bURvbmUiIE5MCisiLmFsbENoYW5uZWxJbml0U3VtOiIgTkwKKyAgICAidmxkMS51MzIgIiBQ
SVhFTF9EMDAgIiwgWyIgSU5JVF9TVU1fUiAiXSwgIiBTVFJJREVfUiBOTAorICAgICJ2dGJsLjgg
IiBQSVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVPTjJfUSBOTAorICAg
ICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVPTjFf
USBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisg
ICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNjIC5hbGxD
aGFubmVsSW5pdFN1bSIgTkwKKyIuYWxsQ2hhbm5lbEluaXRTdW1Eb25lOiIgTkwKKworICAgIC8v
IEJsdXJyaW5nLgorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNU
UklERV9XSURUSF9SIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX0VORF9SICIsICIgREVTVElO
QVRJT05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgInN1YiAiIExFRlRfUiAiLCAiIFNP
VVJDRV9SICIsICIgRElTVEFOQ0VfTEVGVF9SIE5MCisgICAgImFkZCAiIFJJR0hUX1IgIiwgIiBT
T1VSQ0VfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKworIi5hbGxDaGFubmVsQmx1cjoiIE5M
CisgICAgInZjdnQuZjMyLnUzMiAiIFBJWEVMX1EgIiwgIiBTVU1fUSBOTAorICAgICJ2bXVsLmYz
MiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSBOTAor
ICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSBOTAorICAgICJ2dGJsLjgg
IiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAiLSIgUElYRUxfRDEgIn0sICIgUkVNQVBfTkVPTl9B
Uk1fUSBOTAorICAgICJ2c3QxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBERVNUSU5BVElPTl9SICJd
LCAiIFNUUklERV9SIE5MCisKKyAgICAiY21wICIgTEVGVF9SICIsICIgU09VUkNFX1IgTkwKKyAg
ICAiYmNjIC5hbGxDaGFubmVsU2tpcExlZnQiIE5MCisgICAgInZsZDEudTMyICIgUElYRUxfRDAw
ICIsIFsiIExFRlRfUiAiXSIgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDEgIiwgeyIgUElYRUxf
RDAgIn0sICIgUkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDAgIiwg
eyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwKKyAgICAidnN1Yi51MzIgIiBT
VU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbGxDaGFubmVsU2tpcExlZnQ6ICIg
TkwKKworICAgICJjbXAgIiBSSUdIVF9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAu
YWxsQ2hhbm5lbFNraXBSaWdodCIgTkwKKyAgICAidmxkMS51MzIgIiBQSVhFTF9EMDAgIiwgWyIg
UklHSFRfUiAiXSIgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDEgIiwgeyIgUElYRUxfRDAgIn0s
ICIgUkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDAgIiwgeyIgUElY
RUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAi
LCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbGxDaGFubmVsU2tpcFJpZ2h0OiAiIE5MCisK
KyAgICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiYWRk
ICIgUklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJjbXAgIiBERVNU
SU5BVElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAgICAiYmNjIC5hbGxDaGFubmVs
Qmx1ciIgTkwKKyAgICAic3ViICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwg
IiBTVFJJREVfV0lEVEhfUiBOTAorCisgICAgImFkZCAiIFNPVVJDRV9SICIsICIgU09VUkNFX1Ig
IiwgIiBTVFJJREVfTElORV9SIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNU
SU5BVElPTl9SICIsICIgU1RSSURFX0xJTkVfUiBOTAorICAgICJjbXAgIiBTT1VSQ0VfUiAiLCAi
IFNPVVJDRV9MSU5FX0VORF9SIE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbE1haW5Mb29wIiBOTAor
CisgICAgImxkbWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorKTsKKworI2RlZmlu
ZSBEQVRBX1RSQU5TRkVSNChjb21tYW5kLCBiYXNlKSBcCisgICAgY29tbWFuZCAiICIgUElYRUxf
RDAwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFuZCAiICIg
UElYRUxfRDAxICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFu
ZCAiICIgUElYRUxfRDEwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAg
Y29tbWFuZCAiICIgUElYRUxfRDExICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBc
CisgICAgInN1YiAiIGJhc2UgIiwgIiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIi
IE5MCisKKy8vIFRoZSBudW1iZXIgb2YgcmVhZHMgZGVwZW5kIG9uIFJFTUFJTklOR19TVFJJREVT
X1IsIGJ1dCBpdCBpcyBhbHdheXMgPj0gMSBhbmQgPD0gMworI2RlZmluZSBDT05ESVRJT05BTF9E
QVRBX1RSQU5TRkVSNChjb21tYW5kMSwgY29tbWFuZDIsIGJhc2UpIFwKKyAgICBjb21tYW5kMSAi
ICIgUElYRUxfRDAwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgImNt
cCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwgIzIiIE5MIFwKKyAgICBjb21tYW5kMiAiY3MgIiBQ
SVhFTF9TMSAiLCBbIiBiYXNlICJdIiBOTCBcCisgICAgImFkZCAiIGJhc2UgIiwgIiBiYXNlICIs
ICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwg
IzMiIE5MIFwKKyAgICBjb21tYW5kMiAiY3MgIiBQSVhFTF9TMiAiLCBbIiBiYXNlICJdIiBOTCBc
CisgICAgInN1YiAiIGJhc2UgIiwgIiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzEi
IE5MCisKK2FzbSAoIC8vIE5PTElOVAorIi5nbG9ibCAiIFRPU1RSSU5HKG5lb25EcmF3QWxwaGFD
aGFubmVsR2F1c3NpYW5CbHVyKSBOTAorVE9TVFJJTkcobmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVz
c2lhbkJsdXIpICI6IiBOTAorICAgICJzdG1kYiBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIGxyfSIg
TkwKKyAgICAibGRyICIgU1RSSURFX1IgIiwgW3IyLCAjIiBTVFJJREVfT0ZGU0VUICJdIiBOTAor
ICAgICJsZHIgIiBTVFJJREVfV0lEVEhfUiAiLCBbcjIsICMiIFNUUklERV9XSURUSF9PRkZTRVQg
Il0iIE5MCisgICAgImxkciAiIERJU1RBTkNFX0xFRlRfUiAiLCBbcjIsICMiIERJU1RBTkNFX0xF
RlRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBESVNUQU5DRV9SSUdIVF9SICIsIFtyMiwgIyIg
RElTVEFOQ0VfUklHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfTElORV9SICIs
IFtyMiwgIyIgU1RSSURFX0xJTkVfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTT1VSQ0VfTElO
RV9FTkRfUiAiLCBbcjIsICMiIFNUUklERV9MSU5FX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAi
bGRyICIgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SICIsIFtyMiwgIyIgSU5WRVJURURfS0VS
TkVMX1NJWkVfT0ZGU0VUICJdIiBOTAorICAgICJ2bGRyLnUzMiAiIFJFTUFJTklOR19TVFJJREVT
X1MwICIsIFtyMiwgIyIgUkVNQUlOSU5HX1NUUklERVNfT0ZGU0VUICJdIiBOTAorCisgICAgLy8g
SW5pdGlhbGl6ZSBsb2NhbHMuCisgICAgIm11bCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIERJU1RB
TkNFX0xFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgIm11bCAiIERJU1RBTkNFX1JJR0hUX1Ig
IiwgIiBESVNUQU5DRV9SSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAibW92ICIgTUFYX0tF
Uk5FTF9TSVpFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisgICAgImNtcCAiIE1BWF9LRVJO
RUxfU0laRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAibW92Y3MgIiBNQVhfS0VSTkVM
X1NJWkVfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9MSU5FX0VO
RF9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJ2ZHVwLmYz
MiAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgIiwgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpF
X1IgTkwKKyAgICAiY21wICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAg
ICJiZXEgLmFscGhhQ2hhbm5lbEVhcmx5TGVhdmUiIE5MCisKKyAgICAvLyBQcm9jZXNzaW5nIDQg
c3RyaWRlcyBwYXJhbGxlbGx5LgorCisiLmFscGhhQ2hhbm5lbE1haW5Mb29wOiIgTkwKKworICAg
IC8vIEluaXRpYWxpemUgdGhlIHN1bSB2YXJpYWJsZS4KKyAgICAidm1vdi51MzIgIiBTVU1fUSAi
LCAjMCIgTkwKKyAgICAibW92ICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImFk
ZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIsICIgTUFYX0tFUk5FTF9TSVpFX1IgTkwK
KyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFs
cGhhQ2hhbm5lbEluaXRTdW1Eb25lIiBOTAorIi5hbHBoYUNoYW5uZWxJbml0U3VtOiIgTkwKKyAg
ICBEQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCBJTklUX1NVTV9SKQorICAgICJ2c2hyLnUzMiAi
IFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAi
LCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorICAgICJhZGQgIiBJTklUX1NVTV9SICIsICIgSU5J
VF9TVU1fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VS
Q0VfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxJbml0U3VtIiBOTAorIi5hbHBoYUNo
YW5uZWxJbml0U3VtRG9uZToiIE5MCisKKyAgICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09V
UkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQg
IiBERVNUSU5BVElPTl9FTkRfUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhf
UiBOTAorICAgICJzdWIgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRf
UiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdI
VF9SIE5MCisKKyIuYWxwaGFDaGFubmVsQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAiIFBJ
WEVMX1EgIiwgIiBTVU1fUSBOTAorICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhF
TF9RICIsICIgUElYRUxfUSBOTAorICAgICJ2c2hsLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICMyNCIgTkwKKyAgICBEQVRBX1RSQU5TRkVSNCgidnN0MS51MzIiLCBERVNUSU5BVElPTl9S
KQorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAuYWxwaGFD
aGFubmVsU2tpcExlZnQiIE5MCisgICAgREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgTEVGVF9S
KQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAi
dnN1Yi51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbHBoYUNoYW5u
ZWxTa2lwTGVmdDogIiBOTAorCisgICAgImNtcCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfRU5EX1Ig
TkwKKyAgICAiYmNzIC5hbHBoYUNoYW5uZWxTa2lwUmlnaHQiIE5MCisgICAgREFUQV9UUkFOU0ZF
UjQoInZsZDEudTMyIiwgUklHSFRfUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElY
RUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJ
WEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2tpcFJpZ2h0OiAiIE5MCisKKyAgICAiYWRkICIgREVT
VElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQg
IiBMRUZUX1IgIiwgIiBMRUZUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9S
ICIsICIgUklHSFRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1Ig
IiwgIiBERVNUSU5BVElPTl9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbEJsdXIiIE5M
CisgICAgInN1YiAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURF
X1dJRFRIX1IgTkwKKworICAgICJhZGQgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RS
SURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBE
RVNUSU5BVElPTl9SICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisgICAgImNtcCAi
IFNPVVJDRV9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5u
ZWxNYWluTG9vcCIgTkwKKworICAgIC8vIFByb2Nlc3NpbmcgdGhlIHJlbWFpbmluZyBzdHJpZGVz
ICgwIC0gMykuCisiLmFscGhhQ2hhbm5lbEVhcmx5TGVhdmU6IiBOTAorICAgICJ2bW92LnUzMiAi
IFJFTUFJTklOR19TVFJJREVTX1IgIiwgIiBSRU1BSU5JTkdfU1RSSURFU19TMCBOTAorICAgIC8v
IEVhcmx5IHJldHVybiBmb3IgMCBzdHJpZGVzLgorICAgICJjbXAgIiBSRU1BSU5JTkdfU1RSSURF
U19SICIsICMwIiBOTAorICAgICJsZG1lcWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9IiBO
TAorCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3VtIHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAi
IFNVTV9RICIsICMwIiBOTAorICAgICJtb3YgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwK
KyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJ
WkVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAg
ImJjcyAuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bURvbmUiIE5MCisiLmFscGhhQ2hhbm5lbFNl
Y29uZEluaXRTdW06IiBOTAorICAgIENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQxLnUz
MiIsICJ2bGRyIiwgSU5JVF9TVU1fUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElY
RUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJ
WEVMX1EgTkwKKyAgICAiYWRkICIgSU5JVF9TVU1fUiAiLCAiIElOSVRfU1VNX1IgIiwgIiBTVFJJ
REVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAg
ImJjYyAuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bSIgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25k
SW5pdFN1bURvbmU6IiBOTAorCisgICAgLy8gQmx1cnJpbmcuCisgICAgImFkZCAiIFNPVVJDRV9F
TkRfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgREVT
VElOQVRJT05fRU5EX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwK
KyAgICAic3ViICIgTEVGVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgTkwK
KyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBO
TAorCisiLmFscGhhQ2hhbm5lbFNlY29uZEJsdXI6IiBOTAorICAgICJ2Y3Z0LmYzMi51MzIgIiBQ
SVhFTF9RICIsICIgU1VNX1EgTkwKKyAgICAidm11bC5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxf
USAiLCAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgTkwKKyAgICAidmN2dC51MzIuZjMyICIgUElY
RUxfUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAidnNobC51MzIgIiBQSVhFTF9RICIsICIgUElYRUxf
USAiLCAjMjQiIE5MCisgICAgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZzdDEudTMyIiwg
InZzdHIiLCBERVNUSU5BVElPTl9SKQorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9S
IE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsU2Vjb25kU2tpcExlZnQiIE5MCisgICAgQ09ORElU
SU9OQUxfREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgInZsZHIiLCBMRUZUX1IpCisgICAgInZz
aHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2c3ViLnUzMiAi
IFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNr
aXBMZWZ0OiAiIE5MCisKKyAgICAiY21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAor
ICAgICJiY3MgLmFscGhhQ2hhbm5lbFNlY29uZFNraXBSaWdodCIgTkwKKyAgICBDT05ESVRJT05B
TF9EQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCAidmxkciIsIFJJR0hUX1IpCisgICAgInZzaHIu
dTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUzMiAiIFNV
TV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNraXBS
aWdodDogIiBOTAorCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9S
ICIsICIgU1RSSURFX1IgTkwKKyAgICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBO
TAorICAgICJjbXAgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAg
ICAiYmNjIC5hbHBoYUNoYW5uZWxTZWNvbmRCbHVyIiBOTAorCisgICAgImxkbWlhIHNwISwge3I0
LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorKTsgLy8gTk9MSU5UCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVz
c2lhbkJsdXJORU9OLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42NTc2ZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmgKQEAgLTAsMCArMSw1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29w
eXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUdhdXNzaWFu
Qmx1ck5FT05faAorI2RlZmluZSBGRUdhdXNzaWFuQmx1ck5FT05faAorCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JO
ZW9uIHsKKyAgICBpbnQgc3RyaWRlOworICAgIGludCBzdHJpZGVXaWR0aDsKKyAgICBpbnQgc3Ry
aWRlTGluZTsKKyAgICBpbnQgc3RyaWRlTGluZVdpZHRoOworICAgIGludCByZW1haW5pbmdTdHJp
ZGVzOworICAgIGludCBkaXN0YW5jZUxlZnQ7CisgICAgaW50IGRpc3RhbmNlUmlnaHQ7CisgICAg
ZmxvYXQgaW52ZXJ0ZWRLZXJuZWxTaXplOworICAgIHVuc2lnbmVkIGNoYXIqIHBhaW50aW5nQ29u
c3RhbnRzOworfTsKKwordW5zaWduZWQgY2hhciogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JO
ZW9uKCk7CisKK2V4dGVybiAiQyIgewordm9pZCBuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lhbkJs
dXIodW5zaWduZWQgY2hhciogc291cmNlLCB1bnNpZ25lZCBjaGFyKiBkZXN0aW5hdGlvbiwgRkVH
YXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uKik7Cit2b2lkIG5lb25EcmF3QWxwaGFDaGFu
bmVsR2F1c3NpYW5CbHVyKHVuc2lnbmVkIGNoYXIqIHNvdXJjZSwgdW5zaWduZWQgY2hhciogZGVz
dGluYXRpb24sIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiopOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05FT04pICYmIENPTVBJTEVS
KEdDQykKKworI2VuZGlmIC8vIEZFR2F1c3NpYW5CbHVyTkVPTl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTkVPTi5jcHAKaW5kZXggMzgwN2YxZi4uNGY2ODU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRp
bmdORU9OLmNwcApAQCAtMjksMTQgKzI5LDE0IEBACiAKICNpZiBDUFUoQVJNX05FT04pICYmIENP
TVBJTEVSKEdDQykKIAotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQWxp
Z25tZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhlc2UgY29uc3RhbnRzIGFy
ZSBjb3BpZWQgdG8gdGhlIGZvbGxvd2luZyBTSU1EIHJlZ2lzdGVyczoKIC8vICAgQUxQSEFYX1Eg
QUxQSEFZX1EgUkVNQVBYX0QgUkVNQVBZX0QKIAotV1RGX0FMSUdORUQoc2hvcnQsIHNfRkVMaWdo
dGluZ0NvbnN0YW50c0Zvck5lb25bXSwgMTYpID0geworc3RhdGljIFdURl9BTElHTkVEKHNob3J0
LCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsKICAgICAvLyBBbHBoYSBj
b2VmZmljaWVudHMuCiAgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKICAgICAwLCAtMSwg
LTIsIC0xLCAwLCAxLCAyLCAxLApAQCAtNjAsNyArNjAsNyBAQCBzaG9ydCogZmVMaWdodGluZ0Nv
bnN0YW50c0Zvck5lb24oKQogI2RlZmluZSBTUEVDVUxBUl9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJ
TkcoMTYpCiAjZGVmaW5lIENPTkVfRVhQT05FTlRfT0ZGU0VUIFRPU1RSSU5HKDIwKQogI2RlZmlu
ZSBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUIFRPU1RSSU5HKDI0KQotI2RlZmluZSBEUkFXSU5HX0NP
TlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5lIFBBSU5USU5HX0NPTlNUQU5UU19P
RkZTRVQgVE9TVFJJTkcoMjgpCiAjZGVmaW5lIE5MICJcbiIKIAogLy8gUmVnaXN0ZXIgYWxsb2Nh
dGlvbgpAQCAtMjE5LDcgKzIxOSw3IEBAIFRPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBO
TAogCiAgICAgLy8gVGhlIGZvbGxvd2luZyB0d28gYXJndW1lbnRzIGFyZSBsb2FkZWQgdG8gU0lN
RCByZWdpc3RlcnMuCiAgICAgImxkciByMCwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIEZMT0FU
X0FSR1VNRU5UU19PRkZTRVQgIl0iIE5MCi0gICAgImxkciByMSwgWyIgUEFJTlRJTkdfREFUQV9S
ICIsICMiIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIxLCBbIiBQ
QUlOVElOR19EQVRBX1IgIiwgIyIgUEFJTlRJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKICAg
ICAibGRyICIgUElYRUxTX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFBJWEVMU19PRkZT
RVQgIl0iIE5MCiAgICAgImxkciAiIFdJRFRIX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMi
IFdJRFRIX09GRlNFVCAiXSIgTkwKICAgICAibGRyICIgSEVJR0hUX1IgIiwgWyIgUEFJTlRJTkdf
REFUQV9SICIsICMiIEhFSUdIVF9PRkZTRVQgIl0iIE5MCkBAIC0yNDYsNyArMjQ2LDcgQEAgVE9T
VFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCiAgICAgInZtb3YuZjMyICIgU1BPVF9DT0xP
Ul9RICIsICIgQ09MT1JfUSBOTAogICAgICJtb3YgIiBSRVNFVF9XSURUSF9SICIsICIgV0lEVEhf
UiBOTAogCi0iLm1haW5sb29wOiIgTkwKKyIubWFpbkxvb3A6IiBOTAogICAgICJtb3YgcjMsICMz
IiBOTAogICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCiAK
QEAgLTQxNyw3ICs0MTcsNyBAQCBUT1NUUklORyhuZW9uRHJhd0xpZ2h0aW5nKSAiOiIgTkwKICAg
ICAidmFkZC5mMzIgIiBQT1NJVElPTl9ZX1MgIiwgIiBDT05TVF9PTkVfUyBOTAogICAgICJtb3Yg
IiBXSURUSF9SICIsICIgUkVTRVRfV0lEVEhfUiBOTAogICAgICJzdWJzICIgSEVJR0hUX1IgIiwg
IiBIRUlHSFRfUiAiLCAjMSIgTkwKLSAgICAiYm5lIC5tYWlubG9vcCIgTkwKKyAgICAiYm5lIC5t
YWluTG9vcCIgTkwKIAogICAgIC8vIFJldHVybi4KICAgICAidmxkbWlhIHNwISwge2Q4LWQxNX0i
IE5MCi0tIAoxLjYuNQoK
</data>
<flag name="review"
          id="83866"
          type_id="1"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91248</attachid>
            <date>2011-04-27 00:44:06 -0700</date>
            <delta_ts>2011-04-27 04:15:09 -0700</delta_ts>
            <desc>clever patch</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>34344</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA5MGFiNzNmOWE3MmNjMjNjMzU0NjA5OTBlM2VhOWRlODExZmRhZTIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBXZWQsIDI3IEFwciAyMDExIDA5OjM5OjE5ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDI1ICsrCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtICAg
ICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgIDE2ICsKIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCAgIHwgICA3OSArKy0tLQogLi4uL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCAgICAgfCAgIDM0ICsrCiAuLi4vcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCAgICAgICB8ICAgIDIgKy0KIC4u
Li9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwICAgIHwgIDM0MyAr
KysrKysrKysrKysrKysrKysrKwogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5C
bHVyTkVPTi5oICAgICAgfCAgMTE2ICsrKysrKysKIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUxpZ2h0aW5nTkVPTi5jcHAgICAgICAgIHwgICAxMiArLQogMTEgZmlsZXMgY2hhbmdlZCwgNTg0
IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVP
Ti5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzA3NTVl
Li5lYTU3MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMjYgIFpvbHRh
biBIZXJjemVnICA8emhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXppbmcgZ2F1c3NpYW4gYmx1ciBm
aWx0ZXIgdG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NDQ3CisKKyAgICAgICAgVGhpcyBwYXRj
aCBjb250YWlucyB0d28gc3ViLXJvdXRpbmVzLCBvbmUgZm9yIHNwZWVkaW5nIHVwCisgICAgICAg
IGFscGhhIGNoYW5uZWwgb25seSBnYXVzc2lhbiBibHVyIChieSAyLjUgdGltZXMpIGFuZCBvbmUK
KyAgICAgICAgZm9yIHNwZWVkaW5nIHVwIGFsbCBjaGFubmVsIGJsdXIgKGJ5IDQgdGltZXMpLgor
CisgICAgICAgIEFuZCBhIGZldyB0eXBvIGZpeGVzIGZvciB0aGUgbmVvbml6ZWQgbGlnaHRpbmcg
ZmlsdGVyLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmFwcGx5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V1RGX0FMSUdORUQpOgorICAgICAgICAoV2ViQ29yZTo6ZmVHYXVz
c2lhbkJsdXJDb25zdGFudHNGb3JOZW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V1RGX0FMSUdORUQpOgorCiAyMDExLTA0LTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
ODQ4NjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1ZDJmNjZlLi5lMzljMjBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIzOTcsNiArMjM5NywxMCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVy
TkVPTi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUxpZ2h0aW5nTkVPTi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UG9pbnQzRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWFjOTg2Ny4uN2IyMGVmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtNDE1MSw2ICs0MTUxLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVP
Ti5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1
c3NpYW5CbHVyTkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlw
ZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCmluZGV4IDA2ZDhmNGEuLjY5YWZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xOTQ2LDYg
KzE5NDYsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhp
Yy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5o
IFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04u
aCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFk
LmggXApAQCAtMzA4MCw3ICszMDgxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRF
UlM9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJj
ZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNw
cCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAg
XAotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5j
cHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
Y3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJs
dXJORU9OLmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUFUSE1MPTEpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNGFjMzhm
YS4uNjA0OGYwNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTI5NDkxLDYgKzI5NDkxLDIyIEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcU3BvdExpZ2h0U291cmNlLmgiCiAJCQkJCQk+CiAJCQkJ
CTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcZmlsdGVyc1xhcm1cRkVHYXVzc2lhbkJsdXJORU9OLmNwcCIKKwkJCQkJCT4KKwkJCQkJ
PC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xmaWx0ZXJzXGFybVxGRUdhdXNzaWFuQmx1ck5FT04uaCIKKwkJCQkJCT4KKwkJCQkJPC9G
aWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xmaWx0ZXJzXGFybVxGRUxpZ2h0aW5nTkVPTi5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4K
KwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmls
dGVyc1xhcm1cRkVMaWdodGluZ05FT04uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCTwv
RmlsdGVyPgogCQkJCTxGaWx0ZXIKIAkJCQkJTmFtZT0iY2EiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3Bw
CmluZGV4IDkyOTY4MjguLmQ0Nzc3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiRkVHYXVzc2lhbkJsdXIuaCIKIAogI2luY2x1ZGUgIkZpbHRl
ci5oIgorI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyTkVPTi5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNsdWRlICJUZXh0
U3RyZWFtLmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKwogdXNpbmcgc3RkOjptYXg7CiAKIHN0YXRp
YyBjb25zdCBmbG9hdCBnR2F1c3NpYW5LZXJuZWxGYWN0b3IgPSAzIC8gNC5mICogc3FydGYoMiAq
IHBpRmxvYXQpOwpAQCAtMTAxLDM0ICsxMDMsNDQgQEAgaW5saW5lIHZvaWQgYm94Qmx1cihCeXRl
QXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogZHN0UGl4ZWxBcnJheSwKICAgICB9CiB9
CiAKLWlubGluZSB2b2lkIGtlcm5lbFBvc2l0aW9uKGludCBib3hCbHVyLCB1bnNpZ25lZCYgc3Rk
LCBpbnQmIGRMZWZ0LCBpbnQmIGRSaWdodCkKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5CbHVyOjpw
bGF0Zm9ybUFwcGx5R2VuZXJpYyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSog
dG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZ
LCBJbnRTaXplJiBwYWludFNpemUpCiB7Ci0gICAgLy8gY2hlY2sgaHR0cDovL3d3dy53My5vcmcv
VFIvU1ZHL2ZpbHRlcnMuaHRtbCNmZUdhdXNzaWFuQmx1ckVsZW1lbnQgZm9yIGRldGFpbHMKLSAg
ICBzd2l0Y2ggKGJveEJsdXIpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGlmICghKHN0ZCAlIDIp
KSB7Ci0gICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDIgLSAxOwotICAgICAgICAgICAgZFJpZ2h0
ID0gc3RkIC0gZExlZnQ7CisgICAgaW50IHN0cmlkZSA9IDQgKiBwYWludFNpemUud2lkdGgoKTsK
KyAgICBpbnQgZHhMZWZ0ID0gMDsKKyAgICBpbnQgZHhSaWdodCA9IDA7CisgICAgaW50IGR5TGVm
dCA9IDA7CisgICAgaW50IGR5UmlnaHQgPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsg
KytpKSB7CisgICAgICAgIGlmIChrZXJuZWxTaXplWCkgeworICAgICAgICAgICAga2VybmVsUG9z
aXRpb24oaSwga2VybmVsU2l6ZVgsIGR4TGVmdCwgZHhSaWdodCk7CisgICAgICAgICAgICBib3hC
bHVyKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBkeExlZnQsIGR4
UmlnaHQsIDQsIHN0cmlkZSwgcGFpbnRTaXplLndpZHRoKCksIHBhaW50U2l6ZS5oZWlnaHQoKSwg
aXNBbHBoYUltYWdlKCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZExlZnQgPSBz
dGQgLyAyOwotICAgICAgICAgICAgZFJpZ2h0ID0gc3RkIC0gZExlZnQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBpZiAoIShzdGQgJSAyKSkgewotICAg
ICAgICAgICAgZExlZnQrKzsKLSAgICAgICAgICAgIGRSaWdodC0tOworICAgICAgICAgICAgQnl0
ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHRtcFBp
eGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1
eFBpeGVsQXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAyOgotICAg
ICAgICBpZiAoIShzdGQgJSAyKSkgewotICAgICAgICAgICAgZFJpZ2h0Kys7Ci0gICAgICAgICAg
ICBzdGQrKzsKKworICAgICAgICBpZiAoa2VybmVsU2l6ZVkpIHsKKyAgICAgICAgICAgIGtlcm5l
bFBvc2l0aW9uKGksIGtlcm5lbFNpemVZLCBkeUxlZnQsIGR5UmlnaHQpOworICAgICAgICAgICAg
Ym94Qmx1cih0bXBQaXhlbEFycmF5LCBzcmNQaXhlbEFycmF5LCBrZXJuZWxTaXplWSwgZHlMZWZ0
LCBkeVJpZ2h0LCBzdHJpZGUsIDQsIHBhaW50U2l6ZS5oZWlnaHQoKSwgcGFpbnRTaXplLndpZHRo
KCksIGlzQWxwaGFJbWFnZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEJ5dGVB
cnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7CisgICAgICAgICAgICB0bXBQaXhl
bEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQ
aXhlbEFycmF5OwogICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAoraW5saW5l
IHZvaWQgRkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHkoQnl0ZUFycmF5KiBzcmNQaXhlbEFy
cmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNp
Z25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKQoreworICAgIC8vIFRoZSBzZWxl
Y3Rpb24gaGVyZSBldmVudHVhbGx5IHNob3VsZCBoYXBwZW4gZHluYW1pY2FsbHkgb24gc29tZSBw
bGF0Zm9ybXMuCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisgICAgcGxhdGZv
cm1BcHBseU5lb24oc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJheSwga2VybmVsU2l6ZVgsIGtl
cm5lbFNpemVZLCBwYWludFNpemUpOworI2Vsc2UKKyAgICBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhz
cmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJuZWxTaXplWCwga2VybmVsU2l6ZVksIHBh
aW50U2l6ZSk7CisjZW5kaWYKK30KKwogdm9pZCBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2Vy
bmVsU2l6ZShGaWx0ZXIqIGZpbHRlciwgdW5zaWduZWQmIGtlcm5lbFNpemVYLCB1bnNpZ25lZCYg
a2VybmVsU2l6ZVksIGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFkpCiB7CiAgICAgc3RkWCA9IGZpbHRl
ci0+YXBwbHlIb3Jpem9udGFsU2NhbGUoc3RkWCk7CkBAIC0xOTMsMzAgKzIwNSw3IEBAIHZvaWQg
RkVHYXVzc2lhbkJsdXI6OmFwcGx5KCkKICAgICBSZWZQdHI8Qnl0ZUFycmF5PiB0bXBJbWFnZURh
dGEgPSBCeXRlQXJyYXk6OmNyZWF0ZShwYWludFNpemUud2lkdGgoKSAqIHBhaW50U2l6ZS5oZWln
aHQoKSAqIDQpOwogICAgIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSA9IHRtcEltYWdlRGF0YS5n
ZXQoKTsKIAotICAgIGludCBzdHJpZGUgPSA0ICogcGFpbnRTaXplLndpZHRoKCk7Ci0gICAgaW50
IGR4TGVmdCA9IDA7Ci0gICAgaW50IGR4UmlnaHQgPSAwOwotICAgIGludCBkeUxlZnQgPSAwOwot
ICAgIGludCBkeVJpZ2h0ID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgewot
ICAgICAgICBpZiAoa2VybmVsU2l6ZVgpIHsKLSAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGks
IGtlcm5lbFNpemVYLCBkeExlZnQsIGR4UmlnaHQpOwotICAgICAgICAgICAgYm94Qmx1cihzcmNQ
aXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJuZWxTaXplWCwgZHhMZWZ0LCBkeFJpZ2h0LCA0
LCBzdHJpZGUsIHBhaW50U2l6ZS53aWR0aCgpLCBwYWludFNpemUuaGVpZ2h0KCksIGlzQWxwaGFJ
bWFnZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4
ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7Ci0gICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3Jj
UGl4ZWxBcnJheTsKLSAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5Owot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGtlcm5lbFNpemVZKSB7Ci0gICAgICAgICAgICBrZXJu
ZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWSwgZHlMZWZ0LCBkeVJpZ2h0KTsKLSAgICAgICAgICAg
IGJveEJsdXIodG1wUGl4ZWxBcnJheSwgc3JjUGl4ZWxBcnJheSwga2VybmVsU2l6ZVksIGR5TGVm
dCwgZHlSaWdodCwgc3RyaWRlLCA0LCBwYWludFNpemUuaGVpZ2h0KCksIHBhaW50U2l6ZS53aWR0
aCgpLCBpc0FscGhhSW1hZ2UoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCeXRl
QXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFycmF5OwotICAgICAgICAgICAgdG1wUGl4
ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7Ci0gICAgICAgICAgICBzcmNQaXhlbEFycmF5ID0gYXV4
UGl4ZWxBcnJheTsKLSAgICAgICAgfQotICAgIH0KKyAgICBwbGF0Zm9ybUFwcGx5KHNyY1BpeGVs
QXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBrZXJuZWxTaXplWSwgcGFpbnRTaXpl
KTsKIH0KIAogdm9pZCBGRUdhdXNzaWFuQmx1cjo6ZHVtcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKaW5k
ZXggMWQ1OGVmMy4uMTRjNjY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaApAQCAtNDksNiArNDksMTIg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIq
LCB1bnNpZ25lZCYga2VybmVsU2l6ZVgsIHVuc2lnbmVkJiBrZXJuZWxTaXplWSwgZmxvYXQgc3Rk
WCwgZmxvYXQgc3RkWSk7CiAKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQga2VybmVsUG9zaXRpb24o
aW50IGJveEJsdXIsIHVuc2lnbmVkJiBzdGQsIGludCYgZExlZnQsIGludCYgZFJpZ2h0KTsKKyAg
ICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5KEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0
ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2Vy
bmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSk7CisKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9y
bUFwcGx5R2VuZXJpYyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1wUGl4
ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRT
aXplJiBwYWludFNpemUpOworICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlOZW9uKEJ5dGVB
cnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBr
ZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSk7CisK
IHByaXZhdGU6CiAgICAgRkVHYXVzc2lhbkJsdXIoRmlsdGVyKiwgZmxvYXQsIGZsb2F0KTsKIApA
QCAtNTYsNiArNjIsMzQgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3N0ZFk7CiB9OwogCitpbmxp
bmUgdm9pZCBGRUdhdXNzaWFuQmx1cjo6a2VybmVsUG9zaXRpb24oaW50IGJveEJsdXIsIHVuc2ln
bmVkJiBzdGQsIGludCYgZExlZnQsIGludCYgZFJpZ2h0KQoreworICAgIC8vIGNoZWNrIGh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwjZmVHYXVzc2lhbkJsdXJFbGVtZW50IGZv
ciBkZXRhaWxzCisgICAgc3dpdGNoIChib3hCbHVyKSB7CisgICAgY2FzZSAwOgorICAgICAgICBp
ZiAoIShzdGQgJSAyKSkgeworICAgICAgICAgICAgZExlZnQgPSBzdGQgLyAyIC0gMTsKKyAgICAg
ICAgICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZExlZnQgPSBzdGQgLyAyOworICAgICAgICAgICAgZFJpZ2h0ID0gc3RkIC0gZExlZnQ7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAgICBpZiAoIShzdGQg
JSAyKSkgeworICAgICAgICAgICAgZExlZnQrKzsKKyAgICAgICAgICAgIGRSaWdodC0tOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgaWYgKCEoc3RkICUg
MikpIHsKKyAgICAgICAgICAgIGRSaWdodCsrOworICAgICAgICAgICAgc3RkKys7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCmluZGV4IDEzYTY5ZmQuLjE5
YmUzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiAjaWYgQ1BVKEFSTV9O
RU9OKSAmJiBDT01QSUxFUihHQ0MpCiAjaW5jbHVkZSAiRkVMaWdodGluZ05FT04uaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL0FsaWdubWVudC5oPgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMzkwODUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdh
dXNzaWFuQmx1ck5FT04uY3BwCkBAIC0wLDAgKzEsMzQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFu
IEhlcmN6ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5J
VkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRkVHYXVzc2lh
bkJsdXJORU9OLmgiCisKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworI2lu
Y2x1ZGUgPHd0Zi9BbGlnbm1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
V1RGX0FMSUdORUQodW5zaWduZWQgY2hhciwgc19GRUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5l
b25bXSwgMTYpID0geworICAgIC8vIE1hcHBpbmcgZnJvbSBBUk0gdG8gTkVPTiByZWdpc3RlcnMu
CisgICAgMCwgMTYsIDE2LCAxNiwgMSwgIDE2LCAxNiwgMTYsIDIsICAxNiwgMTYsIDE2LCAzLCAg
MTYsIDE2LCAxNiwKKyAgICAvLyBNYXBwaW5nIGZyb20gTkVPTiB0byBBUk0gcmVnaXN0ZXJzLgor
ICAgIDAsIDQsICA4LCAgMTIsIDE2LCAxNiwgMTYsIDE2Cit9OworCit1bnNpZ25lZCBjaGFyKiBm
ZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24oKQoreworICAgIHJldHVybiBzX0ZFR2F1c3Np
YW5CbHVyQ29uc3RhbnRzRm9yTmVvbjsKK30KKworI2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIK
KyNkZWZpbmUgVE9TVFJJTkcodmFsdWUpIEFTU1RSSU5HKHZhbHVlKQorCisjZGVmaW5lIFNUUklE
RV9PRkZTRVQgVE9TVFJJTkcoMCkKKyNkZWZpbmUgU1RSSURFX1dJRFRIX09GRlNFVCBUT1NUUklO
Ryg0KQorI2RlZmluZSBTVFJJREVfTElORV9PRkZTRVQgVE9TVFJJTkcoOCkKKyNkZWZpbmUgU1RS
SURFX0xJTkVfV0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDEyKQorI2RlZmluZSBSRU1BSU5JTkdfU1RS
SURFU19PRkZTRVQgVE9TVFJJTkcoMTYpCisjZGVmaW5lIERJU1RBTkNFX0xFRlRfT0ZGU0VUIFRP
U1RSSU5HKDIwKQorI2RlZmluZSBESVNUQU5DRV9SSUdIVF9PRkZTRVQgVE9TVFJJTkcoMjQpCisj
ZGVmaW5lIElOVkVSVEVEX0tFUk5FTF9TSVpFX09GRlNFVCBUT1NUUklORygyOCkKKyNkZWZpbmUg
UEFJTlRJTkdfQ09OU1RBTlRTX09GRlNFVCBUT1NUUklORygzMikKKyNkZWZpbmUgTkwgIlxuIgor
CisvLyBSZWdpc3RlciBhbGxvY2F0aW9uLgorI2RlZmluZSBTT1VSQ0VfUiAgICAgICAgICAgICAg
ICAicjAiCisjZGVmaW5lIERFU1RJTkFUSU9OX1IgICAgICAgICAgICJyMSIKKyNkZWZpbmUgTEVG
VF9SICAgICAgICAgICAgICAgICAgInIyIgorI2RlZmluZSBSSUdIVF9SICAgICAgICAgICAgICAg
ICAicjMiCisjZGVmaW5lIFNPVVJDRV9FTkRfUiAgICAgICAgICAgICJyNCIKKyNkZWZpbmUgREVT
VElOQVRJT05fRU5EX1IgICAgICAgInI1IgorI2RlZmluZSBTVFJJREVfUiAgICAgICAgICAgICAg
ICAicjYiCisjZGVmaW5lIFNUUklERV9XSURUSF9SICAgICAgICAgICJyNyIKKyNkZWZpbmUgU1RS
SURFX0xJTkVfUiAgICAgICAgICAgInI4IgorI2RlZmluZSBTT1VSQ0VfTElORV9FTkRfUiAgICAg
ICAicjEwIgorI2RlZmluZSBESVNUQU5DRV9MRUZUX1IgICAgICAgICAicjExIgorI2RlZmluZSBE
SVNUQU5DRV9SSUdIVF9SICAgICAgICAicjEyIgorI2RlZmluZSBNQVhfS0VSTkVMX1NJWkVfUiAg
ICAgICAibHIiCisKKy8vIEFsdGVybmF0ZSBuYW1lcy4KKyNkZWZpbmUgSU5JVF9JTlZFUlRFRF9L
RVJORUxfU0laRV9SIFNPVVJDRV9FTkRfUgorI2RlZmluZSBJTklUX1BBSU5USU5HX0NPTlNUQU5U
U19SIERFU1RJTkFUSU9OX0VORF9SCisjZGVmaW5lIElOSVRfU1VNX1IgTEVGVF9SCisjZGVmaW5l
IFJFTUFJTklOR19TVFJJREVTX1IgU09VUkNFX0xJTkVfRU5EX1IKKworI2RlZmluZSBJTlZFUlRF
RF9LRVJORUxfU0laRV9RICAicTAiCisjZGVmaW5lIFNVTV9RICAgICAgICAgICAgICAgICAgICJx
MSIKKyNkZWZpbmUgUElYRUxfUSAgICAgICAgICAgICAgICAgInEyIgorI2RlZmluZSBQSVhFTF9E
MCAgICAgICAgICAgICAgICAiZDQiCisjZGVmaW5lIFBJWEVMX0QxICAgICAgICAgICAgICAgICJk
NSIKKyNkZWZpbmUgUElYRUxfRDAwICAgICAgICAgICAgICAgImQ0WzBdIgorI2RlZmluZSBQSVhF
TF9EMDEgICAgICAgICAgICAgICAiZDRbMV0iCisjZGVmaW5lIFBJWEVMX1MxICAgICAgICAgICAg
ICAgICJzOSIKKyNkZWZpbmUgUElYRUxfRDEwICAgICAgICAgICAgICAgImQ1WzBdIgorI2RlZmlu
ZSBQSVhFTF9TMiAgICAgICAgICAgICAgICAiczEwIgorI2RlZmluZSBQSVhFTF9EMTEgICAgICAg
ICAgICAgICAiZDVbMV0iCisjZGVmaW5lIFJFTUFJTklOR19TVFJJREVTX1MwICAgICJzMTIiCisK
KyNkZWZpbmUgUkVBRF9SQU5HRSAgICAgICAgICAgICAgImQxNi1kMTgiCisjZGVmaW5lIFJFTUFQ
X0FSTV9ORU9OMV9RICAgICAgICJkMTYiCisjZGVmaW5lIFJFTUFQX0FSTV9ORU9OMl9RICAgICAg
ICJkMTciCisjZGVmaW5lIFJFTUFQX05FT05fQVJNX1EgICAgICAgICJkMTgiCisKK2FzbSAoIC8v
IE5PTElOVAorIi5nbG9ibCAiIFRPU1RSSU5HKG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFuQmx1
cikgTkwKK1RPU1RSSU5HKG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFuQmx1cikgIjoiIE5MCisg
ICAgInN0bWRiIHNwISwge3I0LXI4LCByMTAsIHIxMSwgbHJ9IiBOTAorICAgICJsZHIgIiBTVFJJ
REVfUiAiLCBbcjIsICMiIFNUUklERV9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNUUklERV9X
SURUSF9SICIsIFtyMiwgIyIgU1RSSURFX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIg
RElTVEFOQ0VfTEVGVF9SICIsIFtyMiwgIyIgRElTVEFOQ0VfTEVGVF9PRkZTRVQgIl0iIE5MCisg
ICAgImxkciAiIERJU1RBTkNFX1JJR0hUX1IgIiwgW3IyLCAjIiBESVNUQU5DRV9SSUdIVF9PRkZT
RVQgIl0iIE5MCisgICAgImxkciAiIFNUUklERV9MSU5FX1IgIiwgW3IyLCAjIiBTVFJJREVfTElO
RV9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNPVVJDRV9MSU5FX0VORF9SICIsIFtyMiwgIyIg
U1RSSURFX0xJTkVfV0lEVEhfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBJTklUX0lOVkVSVEVE
X0tFUk5FTF9TSVpFX1IgIiwgW3IyLCAjIiBJTlZFUlRFRF9LRVJORUxfU0laRV9PRkZTRVQgIl0i
IE5MCisgICAgImxkciAiIElOSVRfUEFJTlRJTkdfQ09OU1RBTlRTX1IgIiwgW3IyLCAjIiBQQUlO
VElOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSBsb2NhbHMu
CisgICAgIm11bCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIFNU
UklERV9SIE5MCisgICAgIm11bCAiIERJU1RBTkNFX1JJR0hUX1IgIiwgIiBESVNUQU5DRV9SSUdI
VF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAibW92ICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBE
SVNUQU5DRV9SSUdIVF9SIE5MCisgICAgImNtcCAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgU1RS
SURFX1dJRFRIX1IgTkwKKyAgICAibW92Y3MgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklE
RV9XSURUSF9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9MSU5FX0VORF9SICIsICIgU09VUkNFX0xJ
TkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJ2ZHVwLmYzMiAiIElOVkVSVEVEX0tFUk5F
TF9TSVpFX1EgIiwgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAidmxkMS5m
MzIgeyAiIFJFQURfUkFOR0UgIiB9LCBbIiBJTklUX1BBSU5USU5HX0NPTlNUQU5UU19SICJdISIg
TkwKKworIi5hbGxDaGFubmVsTWFpbkxvb3A6IiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUg
c3VtIHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAiIFNVTV9RICIsICMwIiBOTAorICAgICJtb3Yg
IiBJTklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIs
ICIgU09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJWkVfUiBOTAorICAgICJjbXAgIiBJTklUX1NV
TV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAuYWxsQ2hhbm5lbEluaXRTdW1Eb25l
IiBOTAorIi5hbGxDaGFubmVsSW5pdFN1bToiIE5MCisgICAgInZsZDEudTMyICIgUElYRUxfRDAw
ICIsIFsiIElOSVRfU1VNX1IgIl0sICIgU1RSSURFX1IgTkwKKyAgICAidnRibC44ICIgUElYRUxf
RDEgIiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRibC44
ICIgUElYRUxfRDAgIiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwKKyAg
ICAidmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorICAgICJjbXAg
IiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbElu
aXRTdW0iIE5MCisiLmFsbENoYW5uZWxJbml0U3VtRG9uZToiIE5MCisKKyAgICAvLyBCbHVycmlu
Zy4KKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfV0lE
VEhfUiBOTAorICAgICJhZGQgIiBERVNUSU5BVElPTl9FTkRfUiAiLCAiIERFU1RJTkFUSU9OX1Ig
IiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJzdWIgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiAi
LCAiIERJU1RBTkNFX0xFRlRfUiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgU09VUkNFX1Ig
IiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisKKyIuYWxsQ2hhbm5lbEJsdXI6IiBOTAorICAgICJ2
Y3Z0LmYzMi51MzIgIiBQSVhFTF9RICIsICIgU1VNX1EgTkwKKyAgICAidm11bC5mMzIgIiBQSVhF
TF9RICIsICIgUElYRUxfUSAiLCAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgTkwKKyAgICAidmN2
dC51MzIuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAidnRibC44ICIgUElYRUxf
RDAgIiwgeyIgUElYRUxfRDAgIi0iIFBJWEVMX0QxICJ9LCAiIFJFTUFQX05FT05fQVJNX1EgTkwK
KyAgICAidnN0MS51MzIgIiBQSVhFTF9EMDAgIiwgWyIgREVTVElOQVRJT05fUiAiXSwgIiBTVFJJ
REVfUiBOTAorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAu
YWxsQ2hhbm5lbFNraXBMZWZ0IiBOTAorICAgICJ2bGQxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBM
RUZUX1IgIl0iIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QxICIsIHsiIFBJWEVMX0QwICJ9LCAi
IFJFTUFQX0FSTV9ORU9OMl9RIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVM
X0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMV9RIE5MCisgICAgInZzdWIudTMyICIgU1VNX1EgIiwg
IiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyIuYWxsQ2hhbm5lbFNraXBMZWZ0OiAiIE5MCisKKyAg
ICAiY21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFsbENoYW5u
ZWxTa2lwUmlnaHQiIE5MCisgICAgInZsZDEudTMyICIgUElYRUxfRDAwICIsIFsiIFJJR0hUX1Ig
Il0iIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QxICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQ
X0FSTV9ORU9OMl9RIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVMX0QwICJ9
LCAiIFJFTUFQX0FSTV9ORU9OMV9RIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1f
USAiLCAiIFBJWEVMX1EgTkwKKyIuYWxsQ2hhbm5lbFNraXBSaWdodDogIiBOTAorCisgICAgImFk
ZCAiIExFRlRfUiAiLCAiIExFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIFJJR0hU
X1IgIiwgIiBSSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiY21wICIgREVTVElOQVRJT05f
UiAiLCAiIERFU1RJTkFUSU9OX0VORF9SIE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbEJsdXIiIE5M
CisgICAgInN1YiAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURF
X1dJRFRIX1IgTkwKKworICAgICJhZGQgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RS
SURFX0xJTkVfUiBOTAorICAgICJhZGQgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05f
UiAiLCAiIFNUUklERV9MSU5FX1IgTkwKKyAgICAiY21wICIgU09VUkNFX1IgIiwgIiBTT1VSQ0Vf
TElORV9FTkRfUiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxNYWluTG9vcCIgTkwKKworICAgICJs
ZG1pYSBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIHBjfSIgTkwKKyk7IC8vIE5PTElOVAorCisjZGVm
aW5lIERBVEFfVFJBTlNGRVI0KGNvbW1hbmQsIGJhc2UpIFwKKyAgICBjb21tYW5kICIgIiBQSVhF
TF9EMDAgIiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICBjb21tYW5kICIg
IiBQSVhFTF9EMDEgIiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICBjb21t
YW5kICIgIiBQSVhFTF9EMTAgIiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAg
ICBjb21tYW5kICIgIiBQSVhFTF9EMTEgIiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5M
IFwKKyAgICAic3ViICIgYmFzZSAiLCAiIGJhc2UgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAj
MiIgTkwKKworLy8gVGhlIG51bWJlciBvZiByZWFkcyBkZXBlbmQgb24gUkVNQUlOSU5HX1NUUklE
RVNfUiwgYnV0IGl0IGlzIGFsd2F5cyA+PSAxIGFuZCA8PSAzCisjZGVmaW5lIENPTkRJVElPTkFM
X0RBVEFfVFJBTlNGRVI0KGNvbW1hbmQxLCBjb21tYW5kMiwgYmFzZSkgXAorICAgIGNvbW1hbmQx
ICIgIiBQSVhFTF9EMDAgIiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICAi
Y21wICIgUkVNQUlOSU5HX1NUUklERVNfUiAiLCAjMiIgTkwgXAorICAgIGNvbW1hbmQyICJjcyAi
IFBJWEVMX1MxICIsIFsiIGJhc2UgIl0iIE5MIFwKKyAgICAiYWRkICIgYmFzZSAiLCAiIGJhc2Ug
IiwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICAiY21wICIgUkVNQUlOSU5HX1NUUklERVNfUiAi
LCAjMyIgTkwgXAorICAgIGNvbW1hbmQyICJjcyAiIFBJWEVMX1MyICIsIFsiIGJhc2UgIl0iIE5M
IFwKKyAgICAic3ViICIgYmFzZSAiLCAiIGJhc2UgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAj
MSIgTkwKKworYXNtICggLy8gTk9MSU5UCisiLmdsb2JsICIgVE9TVFJJTkcobmVvbkRyYXdBbHBo
YUNoYW5uZWxHYXVzc2lhbkJsdXIpIE5MCitUT1NUUklORyhuZW9uRHJhd0FscGhhQ2hhbm5lbEdh
dXNzaWFuQmx1cikgIjoiIE5MCisgICAgInN0bWRiIHNwISwge3I0LXI4LCByMTAsIHIxMSwgbHJ9
IiBOTAorICAgICJsZHIgIiBTVFJJREVfUiAiLCBbcjIsICMiIFNUUklERV9PRkZTRVQgIl0iIE5M
CisgICAgImxkciAiIFNUUklERV9XSURUSF9SICIsIFtyMiwgIyIgU1RSSURFX1dJRFRIX09GRlNF
VCAiXSIgTkwKKyAgICAibGRyICIgRElTVEFOQ0VfTEVGVF9SICIsIFtyMiwgIyIgRElTVEFOQ0Vf
TEVGVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIERJU1RBTkNFX1JJR0hUX1IgIiwgW3IyLCAj
IiBESVNUQU5DRV9SSUdIVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNUUklERV9MSU5FX1Ig
IiwgW3IyLCAjIiBTVFJJREVfTElORV9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNPVVJDRV9M
SU5FX0VORF9SICIsIFtyMiwgIyIgU1RSSURFX0xJTkVfV0lEVEhfT0ZGU0VUICJdIiBOTAorICAg
ICJsZHIgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpFX1IgIiwgW3IyLCAjIiBJTlZFUlRFRF9L
RVJORUxfU0laRV9PRkZTRVQgIl0iIE5MCisgICAgInZsZHIudTMyICIgUkVNQUlOSU5HX1NUUklE
RVNfUzAgIiwgW3IyLCAjIiBSRU1BSU5JTkdfU1RSSURFU19PRkZTRVQgIl0iIE5MCisKKyAgICAv
LyBJbml0aWFsaXplIGxvY2Fscy4KKyAgICAibXVsICIgRElTVEFOQ0VfTEVGVF9SICIsICIgRElT
VEFOQ0VfTEVGVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAibXVsICIgRElTVEFOQ0VfUklHSFRf
UiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJtb3YgIiBNQVhf
S0VSTkVMX1NJWkVfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKyAgICAiY21wICIgTUFYX0tF
Uk5FTF9TSVpFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJtb3ZjcyAiIE1BWF9LRVJO
RUxfU0laRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0xJTkVf
RU5EX1IgIiwgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgInZkdXAu
ZjMyICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSAiLCAiIElOSVRfSU5WRVJURURfS0VSTkVMX1NJ
WkVfUiBOTAorICAgICJjbXAgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9SIE5MCisg
ICAgImJlcSAuYWxwaGFDaGFubmVsRWFybHlMZWF2ZSIgTkwKKworICAgIC8vIFByb2Nlc3Npbmcg
NCBzdHJpZGVzIHBhcmFsbGVsbHkuCisKKyIuYWxwaGFDaGFubmVsTWFpbkxvb3A6IiBOTAorCisg
ICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3VtIHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAiIFNVTV9R
ICIsICMwIiBOTAorICAgICJtb3YgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwKKyAgICAi
YWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJWkVfUiBO
TAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAu
YWxwaGFDaGFubmVsSW5pdFN1bURvbmUiIE5MCisiLmFscGhhQ2hhbm5lbEluaXRTdW06IiBOTAor
ICAgIERBVEFfVFJBTlNGRVI0KCJ2bGQxLnUzMiIsIElOSVRfU1VNX1IpCisgICAgInZzaHIudTMy
ICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9R
ICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisgICAgImFkZCAiIElOSVRfU1VNX1IgIiwgIiBJ
TklUX1NVTV9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNP
VVJDRV9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbEluaXRTdW0iIE5MCisiLmFscGhh
Q2hhbm5lbEluaXRTdW1Eb25lOiIgTkwKKworICAgIC8vIEJsdXJyaW5nLgorICAgICJhZGQgIiBT
T1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFk
ZCAiIERFU1RJTkFUSU9OX0VORF9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9XSURU
SF9SIE5MCisgICAgInN1YiAiIExFRlRfUiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfTEVG
VF9SIE5MCisgICAgImFkZCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX1JJ
R0hUX1IgTkwKKworIi5hbHBoYUNoYW5uZWxCbHVyOiIgTkwKKyAgICAidmN2dC5mMzIudTMyICIg
UElYRUxfUSAiLCAiIFNVTV9RIE5MCisgICAgInZtdWwuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVM
X1EgIiwgIiBJTlZFUlRFRF9LRVJORUxfU0laRV9RIE5MCisgICAgInZjdnQudTMyLmYzMiAiIFBJ
WEVMX1EgIiwgIiBQSVhFTF9RIE5MCisgICAgInZzaGwudTMyICIgUElYRUxfUSAiLCAiIFBJWEVM
X1EgIiwgIzI0IiBOTAorICAgIERBVEFfVFJBTlNGRVI0KCJ2c3QxLnUzMiIsIERFU1RJTkFUSU9O
X1IpCisKKyAgICAiY21wICIgTEVGVF9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYmNjIC5hbHBo
YUNoYW5uZWxTa2lwTGVmdCIgTkwKKyAgICBEQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCBMRUZU
X1IpCisgICAgInZzaHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAg
ICJ2c3ViLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hh
bm5lbFNraXBMZWZ0OiAiIE5MCisKKyAgICAiY21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRf
UiBOTAorICAgICJiY3MgLmFscGhhQ2hhbm5lbFNraXBSaWdodCIgTkwKKyAgICBEQVRBX1RSQU5T
RkVSNCgidmxkMS51MzIiLCBSSUdIVF9SKQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQ
SVhFTF9RICIsICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIg
UElYRUxfUSBOTAorIi5hbHBoYUNoYW5uZWxTa2lwUmlnaHQ6ICIgTkwKKworICAgICJhZGQgIiBE
RVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFk
ZCAiIExFRlRfUiAiLCAiIExFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIFJJR0hU
X1IgIiwgIiBSSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiY21wICIgREVTVElOQVRJT05f
UiAiLCAiIERFU1RJTkFUSU9OX0VORF9SIE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsQmx1ciIg
TkwKKyAgICAic3ViICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJ
REVfV0lEVEhfUiBOTAorCisgICAgImFkZCAiIFNPVVJDRV9SICIsICIgU09VUkNFX1IgIiwgIiBT
VFJJREVfTElORV9SICIsIGxzbCAjMiIgTkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fUiAiLCAi
IERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAjMiIgTkwKKyAgICAiY21w
ICIgU09VUkNFX1IgIiwgIiBTT1VSQ0VfTElORV9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hh
bm5lbE1haW5Mb29wIiBOTAorCisgICAgLy8gUHJvY2Vzc2luZyB0aGUgcmVtYWluaW5nIHN0cmlk
ZXMgKDAgLSAzKS4KKyIuYWxwaGFDaGFubmVsRWFybHlMZWF2ZToiIE5MCisgICAgInZtb3YudTMy
ICIgUkVNQUlOSU5HX1NUUklERVNfUiAiLCAiIFJFTUFJTklOR19TVFJJREVTX1MwIE5MCisgICAg
Ly8gRWFybHkgcmV0dXJuIGZvciAwIHN0cmlkZXMuCisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJ
REVTX1IgIiwgIzAiIE5MCisgICAgImxkbWVxaWEgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBwY30i
IE5MCisKKyAgICAvLyBJbml0aWFsaXplIHRoZSBzdW0gdmFyaWFibGUuCisgICAgInZtb3YudTMy
ICIgU1VNX1EgIiwgIzAiIE5MCisgICAgIm1vdiAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfUiBO
TAorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIE1BWF9LRVJORUxf
U0laRV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAg
ICAiYmNzIC5hbHBoYUNoYW5uZWxTZWNvbmRJbml0U3VtRG9uZSIgTkwKKyIuYWxwaGFDaGFubmVs
U2Vjb25kSW5pdFN1bToiIE5MCisgICAgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZsZDEu
dTMyIiwgInZsZHIiLCBJTklUX1NVTV9SKQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQ
SVhFTF9RICIsICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIg
UElYRUxfUSBOTAorICAgICJhZGQgIiBJTklUX1NVTV9SICIsICIgSU5JVF9TVU1fUiAiLCAiIFNU
UklERV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAg
ICAiYmNjIC5hbHBoYUNoYW5uZWxTZWNvbmRJbml0U3VtIiBOTAorIi5hbHBoYUNoYW5uZWxTZWNv
bmRJbml0U3VtRG9uZToiIE5MCisKKyAgICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09VUkNF
X0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQgIiBE
RVNUSU5BVElPTl9FTkRfUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBO
TAorICAgICJzdWIgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiBO
TAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9S
IE5MCisKKyIuYWxwaGFDaGFubmVsU2Vjb25kQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAi
IFBJWEVMX1EgIiwgIiBTVU1fUSBOTAorICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhF
TF9RICIsICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQ
SVhFTF9RICIsICIgUElYRUxfUSBOTAorICAgICJ2c2hsLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhF
TF9RICIsICMyNCIgTkwKKyAgICBDT05ESVRJT05BTF9EQVRBX1RSQU5TRkVSNCgidnN0MS51MzIi
LCAidnN0ciIsIERFU1RJTkFUSU9OX1IpCisKKyAgICAiY21wICIgTEVGVF9SICIsICIgU09VUkNF
X1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxTZWNvbmRTa2lwTGVmdCIgTkwKKyAgICBDT05E
SVRJT05BTF9EQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCAidmxkciIsIExFRlRfUikKKyAgICAi
dnNoci51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAgInZzdWIudTMy
ICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25k
U2tpcExlZnQ6ICIgTkwKKworICAgICJjbXAgIiBSSUdIVF9SICIsICIgU09VUkNFX0VORF9SIE5M
CisgICAgImJjcyAuYWxwaGFDaGFubmVsU2Vjb25kU2tpcFJpZ2h0IiBOTAorICAgIENPTkRJVElP
TkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQxLnUzMiIsICJ2bGRyIiwgUklHSFRfUikKKyAgICAidnNo
ci51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIg
U1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25kU2tp
cFJpZ2h0OiAiIE5MCisKKyAgICAiYWRkICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9O
X1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBMRUZUX1IgIiwgIiBMRUZUX1IgIiwgIiBT
VFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgUklHSFRfUiAiLCAiIFNUUklERV9S
IE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9FTkRfUiBOTAor
ICAgICJiY2MgLmFscGhhQ2hhbm5lbFNlY29uZEJsdXIiIE5MCisKKyAgICAibGRtaWEgc3AhLCB7
cjQtcjgsIHIxMCwgcjExLCBwY30iIE5MCispOyAvLyBOT0xJTlQKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdh
dXNzaWFuQmx1ck5FT04uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk2MDM3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaApAQCAtMCwwICsxLDEx
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICog
Q29weXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUdhdXNz
aWFuQmx1ck5FT05faAorI2RlZmluZSBGRUdhdXNzaWFuQmx1ck5FT05faAorCisjaW5jbHVkZSA8
d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKwor
I2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Ry
dWN0IEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiB7CisgICAgaW50IHN0cmlkZTsK
KyAgICBpbnQgc3RyaWRlV2lkdGg7CisgICAgaW50IHN0cmlkZUxpbmU7CisgICAgaW50IHN0cmlk
ZUxpbmVXaWR0aDsKKyAgICBpbnQgcmVtYWluaW5nU3RyaWRlczsKKyAgICBpbnQgZGlzdGFuY2VM
ZWZ0OworICAgIGludCBkaXN0YW5jZVJpZ2h0OworICAgIGZsb2F0IGludmVydGVkS2VybmVsU2l6
ZTsKKyAgICB1bnNpZ25lZCBjaGFyKiBwYWludGluZ0NvbnN0YW50czsKK307CisKK3Vuc2lnbmVk
IGNoYXIqIGZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbigpOworCitleHRlcm4gIkMiIHsK
K3ZvaWQgbmVvbkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKHVuc2lnbmVkIGNoYXIqIHNvdXJj
ZSwgdW5zaWduZWQgY2hhciogZGVzdGluYXRpb24sIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRh
Rm9yTmVvbiopOwordm9pZCBuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cih1bnNpZ25l
ZCBjaGFyKiBzb3VyY2UsIHVuc2lnbmVkIGNoYXIqIGRlc3RpbmF0aW9uLCBGRUdhdXNzaWFuQmx1
clBhaW50aW5nRGF0YUZvck5lb24qKTsKK30KKworaW5saW5lIHZvaWQgRkVHYXVzc2lhbkJsdXI6
OnBsYXRmb3JtQXBwbHlOZW9uKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0
bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVks
IEludFNpemUmIHBhaW50U2l6ZSkKK3sKKyAgICBjb25zdCBpbnQgd2lkdGhNdWx0aXBsaWVkQnlG
b3VyID0gNCAqIHBhaW50U2l6ZS53aWR0aCgpOworICAgIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdE
YXRhRm9yTmVvbiBhcmd1bWVudHNYID0geworICAgICAgICA0LAorICAgICAgICB3aWR0aE11bHRp
cGxpZWRCeUZvdXIsCisgICAgICAgIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgKGlz
QWxwaGFJbWFnZSgpID8gKChwYWludFNpemUuaGVpZ2h0KCkgPj4gMikgPDwgMikgOiBwYWludFNp
emUuaGVpZ2h0KCkpICogd2lkdGhNdWx0aXBsaWVkQnlGb3VyLAorICAgICAgICBpc0FscGhhSW1h
Z2UoKSA/IChwYWludFNpemUuaGVpZ2h0KCkgJiAweDMpIDogMCwKKyAgICAgICAgMCwKKyAgICAg
ICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgaXNBbHBoYUltYWdlKCkgPyAwIDogZmVHYXVzc2lh
bkJsdXJDb25zdGFudHNGb3JOZW9uKCkKKyAgICB9OworICAgIEZFR2F1c3NpYW5CbHVyUGFpbnRp
bmdEYXRhRm9yTmVvbiBhcmd1bWVudHNZID0geworICAgICAgICB3aWR0aE11bHRpcGxpZWRCeUZv
dXIsCisgICAgICAgIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciAqIHBhaW50U2l6ZS5oZWlnaHQoKSwK
KyAgICAgICAgNCwKKyAgICAgICAgKGlzQWxwaGFJbWFnZSgpID8gKChwYWludFNpemUud2lkdGgo
KSA+PiAyKSA8PCAyKSA6IHBhaW50U2l6ZS53aWR0aCgpKSAqIDQsCisgICAgICAgIGlzQWxwaGFJ
bWFnZSgpID8gKHBhaW50U2l6ZS53aWR0aCgpICYgMHgzKSA6IDAsCisgICAgICAgIDAsCisgICAg
ICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIGlzQWxwaGFJbWFnZSgpID8gMCA6IGZlR2F1c3Np
YW5CbHVyQ29uc3RhbnRzRm9yTmVvbigpCisgICAgfTsKKworICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgMzsgKytpKSB7CisgICAgICAgIGlmIChrZXJuZWxTaXplWCkgeworICAgICAgICAgICAga2Vy
bmVsUG9zaXRpb24oaSwga2VybmVsU2l6ZVgsIGFyZ3VtZW50c1guZGlzdGFuY2VMZWZ0LCBhcmd1
bWVudHNYLmRpc3RhbmNlUmlnaHQpOworICAgICAgICAgICAgYXJndW1lbnRzWC5pbnZlcnRlZEtl
cm5lbFNpemUgPSAxIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGtlcm5lbFNpemVYKTsKKyAgICAgICAg
ICAgIGlmIChpc0FscGhhSW1hZ2UoKSkKKyAgICAgICAgICAgICAgICBuZW9uRHJhd0FscGhhQ2hh
bm5lbEdhdXNzaWFuQmx1cihzcmNQaXhlbEFycmF5LT5kYXRhKCksIHRtcFBpeGVsQXJyYXktPmRh
dGEoKSwgJmFyZ3VtZW50c1gpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5l
b25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFuQmx1cihzcmNQaXhlbEFycmF5LT5kYXRhKCksIHRtcFBp
eGVsQXJyYXktPmRhdGEoKSwgJmFyZ3VtZW50c1gpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgQnl0ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAg
ICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxB
cnJheSA9IGF1eFBpeGVsQXJyYXk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoa2VybmVsU2l6
ZVkpIHsKKyAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNpemVZLCBhcmd1bWVu
dHNZLmRpc3RhbmNlTGVmdCwgYXJndW1lbnRzWS5kaXN0YW5jZVJpZ2h0KTsKKyAgICAgICAgICAg
IGFyZ3VtZW50c1kuaW52ZXJ0ZWRLZXJuZWxTaXplID0gMSAvIHN0YXRpY19jYXN0PGZsb2F0Pihr
ZXJuZWxTaXplWSk7CisgICAgICAgICAgICBpZiAoaXNBbHBoYUltYWdlKCkpCisgICAgICAgICAg
ICAgICAgbmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIodG1wUGl4ZWxBcnJheS0+ZGF0
YSgpLCBzcmNQaXhlbEFycmF5LT5kYXRhKCksICZhcmd1bWVudHNZKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIodG1wUGl4
ZWxBcnJheS0+ZGF0YSgpLCBzcmNQaXhlbEFycmF5LT5kYXRhKCksICZhcmd1bWVudHNZKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRt
cFBpeGVsQXJyYXk7CisgICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsK
KyAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OworICAgICAgICB9Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05F
T04pICYmIENPTVBJTEVSKEdDQykKKworI2VuZGlmIC8vIEZFR2F1c3NpYW5CbHVyTkVPTl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUxpZ2h0aW5nTkVPTi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKaW5kZXggMzgwN2YxZi4uNGY2ODU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdo
dGluZ05FT04uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcApAQCAtMjksMTQgKzI5LDE0IEBACiAKICNpZiBDUFUo
QVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKIAotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvQWxpZ25tZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhl
c2UgY29uc3RhbnRzIGFyZSBjb3BpZWQgdG8gdGhlIGZvbGxvd2luZyBTSU1EIHJlZ2lzdGVyczoK
IC8vICAgQUxQSEFYX1EgQUxQSEFZX1EgUkVNQVBYX0QgUkVNQVBZX0QKIAotV1RGX0FMSUdORUQo
c2hvcnQsIHNfRkVMaWdodGluZ0NvbnN0YW50c0Zvck5lb25bXSwgMTYpID0geworc3RhdGljIFdU
Rl9BTElHTkVEKHNob3J0LCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsK
ICAgICAvLyBBbHBoYSBjb2VmZmljaWVudHMuCiAgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAt
MSwKICAgICAwLCAtMSwgLTIsIC0xLCAwLCAxLCAyLCAxLApAQCAtNjAsNyArNjAsNyBAQCBzaG9y
dCogZmVMaWdodGluZ0NvbnN0YW50c0Zvck5lb24oKQogI2RlZmluZSBTUEVDVUxBUl9FWFBPTkVO
VF9PRkZTRVQgVE9TVFJJTkcoMTYpCiAjZGVmaW5lIENPTkVfRVhQT05FTlRfT0ZGU0VUIFRPU1RS
SU5HKDIwKQogI2RlZmluZSBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUIFRPU1RSSU5HKDI0KQotI2Rl
ZmluZSBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5lIFBBSU5U
SU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMjgpCiAjZGVmaW5lIE5MICJcbiIKIAogLy8g
UmVnaXN0ZXIgYWxsb2NhdGlvbgpAQCAtMjE5LDcgKzIxOSw3IEBAIFRPU1RSSU5HKG5lb25EcmF3
TGlnaHRpbmcpICI6IiBOTAogCiAgICAgLy8gVGhlIGZvbGxvd2luZyB0d28gYXJndW1lbnRzIGFy
ZSBsb2FkZWQgdG8gU0lNRCByZWdpc3RlcnMuCiAgICAgImxkciByMCwgWyIgUEFJTlRJTkdfREFU
QV9SICIsICMiIEZMT0FUX0FSR1VNRU5UU19PRkZTRVQgIl0iIE5MCi0gICAgImxkciByMSwgWyIg
UEFJTlRJTkdfREFUQV9SICIsICMiIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKKyAg
ICAibGRyIHIxLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUEFJTlRJTkdfQ09OU1RBTlRTX09G
RlNFVCAiXSIgTkwKICAgICAibGRyICIgUElYRUxTX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIs
ICMiIFBJWEVMU19PRkZTRVQgIl0iIE5MCiAgICAgImxkciAiIFdJRFRIX1IgIiwgWyIgUEFJTlRJ
TkdfREFUQV9SICIsICMiIFdJRFRIX09GRlNFVCAiXSIgTkwKICAgICAibGRyICIgSEVJR0hUX1Ig
IiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIEhFSUdIVF9PRkZTRVQgIl0iIE5MCkBAIC0yNDYs
NyArMjQ2LDcgQEAgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCiAgICAgInZtb3Yu
ZjMyICIgU1BPVF9DT0xPUl9RICIsICIgQ09MT1JfUSBOTAogICAgICJtb3YgIiBSRVNFVF9XSURU
SF9SICIsICIgV0lEVEhfUiBOTAogCi0iLm1haW5sb29wOiIgTkwKKyIubWFpbkxvb3A6IiBOTAog
ICAgICJtb3YgcjMsICMzIiBOTAogICAgICJ2bW92LmYzMiAiIFBPU0lUSU9OX1hfUyAiLCAiIENP
TlNUX09ORV9TIE5MCiAKQEAgLTQxNyw3ICs0MTcsNyBAQCBUT1NUUklORyhuZW9uRHJhd0xpZ2h0
aW5nKSAiOiIgTkwKICAgICAidmFkZC5mMzIgIiBQT1NJVElPTl9ZX1MgIiwgIiBDT05TVF9PTkVf
UyBOTAogICAgICJtb3YgIiBXSURUSF9SICIsICIgUkVTRVRfV0lEVEhfUiBOTAogICAgICJzdWJz
ICIgSEVJR0hUX1IgIiwgIiBIRUlHSFRfUiAiLCAjMSIgTkwKLSAgICAiYm5lIC5tYWlubG9vcCIg
TkwKKyAgICAiYm5lIC5tYWluTG9vcCIgTkwKIAogICAgIC8vIFJldHVybi4KICAgICAidmxkbWlh
IHNwISwge2Q4LWQxNX0iIE5MCi0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91266</attachid>
            <date>2011-04-27 04:15:09 -0700</date>
            <delta_ts>2011-04-27 07:05:45 -0700</delta_ts>
            <desc>next try</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>58922</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSBlZmY3ZGY4MDJmY2M1Njc4ZWQ4MmFkYTkwMDZlNjljZThhYjRjNDQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBXZWQsIDI3IEFwciAyMDExIDEzOjE0OjA3ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICsKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyNSArKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgIHwgICAxNiArCiAuLi4vV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCAgIHwgICA3OCArKy0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCAgICAgfCAgIDM0ICsr
CiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCAgICAgICB8ICAx
NzMgKystLS0tLS0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxp
Z2h0aW5nLmggfCAgIDEwICstCiAuLi4vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJs
dXJORU9OLmNwcCAgICB8ICAzNDMgKysrKysrKysrKysrKysrKysrKysKIC4uLi9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCAgICAgIHwgIDExNiArKysrKysrCiAuLi4v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwICAgICAgICB8ICAgNDYgKysr
LQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmggfCAg
IDc4ICsrKysrCiAxNSBmaWxlcyBjaGFuZ2VkLCA3NDIgaW5zZXJ0aW9ucygrKSwgMTk1IGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFu
Qmx1ck5FT04uaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDhhYzY0NS4uYzZhNjg4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMwLDYgKzMwLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpbyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyIK
ICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIgpAQCAtMTEz
OSw2ICsxMTQwLDExIEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
R2F1c3NpYW5CbHVyTkVPTi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUdhdXNzaWFuQmx1ck5FT04uaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
TGlnaHRpbmdORU9OLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGln
aHRpbmdORU9OLmgKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJh
bnNmb3JtLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRy
aXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcwNzU1ZS4uZWE1NzBkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTA0LTI2ICBab2x0YW4gSGVyY3plZyAg
PHpoZXJjemVnQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBPcHRpbWl6aW5nIGdhdXNzaWFuIGJsdXIgZmlsdGVyIHRvIEFS
TS1uZW9uIFNJTUQgaW5zdHJ1Y3Rpb24gc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01OTQ0NworCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMg
dHdvIHN1Yi1yb3V0aW5lcywgb25lIGZvciBzcGVlZGluZyB1cAorICAgICAgICBhbHBoYSBjaGFu
bmVsIG9ubHkgZ2F1c3NpYW4gYmx1ciAoYnkgMi41IHRpbWVzKSBhbmQgb25lCisgICAgICAgIGZv
ciBzcGVlZGluZyB1cCBhbGwgY2hhbm5lbCBibHVyIChieSA0IHRpbWVzKS4KKworICAgICAgICBB
bmQgYSBmZXcgdHlwbyBmaXhlcyBmb3IgdGhlIG5lb25pemVkIGxpZ2h0aW5nIGZpbHRlci4KKwor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldURl9BTElHTkVEKToKKyAgICAgICAgKFdlYkNvcmU6OmZlR2F1c3NpYW5CbHVyQ29u
c3RhbnRzRm9yTmVvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVHYXVzc2lhbkJsdXJORU9OLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldURl9B
TElHTkVEKToKKwogMjAxMS0wNC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg0ODY0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWQyZjY2ZS4uZTM5YzIwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzk3LDYgKzIzOTcsMTAgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
cG90TGlnaHRTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05F
T04uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUxpZ2h0aW5nTkVPTi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvaW50M0QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBv
aW50M0QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDFhYzk4NjcuLjdiMjBlZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQxNTEsNiArNDE1MSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oJywKKyAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5F
T04uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCAwNmQ4ZjRhLi42OWFmZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTk0Niw2ICsxOTQ2LDcgQEAg
SEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaCBcCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5oIFwKQEAgLTMw
ODAsNyArMzA4MSw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxURVJTPTEpIHsKICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwIFwKICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgXAogICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIFwKLSAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwCisgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCBcCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAK
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDRhYzM4ZmEuLjYwNDhmMDQg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
OTQ5MSw2ICsyOTQ5MSwyMiBAQAogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xmaWx0ZXJzXFNwb3RMaWdodFNvdXJjZS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisJ
CQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRl
cnNcYXJtXEZFR2F1c3NpYW5CbHVyTkVPTi5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJ
CQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVy
c1xhcm1cRkVHYXVzc2lhbkJsdXJORU9OLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJ
PEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xh
cm1cRkVMaWdodGluZ05FT04uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxl
CisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtXEZF
TGlnaHRpbmdORU9OLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KIAkJCQk8L0ZpbHRlcj4KIAkJ
CQk8RmlsdGVyCiAJCQkJCU5hbWU9ImNhIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCmluZGV4IDg2YjYzMGYuLjg5MTk5MWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNw
cm9wcworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZz
cHJvcHMKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmlu
ZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2Fj
aGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4
bWwmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2
ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
c3ZnXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0
ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlXEphdmFT
Y3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJl
YWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1b3Q7IgorCQlBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxjc3MmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJp
bmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzXHNw
ZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxo
aXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxw
YXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcc2hhZG93JnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxv
YWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRl
clxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGljb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbm90
aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90Ozsm
cXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCiAJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9SRU5ERVJJTkc7V0VCQ09SRV9DT05URVhU
X01FTlVTIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJU
aHJvdWdoPSJXZWJDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCmluZGV4IDkyOTY4
MjguLmViZTcyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAj
aWYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAiRkVHYXVzc2lhbkJsdXIuaCIKIAorI2luY2x1
ZGUgIkZFR2F1c3NpYW5CbHVyTkVPTi5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKQEAgLTEw
MSwzNCArMTAyLDQ0IEBAIGlubGluZSB2b2lkIGJveEJsdXIoQnl0ZUFycmF5KiBzcmNQaXhlbEFy
cmF5LCBCeXRlQXJyYXkqIGRzdFBpeGVsQXJyYXksCiAgICAgfQogfQogCi1pbmxpbmUgdm9pZCBr
ZXJuZWxQb3NpdGlvbihpbnQgYm94Qmx1ciwgdW5zaWduZWQmIHN0ZCwgaW50JiBkTGVmdCwgaW50
JiBkUmlnaHQpCitpbmxpbmUgdm9pZCBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseUdlbmVy
aWMoQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVu
c2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRT
aXplKQogewotICAgIC8vIGNoZWNrIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0
bWwjZmVHYXVzc2lhbkJsdXJFbGVtZW50IGZvciBkZXRhaWxzCi0gICAgc3dpdGNoIChib3hCbHVy
KSB7Ci0gICAgY2FzZSAwOgotICAgICAgICBpZiAoIShzdGQgJSAyKSkgewotICAgICAgICAgICAg
ZExlZnQgPSBzdGQgLyAyIC0gMTsKLSAgICAgICAgICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0Owor
ICAgIGludCBzdHJpZGUgPSA0ICogcGFpbnRTaXplLndpZHRoKCk7CisgICAgaW50IGR4TGVmdCA9
IDA7CisgICAgaW50IGR4UmlnaHQgPSAwOworICAgIGludCBkeUxlZnQgPSAwOworICAgIGludCBk
eVJpZ2h0ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBp
ZiAoa2VybmVsU2l6ZVgpIHsKKyAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNp
emVYLCBkeExlZnQsIGR4UmlnaHQpOworICAgICAgICAgICAgYm94Qmx1cihzcmNQaXhlbEFycmF5
LCB0bXBQaXhlbEFycmF5LCBrZXJuZWxTaXplWCwgZHhMZWZ0LCBkeFJpZ2h0LCA0LCBzdHJpZGUs
IHBhaW50U2l6ZS53aWR0aCgpLCBwYWludFNpemUuaGVpZ2h0KCksIGlzQWxwaGFJbWFnZSgpKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRMZWZ0ID0gc3RkIC8gMjsKLSAgICAgICAg
ICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0OwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgMToKLSAgICAgICAgaWYgKCEoc3RkICUgMikpIHsKLSAgICAgICAgICAgIGRMZWZ0Kys7
Ci0gICAgICAgICAgICBkUmlnaHQtLTsKKyAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxB
cnJheSA9IHRtcFBpeGVsQXJyYXk7CisgICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4
ZWxBcnJheTsKKyAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OwogICAg
ICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgaWYgKCEoc3RkICUg
MikpIHsKLSAgICAgICAgICAgIGRSaWdodCsrOwotICAgICAgICAgICAgc3RkKys7CisKKyAgICAg
ICAgaWYgKGtlcm5lbFNpemVZKSB7CisgICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJu
ZWxTaXplWSwgZHlMZWZ0LCBkeVJpZ2h0KTsKKyAgICAgICAgICAgIGJveEJsdXIodG1wUGl4ZWxB
cnJheSwgc3JjUGl4ZWxBcnJheSwga2VybmVsU2l6ZVksIGR5TGVmdCwgZHlSaWdodCwgc3RyaWRl
LCA0LCBwYWludFNpemUuaGVpZ2h0KCksIHBhaW50U2l6ZS53aWR0aCgpLCBpc0FscGhhSW1hZ2Uo
KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJy
YXkgPSB0bXBQaXhlbEFycmF5OworICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVs
QXJyYXk7CisgICAgICAgICAgICBzcmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKICAgICAg
ICAgfQotICAgICAgICBicmVhazsKICAgICB9CiB9CiAKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5C
bHVyOjpwbGF0Zm9ybUFwcGx5KEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0
bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVks
IEludFNpemUmIHBhaW50U2l6ZSkKK3sKKyAgICAvLyBUaGUgc2VsZWN0aW9uIGhlcmUgZXZlbnR1
YWxseSBzaG91bGQgaGFwcGVuIGR5bmFtaWNhbGx5IG9uIHNvbWUgcGxhdGZvcm1zLgorI2lmIENQ
VShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorICAgIHBsYXRmb3JtQXBwbHlOZW9uKHNyY1Bp
eGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBrZXJuZWxTaXplWSwgcGFpbnRT
aXplKTsKKyNlbHNlCisgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMoc3JjUGl4ZWxBcnJheSwgdG1w
UGl4ZWxBcnJheSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOworI2VuZGlm
Cit9CisKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUoRmlsdGVyKiBm
aWx0ZXIsIHVuc2lnbmVkJiBrZXJuZWxTaXplWCwgdW5zaWduZWQmIGtlcm5lbFNpemVZLCBmbG9h
dCBzdGRYLCBmbG9hdCBzdGRZKQogewogICAgIHN0ZFggPSBmaWx0ZXItPmFwcGx5SG9yaXpvbnRh
bFNjYWxlKHN0ZFgpOwpAQCAtMTkzLDMwICsyMDQsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjph
cHBseSgpCiAgICAgUmVmUHRyPEJ5dGVBcnJheT4gdG1wSW1hZ2VEYXRhID0gQnl0ZUFycmF5Ojpj
cmVhdGUocGFpbnRTaXplLndpZHRoKCkgKiBwYWludFNpemUuaGVpZ2h0KCkgKiA0KTsKICAgICBC
eXRlQXJyYXkqIHRtcFBpeGVsQXJyYXkgPSB0bXBJbWFnZURhdGEuZ2V0KCk7CiAKLSAgICBpbnQg
c3RyaWRlID0gNCAqIHBhaW50U2l6ZS53aWR0aCgpOwotICAgIGludCBkeExlZnQgPSAwOwotICAg
IGludCBkeFJpZ2h0ID0gMDsKLSAgICBpbnQgZHlMZWZ0ID0gMDsKLSAgICBpbnQgZHlSaWdodCA9
IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKLSAgICAgICAgaWYgKGtlcm5l
bFNpemVYKSB7Ci0gICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWCwgZHhM
ZWZ0LCBkeFJpZ2h0KTsKLSAgICAgICAgICAgIGJveEJsdXIoc3JjUGl4ZWxBcnJheSwgdG1wUGl4
ZWxBcnJheSwga2VybmVsU2l6ZVgsIGR4TGVmdCwgZHhSaWdodCwgNCwgc3RyaWRlLCBwYWludFNp
emUud2lkdGgoKSwgcGFpbnRTaXplLmhlaWdodCgpLCBpc0FscGhhSW1hZ2UoKSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhl
bEFycmF5OwotICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7Ci0gICAg
ICAgICAgICBzcmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmIChrZXJuZWxTaXplWSkgewotICAgICAgICAgICAga2VybmVsUG9zaXRpb24oaSwga2Vy
bmVsU2l6ZVksIGR5TGVmdCwgZHlSaWdodCk7Ci0gICAgICAgICAgICBib3hCbHVyKHRtcFBpeGVs
QXJyYXksIHNyY1BpeGVsQXJyYXksIGtlcm5lbFNpemVZLCBkeUxlZnQsIGR5UmlnaHQsIHN0cmlk
ZSwgNCwgcGFpbnRTaXplLmhlaWdodCgpLCBwYWludFNpemUud2lkdGgoKSwgaXNBbHBoYUltYWdl
KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQnl0ZUFycmF5KiBhdXhQaXhlbEFy
cmF5ID0gdG1wUGl4ZWxBcnJheTsKLSAgICAgICAgICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQaXhl
bEFycmF5OwotICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1eFBpeGVsQXJyYXk7Ci0gICAg
ICAgIH0KLSAgICB9CisgICAgcGxhdGZvcm1BcHBseShzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFy
cmF5LCBrZXJuZWxTaXplWCwga2VybmVsU2l6ZVksIHBhaW50U2l6ZSk7CiB9CiAKIHZvaWQgRkVH
YXVzc2lhbkJsdXI6OmR1bXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDFkNThlZjMuLjE0YzY2
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTQ5LDYgKzQ5LDEyIEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyB2b2lkIGNhbGN1bGF0ZUtlcm5lbFNpemUoRmlsdGVyKiwgdW5zaWduZWQmIGtlcm5l
bFNpemVYLCB1bnNpZ25lZCYga2VybmVsU2l6ZVksIGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFkpOwog
CisgICAgc3RhdGljIGlubGluZSB2b2lkIGtlcm5lbFBvc2l0aW9uKGludCBib3hCbHVyLCB1bnNp
Z25lZCYgc3RkLCBpbnQmIGRMZWZ0LCBpbnQmIGRSaWdodCk7CisgICAgaW5saW5lIHZvaWQgcGxh
dGZvcm1BcHBseShCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1wUGl4ZWxB
cnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXpl
JiBwYWludFNpemUpOworCisgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseUdlbmVyaWMoQnl0
ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVk
IGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKTsK
KyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5TmVvbihCeXRlQXJyYXkqIHNyY1BpeGVsQXJy
YXksIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2ln
bmVkIGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpOworCiBwcml2YXRlOgogICAgIEZF
R2F1c3NpYW5CbHVyKEZpbHRlciosIGZsb2F0LCBmbG9hdCk7CiAKQEAgLTU2LDYgKzYyLDM0IEBA
IHByaXZhdGU6CiAgICAgZmxvYXQgbV9zdGRZOwogfTsKIAoraW5saW5lIHZvaWQgRkVHYXVzc2lh
bkJsdXI6Omtlcm5lbFBvc2l0aW9uKGludCBib3hCbHVyLCB1bnNpZ25lZCYgc3RkLCBpbnQmIGRM
ZWZ0LCBpbnQmIGRSaWdodCkKK3sKKyAgICAvLyBjaGVjayBodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcvZmlsdGVycy5odG1sI2ZlR2F1c3NpYW5CbHVyRWxlbWVudCBmb3IgZGV0YWlscworICAgIHN3
aXRjaCAoYm94Qmx1cikgeworICAgIGNhc2UgMDoKKyAgICAgICAgaWYgKCEoc3RkICUgMikpIHsK
KyAgICAgICAgICAgIGRMZWZ0ID0gc3RkIC8gMiAtIDE7CisgICAgICAgICAgICBkUmlnaHQgPSBz
dGQgLSBkTGVmdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRMZWZ0ID0gc3RkIC8g
MjsKKyAgICAgICAgICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0OworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgaWYgKCEoc3RkICUgMikpIHsKKyAgICAgICAg
ICAgIGRMZWZ0Kys7CisgICAgICAgICAgICBkUmlnaHQtLTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgIGlmICghKHN0ZCAlIDIpKSB7CisgICAgICAgICAg
ICBkUmlnaHQrKzsKKyAgICAgICAgICAgIHN0ZCsrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KEZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCAxM2E2OWZkLi4wNmQ3MWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5jcHAKQEAgLTI5LDE0ICsyOSw3IEBACiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAi
RkVMaWdodGluZy5oIgogCi0jaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKLSNpbmNsdWRlICJQb2lu
dExpZ2h0U291cmNlLmgiCi0jaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgiCi0KLSNpZiBDUFUo
QVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKICNpbmNsdWRlICJGRUxpZ2h0aW5nTkVPTi5oIgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTIzNCw2ICsyMjcsMzAgQEAgdm9pZCBGRUxpZ2h0aW5nOjpzZXRQaXhlbChpbnQgb2Zmc2V0
LCBMaWdodGluZ0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0QKICAgICBpbmxpbmVT
ZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgbGlnaHRYLCBsaWdodFksIGZhY3Rv
clgsIGZhY3RvclksIG5vcm1hbFZlY3Rvcik7CiB9CiAKK2lubGluZSB2b2lkIEZFTGlnaHRpbmc6
OnBsYXRmb3JtQXBwbHlHZW5lcmljKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyY2U6OlBh
aW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIEludFBvaW50IG5vcm1hbFZlY3RvcjsK
KyAgICBpbnQgb2Zmc2V0ID0gMDsKKworICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWln
aHREZWNyZWFzZWRCeU9uZTsgKyt5KSB7CisgICAgICAgIG9mZnNldCA9IHkgKiBkYXRhLndpZHRo
TXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKKyAgICAgICAgZm9yIChpbnQgeCA9
IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNp
emUpIHsKKyAgICAgICAgICAgIGRhdGEuaW50ZXJpb3Iob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwor
ICAgICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgs
IHksIGNGYWN0b3IxZGl2NCwgY0ZhY3RvcjFkaXY0LCBub3JtYWxWZWN0b3IpOworICAgICAgICB9
CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFwcGx5KExpZ2h0
aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQor
eworICAgIC8vIFRoZSBzZWxlY3Rpb24gaGVyZSBldmVudHVhbGx5IHNob3VsZCBoYXBwZW4gZHlu
YW1pY2FsbHkgb24gc29tZSBwbGF0Zm9ybXMuCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxF
UihHQ0MpCisgICAgcGxhdGZvcm1BcHBseU5lb24oZGF0YSwgcGFpbnRpbmdEYXRhKTsKKyNlbHNl
CisgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMoZGF0YSwgcGFpbnRpbmdEYXRhKTsKKyNlbmRpZgor
fQorCiBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KQogewogICAgIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEgcGFp
bnRpbmdEYXRhOwpAQCAtMjU1LDM1ICsyNzIsMzUgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGln
aHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICBwYWlu
dGluZ0RhdGEuY29sb3JWZWN0b3IgPSBGbG9hdFBvaW50M0QobV9saWdodGluZ0NvbG9yLnJlZCgp
LCBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4oKSwgbV9saWdodGluZ0NvbG9yLmJsdWUoKSk7CiAgICAg
bV9saWdodFNvdXJjZS0+aW5pdFBhaW50aW5nRGF0YShwYWludGluZ0RhdGEpOwogCi0gICAgLy8g
VG9wL0xlZnQgY29ybmVyCisgICAgLy8gVG9wL0xlZnQgY29ybmVyLgogICAgIEludFBvaW50IG5v
cm1hbFZlY3RvcjsKICAgICBpbnQgb2Zmc2V0ID0gMDsKICAgICBkYXRhLnRvcExlZnQob2Zmc2V0
LCBub3JtYWxWZWN0b3IpOwogICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRh
LCAwLCAwLCBjRmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2Mywgbm9ybWFsVmVjdG9yKTsKIAotICAg
IC8vIFRvcC9SaWdodCBwaXhlbAorICAgIC8vIFRvcC9SaWdodCBwaXhlbC4KICAgICBvZmZzZXQg
PSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIC0gY1BpeGVsU2l6ZTsKICAgICBkYXRh
LnRvcFJpZ2h0KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKICAgICBzZXRQaXhlbChvZmZzZXQsIGRh
dGEsIHBhaW50aW5nRGF0YSwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lLCAwLCBjRmFjdG9yMmRp
djMsIGNGYWN0b3IyZGl2Mywgbm9ybWFsVmVjdG9yKTsKIAotICAgIC8vIEJvdHRvbS9MZWZ0IHBp
eGVsCisgICAgLy8gQm90dG9tL0xlZnQgcGl4ZWwuCiAgICAgb2Zmc2V0ID0gZGF0YS5oZWlnaHRE
ZWNyZWFzZWRCeU9uZSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemU7CiAgICAgZGF0
YS5ib3R0b21MZWZ0KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKICAgICBzZXRQaXhlbChvZmZzZXQs
IGRhdGEsIHBhaW50aW5nRGF0YSwgMCwgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSwgY0ZhY3Rv
cjJkaXYzLCBjRmFjdG9yMmRpdjMsIG5vcm1hbFZlY3Rvcik7CiAKLSAgICAvLyBCb3R0b20vUmln
aHQgcGl4ZWwKKyAgICAvLyBCb3R0b20vUmlnaHQgcGl4ZWwuCiAgICAgb2Zmc2V0ID0gaGVpZ2h0
ICogZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSAtIGNQaXhlbFNpemU7CiAgICAgZGF0
YS5ib3R0b21SaWdodChvZmZzZXQsIG5vcm1hbFZlY3Rvcik7CiAgICAgc2V0UGl4ZWwob2Zmc2V0
LCBkYXRhLCBwYWludGluZ0RhdGEsIGRhdGEud2lkdGhEZWNyZWFzZWRCeU9uZSwgZGF0YS5oZWln
aHREZWNyZWFzZWRCeU9uZSwgY0ZhY3RvcjJkaXYzLCBjRmFjdG9yMmRpdjMsIG5vcm1hbFZlY3Rv
cik7CiAKICAgICBpZiAod2lkdGggPj0gMykgewotICAgICAgICAvLyBUb3Agcm93CisgICAgICAg
IC8vIFRvcCByb3cuCiAgICAgICAgIG9mZnNldCA9IGNQaXhlbFNpemU7CiAgICAgICAgIGZvciAo
aW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBj
UGl4ZWxTaXplKSB7CiAgICAgICAgICAgICBkYXRhLnRvcFJvdyhvZmZzZXQsIG5vcm1hbFZlY3Rv
cik7CiAgICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0
YSwgeCwgMCwgY0ZhY3RvcjFkaXYzLCBjRmFjdG9yMWRpdjIsIG5vcm1hbFZlY3Rvcik7CiAgICAg
ICAgIH0KLSAgICAgICAgLy8gQm90dG9tIHJvdworICAgICAgICAvLyBCb3R0b20gcm93LgogICAg
ICAgICBvZmZzZXQgPSBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lICogZGF0YS53aWR0aE11bHRp
cGxpZWRCeVBpeGVsU2l6ZSArIGNQaXhlbFNpemU7CiAgICAgICAgIGZvciAoaW50IHggPSAxOyB4
IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7
CiAgICAgICAgICAgICBkYXRhLmJvdHRvbVJvdyhvZmZzZXQsIG5vcm1hbFZlY3Rvcik7CkBAIC0y
OTIsMTMgKzMwOSwxMyBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkq
IHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIH0KIAogICAgIGlmIChoZWlnaHQg
Pj0gMykgewotICAgICAgICAvLyBMZWZ0IGNvbHVtbgorICAgICAgICAvLyBMZWZ0IGNvbHVtbi4K
ICAgICAgICAgb2Zmc2V0ID0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICAg
ICAgZm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3ksIG9m
ZnNldCArPSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplKSB7CiAgICAgICAgICAgICBk
YXRhLmxlZnRDb2x1bW4ob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwogICAgICAgICAgICAgaW5saW5l
U2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAsIHksIGNGYWN0b3IxZGl2Miwg
Y0ZhY3RvcjFkaXYzLCBub3JtYWxWZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIC8vIFJpZ2h0
IGNvbHVtbgorICAgICAgICAvLyBSaWdodCBjb2x1bW4uCiAgICAgICAgIG9mZnNldCA9IChkYXRh
LndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIDw8IDEpIC0gY1BpeGVsU2l6ZTsKICAgICAgICAg
Zm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3ksIG9mZnNl
dCArPSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplKSB7CiAgICAgICAgICAgICBkYXRh
LnJpZ2h0Q29sdW1uKG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKQEAgLTMwNywxOCArMzI0LDggQEAg
Ym9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0
aCwgaW50IGhlaWdodCkKICAgICB9CiAKICAgICBpZiAod2lkdGggPj0gMyAmJiBoZWlnaHQgPj0g
MykgewotICAgICAgICAvLyBJbnRlcmlvciBwaXhlbHMKLSNpZiBDUFUoQVJNX05FT04pICYmIENP
TVBJTEVSKEdDQykKLSAgICAgICAgZHJhd0ludGVyaW9yUGl4ZWxzKGRhdGEsIHBhaW50aW5nRGF0
YSk7Ci0jZWxzZQotICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8IGRhdGEuaGVpZ2h0RGVjcmVh
c2VkQnlPbmU7ICsreSkgewotICAgICAgICAgICAgb2Zmc2V0ID0geSAqIGRhdGEud2lkdGhNdWx0
aXBsaWVkQnlQaXhlbFNpemUgKyBjUGl4ZWxTaXplOwotICAgICAgICAgICAgZm9yIChpbnQgeCA9
IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNp
emUpIHsKLSAgICAgICAgICAgICAgICBkYXRhLmludGVyaW9yKG9mZnNldCwgbm9ybWFsVmVjdG9y
KTsKLSAgICAgICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5n
RGF0YSwgeCwgeSwgY0ZhY3RvcjFkaXY0LCBjRmFjdG9yMWRpdjQsIG5vcm1hbFZlY3Rvcik7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgorICAgICAgICAvLyBJbnRlcmlvciBwaXhl
bHMuCisgICAgICAgIHBsYXRmb3JtQXBwbHkoZGF0YSwgcGFpbnRpbmdEYXRhKTsKICAgICB9CiAK
ICAgICBpbnQgbGFzdFBpeGVsID0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSAqIGhl
aWdodDsKQEAgLTM2NSwxMTggKzM3Miw2IEBAIHZvaWQgRkVMaWdodGluZzo6YXBwbHkoKQogICAg
IGRyYXdMaWdodGluZyhzcmNQaXhlbEFycmF5LCBhYnNvbHV0ZVBhaW50U2l6ZS53aWR0aCgpLCBh
YnNvbHV0ZVBhaW50U2l6ZS5oZWlnaHQoKSk7CiB9CiAKLSNpZiBDUFUoQVJNX05FT04pICYmIENP
TVBJTEVSKEdDQykKLQotc3RhdGljIGludCBnZXRQb3dlckNvZWZmaWNpZW50cyhmbG9hdCBleHBv
bmVudCkKLXsKLSAgICAvLyBDYWxsaW5nIGEgcG93ZiBmdW5jdGlvbiBmcm9tIHRoZSBhc3NlbWJs
eSBjb2RlIHdvdWxkIHJlcXVpcmUgdG8gc2F2ZQotICAgIC8vIGFuZCByZWxvYWQgYSBsb3Qgb2Yg
TkVPTiByZWdpc3RlcnMuIFNpbmNlIHRoZSBiYXNlIGlzIGluIHJhbmdlIFswLi4xXQotICAgIC8v
IGFuZCBvbmx5IDggYml0IHByZWNpc2lvbiBpcyByZXF1aXJlZCwgd2UgdXNlIG91ciBvd24gcG93
ZiBmdW5jdGlvbi4KLSAgICAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCB0aGUgYmVzdCwgYnV0IGl0
IHVzZXMgb25seSBhIGZldyByZWdpc3RlcnMgYW5kCi0gICAgLy8gZ2l2ZXMgdXMgZW5vdWdoIHBy
ZWNpc2lvbiAobW9kaWZ5aW5nIHRoZSBleHBvbmVudCBmaWVsZCBkaXJlY3RseSB3b3VsZAotICAg
IC8vIGFsc28gYmUgcG9zc2libGUpLgotCi0gICAgLy8gRmlyc3QsIHdlIGxpbWl0IHRoZSBleHBv
bmVudCB0byBtYXhpbXVtIG9mIDY0LCB3aGljaCBnaXZlcyB1cyBlbm91Z2gKLSAgICAvLyBwcmVj
aXNpb24uIFdlIHNwbGl0IHRoZSBleHBvbmVudCB0byBhbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBw
YXJ0LAotICAgIC8vIHNpbmNlIGFeeCA9IChhXnkpKihhXnopIHdoZXJlIHggPSB5K3ouIFRoZSBp
bnRlZ2VyIGV4cG9uZW50IG9mIHRoZQotICAgIC8vIHBvd2VyIGlzIGVzdGltYXRlZCBieSBzcXVh
cmUsIGFuZCB0aGUgZnJhY3Rpb24gZXhwb25lbnQgb2YgdGhlIHBvd2VyCi0gICAgLy8gaXMgZXN0
aW1hdGVkIGJ5IHNxdWFyZSByb290IGFzc2VtYmx5IGluc3RydWN0aW9ucy4KLSAgICBpbnQgaSwg
cmVzdWx0OwotCi0gICAgaWYgKGV4cG9uZW50IDwgMCkKLSAgICAgICAgZXhwb25lbnQgPSAxIC8g
KC1leHBvbmVudCk7Ci0KLSAgICBpZiAoZXhwb25lbnQgPiA2My45OSkKLSAgICAgICAgZXhwb25l
bnQgPSA2My45OTsKLQotICAgIGV4cG9uZW50IC89IDY0OwotICAgIHJlc3VsdCA9IDA7Ci0gICAg
Zm9yIChpID0gMTE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGV4cG9uZW50ICo9IDI7Ci0gICAg
ICAgIGlmIChleHBvbmVudCA+PSAxKSB7Ci0gICAgICAgICAgICByZXN1bHQgfD0gMSA8PCBpOwot
ICAgICAgICAgICAgZXhwb25lbnQgLT0gMTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi12b2lkIEZFTGlnaHRpbmc6OmRyYXdJbnRlcmlvclBpeGVscyhMaWdodGlu
Z0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKLXsK
LSAgICBXVEZfQUxJR05FRChGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uLCBmbG9hdEFy
Z3VtZW50cywgMTYpOwotCi0gICAgRkVMaWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24gbmVvbkRh
dGEgPSB7Ci0gICAgICAgIGRhdGEucGl4ZWxzLT5kYXRhKCksCi0gICAgICAgIGRhdGEud2lkdGhE
ZWNyZWFzZWRCeU9uZSAtIDEsCi0gICAgICAgIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgLSAx
LAotICAgICAgICAwLAotICAgICAgICAwLAotICAgICAgICAwLAotICAgICAgICAmZmxvYXRBcmd1
bWVudHMsCi0gICAgICAgIGZlTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uKCkKLSAgICB9OwotCi0g
ICAgLy8gU2V0IGxpZ2h0IHNvdXJjZSBhcmd1bWVudHMuCi0gICAgZmxvYXRBcmd1bWVudHMuY29u
c3RPbmUgPSAxOwotCi0gICAgZmxvYXRBcmd1bWVudHMuY29sb3JSZWQgPSBtX2xpZ2h0aW5nQ29s
b3IucmVkKCk7Ci0gICAgZmxvYXRBcmd1bWVudHMuY29sb3JHcmVlbiA9IG1fbGlnaHRpbmdDb2xv
ci5ncmVlbigpOwotICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yQmx1ZSA9IG1fbGlnaHRpbmdDb2xv
ci5ibHVlKCk7Ci0gICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzQgPSAwOwotCi0gICAgaWYgKG1f
bGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19QT0lOVCkgewotICAgICAgICBuZW9uRGF0YS5mbGFn
cyB8PSBGTEFHX1BPSU5UX0xJR0hUOwotICAgICAgICBQb2ludExpZ2h0U291cmNlKiBwb2ludExp
Z2h0U291cmNlID0gc3RhdGljX2Nhc3Q8UG9pbnRMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2Uu
Z2V0KCkpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBwb2ludExpZ2h0U291cmNl
LT5wb3NpdGlvbigpLngoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcG9pbnRM
aWdodFNvdXJjZS0+cG9zaXRpb24oKS55KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0
WiA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOwotICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy5wYWRkaW5nMiA9IDA7Ci0gICAgfSBlbHNlIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkg
PT0gTFNfU1BPVCkgewotICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQT1RfTElHSFQ7
Ci0gICAgICAgIFNwb3RMaWdodFNvdXJjZSogc3BvdExpZ2h0U291cmNlID0gc3RhdGljX2Nhc3Q8
U3BvdExpZ2h0U291cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7Ci0gICAgICAgIGZsb2F0QXJn
dW1lbnRzLmxpZ2h0WCA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7Ci0gICAgICAg
IGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS55KCk7
Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRp
b24oKS56KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMDsKLQotICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25YID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rv
ci54KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblkgPSBwYWludGluZ0RhdGEu
ZGlyZWN0aW9uVmVjdG9yLnkoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlyZWN0aW9uWiA9
IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueigpOwotICAgICAgICBmbG9hdEFyZ3VtZW50
cy5wYWRkaW5nMyA9IDA7Ci0KLSAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1dE9mZkxpbWl0
ID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdDsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMu
Y29uZUZ1bGxMaWdodCA9IHBhaW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OwotICAgICAgICBmbG9h
dEFyZ3VtZW50cy5jb25lQ3V0T2ZmUmFuZ2UgPSBwYWludGluZ0RhdGEuY29uZUN1dE9mZkxpbWl0
IC0gcGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7Ci0gICAgICAgIG5lb25EYXRhLmNvbmVFeHBv
bmVudCA9IGdldFBvd2VyQ29lZmZpY2llbnRzKHNwb3RMaWdodFNvdXJjZS0+c3BlY3VsYXJFeHBv
bmVudCgpKTsKLSAgICAgICAgaWYgKHNwb3RMaWdodFNvdXJjZS0+c3BlY3VsYXJFeHBvbmVudCgp
ID09IDEpCi0gICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0NPTkVfRVhQT05FTlRf
SVNfMTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9saWdodFNvdXJjZS50eXBlID09
IExTX0RJU1RBTlQpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBwYWludGluZ0Rh
dGEubGlnaHRWZWN0b3IueCgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBwYWlu
dGluZ0RhdGEubGlnaHRWZWN0b3IueSgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFog
PSBwYWludGluZ0RhdGEubGlnaHRWZWN0b3IueigpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5w
YWRkaW5nMiA9IDE7Ci0gICAgfQotCi0gICAgLy8gU2V0IGxpZ2h0aW5nIGFyZ3VtZW50cy4KLSAg
ICBmbG9hdEFyZ3VtZW50cy5zdXJmYWNlU2NhbGUgPSBkYXRhLnN1cmZhY2VTY2FsZTsKLSAgICBm
bG9hdEFyZ3VtZW50cy5taW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZvdXIgPSAtZGF0YS5zdXJm
YWNlU2NhbGUgLyA0OwotICAgIGlmIChtX2xpZ2h0aW5nVHlwZSA9PSBGRUxpZ2h0aW5nOjpEaWZm
dXNlTGlnaHRpbmcpCi0gICAgICAgIGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9IG1f
ZGlmZnVzZUNvbnN0YW50OwotICAgIGVsc2UgewotICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBG
TEFHX1NQRUNVTEFSX0xJR0hUOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNlQ29uc3Rh
bnQgPSBtX3NwZWN1bGFyQ29uc3RhbnQ7Ci0gICAgICAgIG5lb25EYXRhLnNwZWN1bGFyRXhwb25l
bnQgPSBnZXRQb3dlckNvZWZmaWNpZW50cyhtX3NwZWN1bGFyRXhwb25lbnQpOwotICAgICAgICBp
ZiAobV9zcGVjdWxhckV4cG9uZW50ID09IDEpCi0gICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8
PSBGTEFHX1NQRUNVTEFSX0VYUE9ORU5UX0lTXzE7Ci0gICAgfQotICAgIGlmIChmbG9hdEFyZ3Vt
ZW50cy5kaWZmdXNlQ29uc3RhbnQgPT0gMSkKLSAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxB
R19ESUZGVVNFX0NPTlNUX0lTXzE7Ci0KLSAgICBuZW9uRHJhd0xpZ2h0aW5nKCZuZW9uRGF0YSk7
Ci19Ci0jZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRl
eCAzZGM0NmU5Li5iOTA4ZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1
ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkxpZ2h0
U291cmNlLmgiCisjaW5jbHVkZSAiUG9pbnRMaWdodFNvdXJjZS5oIgorI2luY2x1ZGUgIlNwb3RM
aWdodFNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYv
UGxhdGZvcm0uaD4KIApAQCAtODAsOSArODIsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0
UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0
YSYsCiAgICAgICAgICAgICAgICAgICBpbnQgbGlnaHRYLCBpbnQgbGlnaHRZLCBmbG9hdCBmYWN0
b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKIAotI2lmIENQVShB
Uk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQotICAgIHZvaWQgZHJhd0ludGVyaW9yUGl4ZWxzKExp
Z2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmKTsKLSNlbmRpZgorICAgIGlu
bGluZSB2b2lkIHBsYXRmb3JtQXBwbHkoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50
aW5nRGF0YSYpOworCisgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseUdlbmVyaWMoTGlnaHRp
bmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYpOworICAgIHN0YXRpYyBpbnQgZ2V0
UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpOworICAgIGlubGluZSB2b2lkIHBsYXRm
b3JtQXBwbHlOZW9uKExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmKTsK
IAogICAgIExpZ2h0aW5nVHlwZSBtX2xpZ2h0aW5nVHlwZTsKICAgICBSZWZQdHI8TGlnaHRTb3Vy
Y2U+IG1fbGlnaHRTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjM5MDg1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVz
c2lhbkJsdXJORU9OLmNwcApAQCAtMCwwICsxLDM0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDExIFpvbHRhbiBI
ZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklW
RVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZFR2F1c3NpYW5C
bHVyTkVPTi5oIgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKKyNpbmNs
dWRlIDx3dGYvQWxpZ25tZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFdU
Rl9BTElHTkVEKHVuc2lnbmVkIGNoYXIsIHNfRkVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9u
W10sIDE2KSA9IHsKKyAgICAvLyBNYXBwaW5nIGZyb20gQVJNIHRvIE5FT04gcmVnaXN0ZXJzLgor
ICAgIDAsIDE2LCAxNiwgMTYsIDEsICAxNiwgMTYsIDE2LCAyLCAgMTYsIDE2LCAxNiwgMywgIDE2
LCAxNiwgMTYsCisgICAgLy8gTWFwcGluZyBmcm9tIE5FT04gdG8gQVJNIHJlZ2lzdGVycy4KKyAg
ICAwLCA0LCAgOCwgIDEyLCAxNiwgMTYsIDE2LCAxNgorfTsKKwordW5zaWduZWQgY2hhciogZmVH
YXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uKCkKK3sKKyAgICByZXR1cm4gc19GRUdhdXNzaWFu
Qmx1ckNvbnN0YW50c0Zvck5lb247Cit9CisKKyNkZWZpbmUgQVNTVFJJTkcoc3RyKSAjc3RyCisj
ZGVmaW5lIFRPU1RSSU5HKHZhbHVlKSBBU1NUUklORyh2YWx1ZSkKKworI2RlZmluZSBTVFJJREVf
T0ZGU0VUIFRPU1RSSU5HKDApCisjZGVmaW5lIFNUUklERV9XSURUSF9PRkZTRVQgVE9TVFJJTkco
NCkKKyNkZWZpbmUgU1RSSURFX0xJTkVfT0ZGU0VUIFRPU1RSSU5HKDgpCisjZGVmaW5lIFNUUklE
RV9MSU5FX1dJRFRIX09GRlNFVCBUT1NUUklORygxMikKKyNkZWZpbmUgUkVNQUlOSU5HX1NUUklE
RVNfT0ZGU0VUIFRPU1RSSU5HKDE2KQorI2RlZmluZSBESVNUQU5DRV9MRUZUX09GRlNFVCBUT1NU
UklORygyMCkKKyNkZWZpbmUgRElTVEFOQ0VfUklHSFRfT0ZGU0VUIFRPU1RSSU5HKDI0KQorI2Rl
ZmluZSBJTlZFUlRFRF9LRVJORUxfU0laRV9PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5lIFBB
SU5USU5HX0NPTlNUQU5UU19PRkZTRVQgVE9TVFJJTkcoMzIpCisjZGVmaW5lIE5MICJcbiIKKwor
Ly8gUmVnaXN0ZXIgYWxsb2NhdGlvbi4KKyNkZWZpbmUgU09VUkNFX1IgICAgICAgICAgICAgICAg
InIwIgorI2RlZmluZSBERVNUSU5BVElPTl9SICAgICAgICAgICAicjEiCisjZGVmaW5lIExFRlRf
UiAgICAgICAgICAgICAgICAgICJyMiIKKyNkZWZpbmUgUklHSFRfUiAgICAgICAgICAgICAgICAg
InIzIgorI2RlZmluZSBTT1VSQ0VfRU5EX1IgICAgICAgICAgICAicjQiCisjZGVmaW5lIERFU1RJ
TkFUSU9OX0VORF9SICAgICAgICJyNSIKKyNkZWZpbmUgU1RSSURFX1IgICAgICAgICAgICAgICAg
InI2IgorI2RlZmluZSBTVFJJREVfV0lEVEhfUiAgICAgICAgICAicjciCisjZGVmaW5lIFNUUklE
RV9MSU5FX1IgICAgICAgICAgICJyOCIKKyNkZWZpbmUgU09VUkNFX0xJTkVfRU5EX1IgICAgICAg
InIxMCIKKyNkZWZpbmUgRElTVEFOQ0VfTEVGVF9SICAgICAgICAgInIxMSIKKyNkZWZpbmUgRElT
VEFOQ0VfUklHSFRfUiAgICAgICAgInIxMiIKKyNkZWZpbmUgTUFYX0tFUk5FTF9TSVpFX1IgICAg
ICAgImxyIgorCisvLyBBbHRlcm5hdGUgbmFtZXMuCisjZGVmaW5lIElOSVRfSU5WRVJURURfS0VS
TkVMX1NJWkVfUiBTT1VSQ0VfRU5EX1IKKyNkZWZpbmUgSU5JVF9QQUlOVElOR19DT05TVEFOVFNf
UiBERVNUSU5BVElPTl9FTkRfUgorI2RlZmluZSBJTklUX1NVTV9SIExFRlRfUgorI2RlZmluZSBS
RU1BSU5JTkdfU1RSSURFU19SIFNPVVJDRV9MSU5FX0VORF9SCisKKyNkZWZpbmUgSU5WRVJURURf
S0VSTkVMX1NJWkVfUSAgInEwIgorI2RlZmluZSBTVU1fUSAgICAgICAgICAgICAgICAgICAicTEi
CisjZGVmaW5lIFBJWEVMX1EgICAgICAgICAgICAgICAgICJxMiIKKyNkZWZpbmUgUElYRUxfRDAg
ICAgICAgICAgICAgICAgImQ0IgorI2RlZmluZSBQSVhFTF9EMSAgICAgICAgICAgICAgICAiZDUi
CisjZGVmaW5lIFBJWEVMX0QwMCAgICAgICAgICAgICAgICJkNFswXSIKKyNkZWZpbmUgUElYRUxf
RDAxICAgICAgICAgICAgICAgImQ0WzFdIgorI2RlZmluZSBQSVhFTF9TMSAgICAgICAgICAgICAg
ICAiczkiCisjZGVmaW5lIFBJWEVMX0QxMCAgICAgICAgICAgICAgICJkNVswXSIKKyNkZWZpbmUg
UElYRUxfUzIgICAgICAgICAgICAgICAgInMxMCIKKyNkZWZpbmUgUElYRUxfRDExICAgICAgICAg
ICAgICAgImQ1WzFdIgorI2RlZmluZSBSRU1BSU5JTkdfU1RSSURFU19TMCAgICAiczEyIgorCisj
ZGVmaW5lIFJFQURfUkFOR0UgICAgICAgICAgICAgICJkMTYtZDE4IgorI2RlZmluZSBSRU1BUF9B
Uk1fTkVPTjFfUSAgICAgICAiZDE2IgorI2RlZmluZSBSRU1BUF9BUk1fTkVPTjJfUSAgICAgICAi
ZDE3IgorI2RlZmluZSBSRU1BUF9ORU9OX0FSTV9RICAgICAgICAiZDE4IgorCithc20gKCAvLyBO
T0xJTlQKKyIuZ2xvYmwgIiBUT1NUUklORyhuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIp
IE5MCitUT1NUUklORyhuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIpICI6IiBOTAorICAg
ICJzdG1kYiBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIGxyfSIgTkwKKyAgICAibGRyICIgU1RSSURF
X1IgIiwgW3IyLCAjIiBTVFJJREVfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfV0lE
VEhfUiAiLCBbcjIsICMiIFNUUklERV9XSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIERJ
U1RBTkNFX0xFRlRfUiAiLCBbcjIsICMiIERJU1RBTkNFX0xFRlRfT0ZGU0VUICJdIiBOTAorICAg
ICJsZHIgIiBESVNUQU5DRV9SSUdIVF9SICIsIFtyMiwgIyIgRElTVEFOQ0VfUklHSFRfT0ZGU0VU
ICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfTElORV9SICIsIFtyMiwgIyIgU1RSSURFX0xJTkVf
T0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCBbcjIsICMiIFNU
UklERV9MSU5FX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgSU5JVF9JTlZFUlRFRF9L
RVJORUxfU0laRV9SICIsIFtyMiwgIyIgSU5WRVJURURfS0VSTkVMX1NJWkVfT0ZGU0VUICJdIiBO
TAorICAgICJsZHIgIiBJTklUX1BBSU5USU5HX0NPTlNUQU5UU19SICIsIFtyMiwgIyIgUEFJTlRJ
TkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKKworICAgIC8vIEluaXRpYWxpemUgbG9jYWxzLgor
ICAgICJtdWwgIiBESVNUQU5DRV9MRUZUX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgIiwgIiBTVFJJ
REVfUiBOTAorICAgICJtdWwgIiBESVNUQU5DRV9SSUdIVF9SICIsICIgRElTVEFOQ0VfUklHSFRf
UiAiLCAiIFNUUklERV9SIE5MCisgICAgIm1vdiAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgRElT
VEFOQ0VfUklHSFRfUiBOTAorICAgICJjbXAgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklE
RV9XSURUSF9SIE5MCisgICAgIm1vdmNzICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBTVFJJREVf
V0lEVEhfUiBOTAorICAgICJhZGQgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9MSU5F
X0VORF9SICIsICIgU09VUkNFX1IgTkwKKyAgICAidmR1cC5mMzIgIiBJTlZFUlRFRF9LRVJORUxf
U0laRV9RICIsICIgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SIE5MCisgICAgInZsZDEuZjMy
IHsgIiBSRUFEX1JBTkdFICIgfSwgWyIgSU5JVF9QQUlOVElOR19DT05TVEFOVFNfUiAiXSEiIE5M
CisKKyIuYWxsQ2hhbm5lbE1haW5Mb29wOiIgTkwKKworICAgIC8vIEluaXRpYWxpemUgdGhlIHN1
bSB2YXJpYWJsZS4KKyAgICAidm1vdi51MzIgIiBTVU1fUSAiLCAjMCIgTkwKKyAgICAibW92ICIg
SU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAi
IFNPVVJDRV9SICIsICIgTUFYX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1f
UiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFsbENoYW5uZWxJbml0U3VtRG9uZSIg
TkwKKyIuYWxsQ2hhbm5lbEluaXRTdW06IiBOTAorICAgICJ2bGQxLnUzMiAiIFBJWEVMX0QwMCAi
LCBbIiBJTklUX1NVTV9SICJdLCAiIFNUUklERV9SIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0Qx
ICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMl9RIE5MCisgICAgInZ0YmwuOCAi
IFBJWEVMX0QwICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMV9RIE5MCisgICAg
InZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAiY21wICIg
SU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxJbml0
U3VtIiBOTAorIi5hbGxDaGFubmVsSW5pdFN1bURvbmU6IiBOTAorCisgICAgLy8gQmx1cnJpbmcu
CisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX1dJRFRI
X1IgTkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fRU5EX1IgIiwgIiBERVNUSU5BVElPTl9SICIs
ICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAic3ViICIgTEVGVF9SICIsICIgU09VUkNFX1IgIiwg
IiBESVNUQU5DRV9MRUZUX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFNPVVJDRV9SICIs
ICIgRElTVEFOQ0VfUklHSFRfUiBOTAorCisiLmFsbENoYW5uZWxCbHVyOiIgTkwKKyAgICAidmN2
dC5mMzIudTMyICIgUElYRUxfUSAiLCAiIFNVTV9RIE5MCisgICAgInZtdWwuZjMyICIgUElYRUxf
USAiLCAiIFBJWEVMX1EgIiwgIiBJTlZFUlRFRF9LRVJORUxfU0laRV9RIE5MCisgICAgInZjdnQu
dTMyLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0Qw
ICIsIHsiIFBJWEVMX0QwICItIiBQSVhFTF9EMSAifSwgIiBSRU1BUF9ORU9OX0FSTV9RIE5MCisg
ICAgInZzdDEudTMyICIgUElYRUxfRDAwICIsIFsiIERFU1RJTkFUSU9OX1IgIl0sICIgU1RSSURF
X1IgTkwKKworICAgICJjbXAgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJiY2MgLmFs
bENoYW5uZWxTa2lwTGVmdCIgTkwKKyAgICAidmxkMS51MzIgIiBQSVhFTF9EMDAgIiwgWyIgTEVG
VF9SICJdIiBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBS
RU1BUF9BUk1fTkVPTjJfUSBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9E
MCAifSwgIiBSRU1BUF9BUk1fTkVPTjFfUSBOTAorICAgICJ2c3ViLnUzMiAiIFNVTV9RICIsICIg
U1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFsbENoYW5uZWxTa2lwTGVmdDogIiBOTAorCisgICAg
ImNtcCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbGxDaGFubmVs
U2tpcFJpZ2h0IiBOTAorICAgICJ2bGQxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBSSUdIVF9SICJd
IiBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9B
Uk1fTkVPTjJfUSBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAifSwg
IiBSRU1BUF9BUk1fTkVPTjFfUSBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1Eg
IiwgIiBQSVhFTF9RIE5MCisiLmFsbENoYW5uZWxTa2lwUmlnaHQ6ICIgTkwKKworICAgICJhZGQg
IiBMRUZUX1IgIiwgIiBMRUZUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9S
ICIsICIgUklHSFRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1Ig
IiwgIiBERVNUSU5BVElPTl9FTkRfUiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxCbHVyIiBOTAor
ICAgICJzdWIgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9X
SURUSF9SIE5MCisKKyAgICAiYWRkICIgU09VUkNFX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNUUklE
RV9MSU5FX1IgTkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1Ig
IiwgIiBTVFJJREVfTElORV9SIE5MCisgICAgImNtcCAiIFNPVVJDRV9SICIsICIgU09VUkNFX0xJ
TkVfRU5EX1IgTkwKKyAgICAiYmNjIC5hbGxDaGFubmVsTWFpbkxvb3AiIE5MCisKKyAgICAibGRt
aWEgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBwY30iIE5MCispOyAvLyBOT0xJTlQKKworI2RlZmlu
ZSBEQVRBX1RSQU5TRkVSNChjb21tYW5kLCBiYXNlKSBcCisgICAgY29tbWFuZCAiICIgUElYRUxf
RDAwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFuZCAiICIg
UElYRUxfRDAxICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFu
ZCAiICIgUElYRUxfRDEwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAg
Y29tbWFuZCAiICIgUElYRUxfRDExICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBc
CisgICAgInN1YiAiIGJhc2UgIiwgIiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIi
IE5MCisKKy8vIFRoZSBudW1iZXIgb2YgcmVhZHMgZGVwZW5kIG9uIFJFTUFJTklOR19TVFJJREVT
X1IsIGJ1dCBpdCBpcyBhbHdheXMgPj0gMSBhbmQgPD0gMworI2RlZmluZSBDT05ESVRJT05BTF9E
QVRBX1RSQU5TRkVSNChjb21tYW5kMSwgY29tbWFuZDIsIGJhc2UpIFwKKyAgICBjb21tYW5kMSAi
ICIgUElYRUxfRDAwICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgImNt
cCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwgIzIiIE5MIFwKKyAgICBjb21tYW5kMiAiY3MgIiBQ
SVhFTF9TMSAiLCBbIiBiYXNlICJdIiBOTCBcCisgICAgImFkZCAiIGJhc2UgIiwgIiBiYXNlICIs
ICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwg
IzMiIE5MIFwKKyAgICBjb21tYW5kMiAiY3MgIiBQSVhFTF9TMiAiLCBbIiBiYXNlICJdIiBOTCBc
CisgICAgInN1YiAiIGJhc2UgIiwgIiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzEi
IE5MCisKK2FzbSAoIC8vIE5PTElOVAorIi5nbG9ibCAiIFRPU1RSSU5HKG5lb25EcmF3QWxwaGFD
aGFubmVsR2F1c3NpYW5CbHVyKSBOTAorVE9TVFJJTkcobmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVz
c2lhbkJsdXIpICI6IiBOTAorICAgICJzdG1kYiBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIGxyfSIg
TkwKKyAgICAibGRyICIgU1RSSURFX1IgIiwgW3IyLCAjIiBTVFJJREVfT0ZGU0VUICJdIiBOTAor
ICAgICJsZHIgIiBTVFJJREVfV0lEVEhfUiAiLCBbcjIsICMiIFNUUklERV9XSURUSF9PRkZTRVQg
Il0iIE5MCisgICAgImxkciAiIERJU1RBTkNFX0xFRlRfUiAiLCBbcjIsICMiIERJU1RBTkNFX0xF
RlRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBESVNUQU5DRV9SSUdIVF9SICIsIFtyMiwgIyIg
RElTVEFOQ0VfUklHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfTElORV9SICIs
IFtyMiwgIyIgU1RSSURFX0xJTkVfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTT1VSQ0VfTElO
RV9FTkRfUiAiLCBbcjIsICMiIFNUUklERV9MSU5FX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAi
bGRyICIgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SICIsIFtyMiwgIyIgSU5WRVJURURfS0VS
TkVMX1NJWkVfT0ZGU0VUICJdIiBOTAorICAgICJ2bGRyLnUzMiAiIFJFTUFJTklOR19TVFJJREVT
X1MwICIsIFtyMiwgIyIgUkVNQUlOSU5HX1NUUklERVNfT0ZGU0VUICJdIiBOTAorCisgICAgLy8g
SW5pdGlhbGl6ZSBsb2NhbHMuCisgICAgIm11bCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIERJU1RB
TkNFX0xFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgIm11bCAiIERJU1RBTkNFX1JJR0hUX1Ig
IiwgIiBESVNUQU5DRV9SSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAibW92ICIgTUFYX0tF
Uk5FTF9TSVpFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisgICAgImNtcCAiIE1BWF9LRVJO
RUxfU0laRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAibW92Y3MgIiBNQVhfS0VSTkVM
X1NJWkVfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9MSU5FX0VO
RF9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJ2ZHVwLmYz
MiAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgIiwgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpF
X1IgTkwKKyAgICAiY21wICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAg
ICJiZXEgLmFscGhhQ2hhbm5lbEVhcmx5TGVhdmUiIE5MCisKKyAgICAvLyBQcm9jZXNzaW5nIDQg
c3RyaWRlcyBwYXJhbGxlbGx5LgorCisiLmFscGhhQ2hhbm5lbE1haW5Mb29wOiIgTkwKKworICAg
IC8vIEluaXRpYWxpemUgdGhlIHN1bSB2YXJpYWJsZS4KKyAgICAidm1vdi51MzIgIiBTVU1fUSAi
LCAjMCIgTkwKKyAgICAibW92ICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImFk
ZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIsICIgTUFYX0tFUk5FTF9TSVpFX1IgTkwK
KyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFs
cGhhQ2hhbm5lbEluaXRTdW1Eb25lIiBOTAorIi5hbHBoYUNoYW5uZWxJbml0U3VtOiIgTkwKKyAg
ICBEQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCBJTklUX1NVTV9SKQorICAgICJ2c2hyLnUzMiAi
IFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAi
LCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorICAgICJhZGQgIiBJTklUX1NVTV9SICIsICIgSU5J
VF9TVU1fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VS
Q0VfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxJbml0U3VtIiBOTAorIi5hbHBoYUNo
YW5uZWxJbml0U3VtRG9uZToiIE5MCisKKyAgICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09V
UkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQg
IiBERVNUSU5BVElPTl9FTkRfUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhf
UiBOTAorICAgICJzdWIgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRf
UiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdI
VF9SIE5MCisKKyIuYWxwaGFDaGFubmVsQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAiIFBJ
WEVMX1EgIiwgIiBTVU1fUSBOTAorICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhF
TF9RICIsICIgUElYRUxfUSBOTAorICAgICJ2c2hsLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICMyNCIgTkwKKyAgICBEQVRBX1RSQU5TRkVSNCgidnN0MS51MzIiLCBERVNUSU5BVElPTl9S
KQorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAuYWxwaGFD
aGFubmVsU2tpcExlZnQiIE5MCisgICAgREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgTEVGVF9S
KQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAi
dnN1Yi51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbHBoYUNoYW5u
ZWxTa2lwTGVmdDogIiBOTAorCisgICAgImNtcCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfRU5EX1Ig
TkwKKyAgICAiYmNzIC5hbHBoYUNoYW5uZWxTa2lwUmlnaHQiIE5MCisgICAgREFUQV9UUkFOU0ZF
UjQoInZsZDEudTMyIiwgUklHSFRfUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElY
RUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJ
WEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2tpcFJpZ2h0OiAiIE5MCisKKyAgICAiYWRkICIgREVT
VElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQg
IiBMRUZUX1IgIiwgIiBMRUZUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9S
ICIsICIgUklHSFRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1Ig
IiwgIiBERVNUSU5BVElPTl9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbEJsdXIiIE5M
CisgICAgInN1YiAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURF
X1dJRFRIX1IgTkwKKworICAgICJhZGQgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RS
SURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBE
RVNUSU5BVElPTl9SICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisgICAgImNtcCAi
IFNPVVJDRV9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5u
ZWxNYWluTG9vcCIgTkwKKworICAgIC8vIFByb2Nlc3NpbmcgdGhlIHJlbWFpbmluZyBzdHJpZGVz
ICgwIC0gMykuCisiLmFscGhhQ2hhbm5lbEVhcmx5TGVhdmU6IiBOTAorICAgICJ2bW92LnUzMiAi
IFJFTUFJTklOR19TVFJJREVTX1IgIiwgIiBSRU1BSU5JTkdfU1RSSURFU19TMCBOTAorICAgIC8v
IEVhcmx5IHJldHVybiBmb3IgMCBzdHJpZGVzLgorICAgICJjbXAgIiBSRU1BSU5JTkdfU1RSSURF
U19SICIsICMwIiBOTAorICAgICJsZG1lcWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9IiBO
TAorCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3VtIHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAi
IFNVTV9RICIsICMwIiBOTAorICAgICJtb3YgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwK
KyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJ
WkVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAg
ImJjcyAuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bURvbmUiIE5MCisiLmFscGhhQ2hhbm5lbFNl
Y29uZEluaXRTdW06IiBOTAorICAgIENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQxLnUz
MiIsICJ2bGRyIiwgSU5JVF9TVU1fUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElY
RUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJ
WEVMX1EgTkwKKyAgICAiYWRkICIgSU5JVF9TVU1fUiAiLCAiIElOSVRfU1VNX1IgIiwgIiBTVFJJ
REVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAg
ImJjYyAuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bSIgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25k
SW5pdFN1bURvbmU6IiBOTAorCisgICAgLy8gQmx1cnJpbmcuCisgICAgImFkZCAiIFNPVVJDRV9F
TkRfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgREVT
VElOQVRJT05fRU5EX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwK
KyAgICAic3ViICIgTEVGVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgTkwK
KyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBO
TAorCisiLmFscGhhQ2hhbm5lbFNlY29uZEJsdXI6IiBOTAorICAgICJ2Y3Z0LmYzMi51MzIgIiBQ
SVhFTF9RICIsICIgU1VNX1EgTkwKKyAgICAidm11bC5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxf
USAiLCAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgTkwKKyAgICAidmN2dC51MzIuZjMyICIgUElY
RUxfUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAidnNobC51MzIgIiBQSVhFTF9RICIsICIgUElYRUxf
USAiLCAjMjQiIE5MCisgICAgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZzdDEudTMyIiwg
InZzdHIiLCBERVNUSU5BVElPTl9SKQorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9S
IE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsU2Vjb25kU2tpcExlZnQiIE5MCisgICAgQ09ORElU
SU9OQUxfREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgInZsZHIiLCBMRUZUX1IpCisgICAgInZz
aHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2c3ViLnUzMiAi
IFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNr
aXBMZWZ0OiAiIE5MCisKKyAgICAiY21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAor
ICAgICJiY3MgLmFscGhhQ2hhbm5lbFNlY29uZFNraXBSaWdodCIgTkwKKyAgICBDT05ESVRJT05B
TF9EQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCAidmxkciIsIFJJR0hUX1IpCisgICAgInZzaHIu
dTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUzMiAiIFNV
TV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNraXBS
aWdodDogIiBOTAorCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9S
ICIsICIgU1RSSURFX1IgTkwKKyAgICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBO
TAorICAgICJjbXAgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAg
ICAiYmNjIC5hbHBoYUNoYW5uZWxTZWNvbmRCbHVyIiBOTAorCisgICAgImxkbWlhIHNwISwge3I0
LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorKTsgLy8gTk9MSU5UCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVz
c2lhbkJsdXJORU9OLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NjAzN2FhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmgKQEAgLTAsMCArMSwxMTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRkVHYXVzc2lh
bkJsdXJORU9OX2gKKyNkZWZpbmUgRkVHYXVzc2lhbkJsdXJORU9OX2gKKworI2luY2x1ZGUgPHd0
Zi9QbGF0Zm9ybS5oPgorCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKKyNp
bmNsdWRlICJGRUdhdXNzaWFuQmx1ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZvck5lb24geworICAgIGludCBzdHJpZGU7Cisg
ICAgaW50IHN0cmlkZVdpZHRoOworICAgIGludCBzdHJpZGVMaW5lOworICAgIGludCBzdHJpZGVM
aW5lV2lkdGg7CisgICAgaW50IHJlbWFpbmluZ1N0cmlkZXM7CisgICAgaW50IGRpc3RhbmNlTGVm
dDsKKyAgICBpbnQgZGlzdGFuY2VSaWdodDsKKyAgICBmbG9hdCBpbnZlcnRlZEtlcm5lbFNpemU7
CisgICAgdW5zaWduZWQgY2hhciogcGFpbnRpbmdDb25zdGFudHM7Cit9OworCit1bnNpZ25lZCBj
aGFyKiBmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24oKTsKKworZXh0ZXJuICJDIiB7Cit2
b2lkIG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFuQmx1cih1bnNpZ25lZCBjaGFyKiBzb3VyY2Us
IHVuc2lnbmVkIGNoYXIqIGRlc3RpbmF0aW9uLCBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZv
ck5lb24qKTsKK3ZvaWQgbmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIodW5zaWduZWQg
Y2hhciogc291cmNlLCB1bnNpZ25lZCBjaGFyKiBkZXN0aW5hdGlvbiwgRkVHYXVzc2lhbkJsdXJQ
YWludGluZ0RhdGFGb3JOZW9uKik7Cit9CisKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5CbHVyOjpw
bGF0Zm9ybUFwcGx5TmVvbihCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1w
UGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJ
bnRTaXplJiBwYWludFNpemUpCit7CisgICAgY29uc3QgaW50IHdpZHRoTXVsdGlwbGllZEJ5Rm91
ciA9IDQgKiBwYWludFNpemUud2lkdGgoKTsKKyAgICBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0
YUZvck5lb24gYXJndW1lbnRzWCA9IHsKKyAgICAgICAgNCwKKyAgICAgICAgd2lkdGhNdWx0aXBs
aWVkQnlGb3VyLAorICAgICAgICB3aWR0aE11bHRpcGxpZWRCeUZvdXIsCisgICAgICAgIChpc0Fs
cGhhSW1hZ2UoKSA/ICgocGFpbnRTaXplLmhlaWdodCgpID4+IDIpIDw8IDIpIDogcGFpbnRTaXpl
LmhlaWdodCgpKSAqIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgaXNBbHBoYUltYWdl
KCkgPyAocGFpbnRTaXplLmhlaWdodCgpICYgMHgzKSA6IDAsCisgICAgICAgIDAsCisgICAgICAg
IDAsCisgICAgICAgIDAsCisgICAgICAgIGlzQWxwaGFJbWFnZSgpID8gMCA6IGZlR2F1c3NpYW5C
bHVyQ29uc3RhbnRzRm9yTmVvbigpCisgICAgfTsKKyAgICBGRUdhdXNzaWFuQmx1clBhaW50aW5n
RGF0YUZvck5lb24gYXJndW1lbnRzWSA9IHsKKyAgICAgICAgd2lkdGhNdWx0aXBsaWVkQnlGb3Vy
LAorICAgICAgICB3aWR0aE11bHRpcGxpZWRCeUZvdXIgKiBwYWludFNpemUuaGVpZ2h0KCksCisg
ICAgICAgIDQsCisgICAgICAgIChpc0FscGhhSW1hZ2UoKSA/ICgocGFpbnRTaXplLndpZHRoKCkg
Pj4gMikgPDwgMikgOiBwYWludFNpemUud2lkdGgoKSkgKiA0LAorICAgICAgICBpc0FscGhhSW1h
Z2UoKSA/IChwYWludFNpemUud2lkdGgoKSAmIDB4MykgOiAwLAorICAgICAgICAwLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICBpc0FscGhhSW1hZ2UoKSA/IDAgOiBmZUdhdXNzaWFu
Qmx1ckNvbnN0YW50c0Zvck5lb24oKQorICAgIH07CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8
IDM7ICsraSkgeworICAgICAgICBpZiAoa2VybmVsU2l6ZVgpIHsKKyAgICAgICAgICAgIGtlcm5l
bFBvc2l0aW9uKGksIGtlcm5lbFNpemVYLCBhcmd1bWVudHNYLmRpc3RhbmNlTGVmdCwgYXJndW1l
bnRzWC5kaXN0YW5jZVJpZ2h0KTsKKyAgICAgICAgICAgIGFyZ3VtZW50c1guaW52ZXJ0ZWRLZXJu
ZWxTaXplID0gMSAvIHN0YXRpY19jYXN0PGZsb2F0PihrZXJuZWxTaXplWCk7CisgICAgICAgICAg
ICBpZiAoaXNBbHBoYUltYWdlKCkpCisgICAgICAgICAgICAgICAgbmVvbkRyYXdBbHBoYUNoYW5u
ZWxHYXVzc2lhbkJsdXIoc3JjUGl4ZWxBcnJheS0+ZGF0YSgpLCB0bXBQaXhlbEFycmF5LT5kYXRh
KCksICZhcmd1bWVudHNYKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZW9u
RHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIoc3JjUGl4ZWxBcnJheS0+ZGF0YSgpLCB0bXBQaXhl
bEFycmF5LT5kYXRhKCksICZhcmd1bWVudHNYKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7CisgICAgICAgICAg
ICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHNyY1BpeGVsQXJy
YXkgPSBhdXhQaXhlbEFycmF5OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGtlcm5lbFNpemVZ
KSB7CisgICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWSwgYXJndW1lbnRz
WS5kaXN0YW5jZUxlZnQsIGFyZ3VtZW50c1kuZGlzdGFuY2VSaWdodCk7CisgICAgICAgICAgICBh
cmd1bWVudHNZLmludmVydGVkS2VybmVsU2l6ZSA9IDEgLyBzdGF0aWNfY2FzdDxmbG9hdD4oa2Vy
bmVsU2l6ZVkpOworICAgICAgICAgICAgaWYgKGlzQWxwaGFJbWFnZSgpKQorICAgICAgICAgICAg
ICAgIG5lb25EcmF3QWxwaGFDaGFubmVsR2F1c3NpYW5CbHVyKHRtcFBpeGVsQXJyYXktPmRhdGEo
KSwgc3JjUGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbmVvbkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKHRtcFBpeGVs
QXJyYXktPmRhdGEoKSwgc3JjUGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQ
aXhlbEFycmF5OworICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7Cisg
ICAgICAgICAgICBzcmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKKyAgICAgICAgfQorICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1BVKEFSTV9ORU9O
KSAmJiBDT01QSUxFUihHQ0MpCisKKyNlbmRpZiAvLyBGRUdhdXNzaWFuQmx1ck5FT05faApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVM
aWdodGluZ05FT04uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uY3BwCmluZGV4IDM4MDdmMWYuLmMxZThhNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRp
bmdORU9OLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKQEAgLTI5LDE0ICsyOSwxNCBAQAogCiAjaWYgQ1BVKEFS
TV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCiAKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL0FsaWdubWVudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNl
IGNvbnN0YW50cyBhcmUgY29waWVkIHRvIHRoZSBmb2xsb3dpbmcgU0lNRCByZWdpc3RlcnM6CiAv
LyAgIEFMUEhBWF9RIEFMUEhBWV9RIFJFTUFQWF9EIFJFTUFQWV9ECiAKLVdURl9BTElHTkVEKHNo
b3J0LCBzX0ZFTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsKK3N0YXRpYyBXVEZf
QUxJR05FRChzaG9ydCwgc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbltdLCAxNikgPSB7CiAg
ICAgLy8gQWxwaGEgY29lZmZpY2llbnRzLgogICAgIC0yLCAxLCAwLCAtMSwgMiwgMSwgMCwgLTEs
CiAgICAgMCwgLTEsIC0yLCAtMSwgMCwgMSwgMiwgMSwKQEAgLTYwLDcgKzYwLDcgQEAgc2hvcnQq
IGZlTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uKCkKICNkZWZpbmUgU1BFQ1VMQVJfRVhQT05FTlRf
T0ZGU0VUIFRPU1RSSU5HKDE2KQogI2RlZmluZSBDT05FX0VYUE9ORU5UX09GRlNFVCBUT1NUUklO
RygyMCkKICNkZWZpbmUgRkxPQVRfQVJHVU1FTlRTX09GRlNFVCBUT1NUUklORygyNCkKLSNkZWZp
bmUgRFJBV0lOR19DT05TVEFOVFNfT0ZGU0VUIFRPU1RSSU5HKDI4KQorI2RlZmluZSBQQUlOVElO
R19DT05TVEFOVFNfT0ZGU0VUIFRPU1RSSU5HKDI4KQogI2RlZmluZSBOTCAiXG4iCiAKIC8vIFJl
Z2lzdGVyIGFsbG9jYXRpb24KQEAgLTIxOSw3ICsyMTksNyBAQCBUT1NUUklORyhuZW9uRHJhd0xp
Z2h0aW5nKSAiOiIgTkwKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgdHdvIGFyZ3VtZW50cyBhcmUg
bG9hZGVkIHRvIFNJTUQgcmVnaXN0ZXJzLgogICAgICJsZHIgcjAsIFsiIFBBSU5USU5HX0RBVEFf
UiAiLCAjIiBGTE9BVF9BUkdVTUVOVFNfT0ZGU0VUICJdIiBOTAotICAgICJsZHIgcjEsIFsiIFBB
SU5USU5HX0RBVEFfUiAiLCAjIiBEUkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisgICAg
ImxkciByMSwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFBBSU5USU5HX0NPTlNUQU5UU19PRkZT
RVQgIl0iIE5MCiAgICAgImxkciAiIFBJWEVMU19SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAj
IiBQSVhFTFNfT0ZGU0VUICJdIiBOTAogICAgICJsZHIgIiBXSURUSF9SICIsIFsiIFBBSU5USU5H
X0RBVEFfUiAiLCAjIiBXSURUSF9PRkZTRVQgIl0iIE5MCiAgICAgImxkciAiIEhFSUdIVF9SICIs
IFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBIRUlHSFRfT0ZGU0VUICJdIiBOTApAQCAtMjQ2LDcg
KzI0Niw3IEBAIFRPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAogICAgICJ2bW92LmYz
MiAiIFNQT1RfQ09MT1JfUSAiLCAiIENPTE9SX1EgTkwKICAgICAibW92ICIgUkVTRVRfV0lEVEhf
UiAiLCAiIFdJRFRIX1IgTkwKIAotIi5tYWlubG9vcDoiIE5MCisiLm1haW5Mb29wOiIgTkwKICAg
ICAibW92IHIzLCAjMyIgTkwKICAgICAidm1vdi5mMzIgIiBQT1NJVElPTl9YX1MgIiwgIiBDT05T
VF9PTkVfUyBOTAogCkBAIC00MTcsNyArNDE3LDcgQEAgVE9TVFJJTkcobmVvbkRyYXdMaWdodGlu
ZykgIjoiIE5MCiAgICAgInZhZGQuZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05FX1Mg
TkwKICAgICAibW92ICIgV0lEVEhfUiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKICAgICAic3VicyAi
IEhFSUdIVF9SICIsICIgSEVJR0hUX1IgIiwgIzEiIE5MCi0gICAgImJuZSAubWFpbmxvb3AiIE5M
CisgICAgImJuZSAubWFpbkxvb3AiIE5MCiAKICAgICAvLyBSZXR1cm4uCiAgICAgInZsZG1pYSBz
cCEsIHtkOC1kMTV9IiBOTApAQCAtNDU5LDYgKzQ1OSw0MCBAQCBUT1NUUklORyhuZW9uRHJhd0xp
Z2h0aW5nKSAiOiIgTkwKICAgICAiYiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCiApOyAv
LyBOT0xJTlQKIAoraW50IEZFTGlnaHRpbmc6OmdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4
cG9uZW50KQoreworICAgIC8vIENhbGxpbmcgYSBwb3dmIGZ1bmN0aW9uIGZyb20gdGhlIGFzc2Vt
Ymx5IGNvZGUgd291bGQgcmVxdWlyZSB0byBzYXZlCisgICAgLy8gYW5kIHJlbG9hZCBhIGxvdCBv
ZiBORU9OIHJlZ2lzdGVycy4gU2luY2UgdGhlIGJhc2UgaXMgaW4gcmFuZ2UgWzAuLjFdCisgICAg
Ly8gYW5kIG9ubHkgOCBiaXQgcHJlY2lzaW9uIGlzIHJlcXVpcmVkLCB3ZSB1c2Ugb3VyIG93biBw
b3dmIGZ1bmN0aW9uLgorICAgIC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0LCBidXQg
aXQgdXNlcyBvbmx5IGEgZmV3IHJlZ2lzdGVycyBhbmQKKyAgICAvLyBnaXZlcyB1cyBlbm91Z2gg
cHJlY2lzaW9uIChtb2RpZnlpbmcgdGhlIGV4cG9uZW50IGZpZWxkIGRpcmVjdGx5IHdvdWxkCisg
ICAgLy8gYWxzbyBiZSBwb3NzaWJsZSkuCisKKyAgICAvLyBGaXJzdCwgd2UgbGltaXQgdGhlIGV4
cG9uZW50IHRvIG1heGltdW0gb2YgNjQsIHdoaWNoIGdpdmVzIHVzIGVub3VnaAorICAgIC8vIHBy
ZWNpc2lvbi4gV2Ugc3BsaXQgdGhlIGV4cG9uZW50IHRvIGFuIGludGVnZXIgYW5kIGZyYWN0aW9u
IHBhcnQsCisgICAgLy8gc2luY2UgYV54ID0gKGFeeSkqKGFeeikgd2hlcmUgeCA9IHkrei4gVGhl
IGludGVnZXIgZXhwb25lbnQgb2YgdGhlCisgICAgLy8gcG93ZXIgaXMgZXN0aW1hdGVkIGJ5IHNx
dWFyZSwgYW5kIHRoZSBmcmFjdGlvbiBleHBvbmVudCBvZiB0aGUgcG93ZXIKKyAgICAvLyBpcyBl
c3RpbWF0ZWQgYnkgc3F1YXJlIHJvb3QgYXNzZW1ibHkgaW5zdHJ1Y3Rpb25zLgorICAgIGludCBp
LCByZXN1bHQ7CisKKyAgICBpZiAoZXhwb25lbnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEg
LyAoLWV4cG9uZW50KTsKKworICAgIGlmIChleHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBv
bmVudCA9IDYzLjk5OworCisgICAgZXhwb25lbnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAg
ICBmb3IgKGkgPSAxMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAg
ICAgICAgaWYgKGV4cG9uZW50ID49IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7
CisgICAgICAgICAgICBleHBvbmVudCAtPSAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENQVShB
Uk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKaW5kZXgg
ZDgzYjdmZS4uZWM1ZWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oCkBAIC0zMSw2ICsz
MSw5IEBACiAKICNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKIAorI2luY2x1ZGUg
IkZFTGlnaHRpbmcuaCIKKyNpbmNsdWRlIDx3dGYvQWxpZ25tZW50Lmg+CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gT3RoZXJ3aXNlOiBEaXN0YW50IExpZ2h0LgpAQCAtODksNiArOTIsODEg
QEAgZXh0ZXJuICJDIiB7CiB2b2lkIG5lb25EcmF3TGlnaHRpbmcoRkVMaWdodGluZ1BhaW50aW5n
RGF0YUZvck5lb24qKTsKIH0KIAoraW5saW5lIHZvaWQgRkVMaWdodGluZzo6cGxhdGZvcm1BcHBs
eU5lb24oTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWlu
dGluZ0RhdGEpCit7CisgICAgV1RGX0FMSUdORUQoRkVMaWdodGluZ0Zsb2F0QXJndW1lbnRzRm9y
TmVvbiwgZmxvYXRBcmd1bWVudHMsIDE2KTsKKworICAgIEZFTGlnaHRpbmdQYWludGluZ0RhdGFG
b3JOZW9uIG5lb25EYXRhID0geworICAgICAgICBkYXRhLnBpeGVscy0+ZGF0YSgpLAorICAgICAg
ICBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAxLAorICAgICAgICBkYXRhLmhlaWdodERlY3Jl
YXNlZEJ5T25lIC0gMSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAg
ICAgJmZsb2F0QXJndW1lbnRzLAorICAgICAgICBmZUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbigp
CisgICAgfTsKKworICAgIC8vIFNldCBsaWdodCBzb3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0
QXJndW1lbnRzLmNvbnN0T25lID0gMTsKKworICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yUmVkID0g
bV9saWdodGluZ0NvbG9yLnJlZCgpOworICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yR3JlZW4gPSBt
X2xpZ2h0aW5nQ29sb3IuZ3JlZW4oKTsKKyAgICBmbG9hdEFyZ3VtZW50cy5jb2xvckJsdWUgPSBt
X2xpZ2h0aW5nQ29sb3IuYmx1ZSgpOworICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmc0ID0gMDsK
KworICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkgPT0gTFNfUE9JTlQpIHsKKyAgICAgICAg
bmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9MSUdIVDsKKyAgICAgICAgUG9pbnRMaWdodFNv
dXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFBvaW50TGlnaHRTb3VyY2UqPiht
X2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcG9p
bnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxp
Z2h0WSA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy5saWdodFogPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAg
ICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAwOworICAgIH0gZWxzZSBpZiAobV9saWdodFNv
dXJjZS0+dHlwZSgpID09IExTX1NQT1QpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxB
R19TUE9UX0xJR0hUOworICAgICAgICBTcG90TGlnaHRTb3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9
IHN0YXRpY19jYXN0PFNwb3RMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOworICAg
ICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCku
eCgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBzcG90TGlnaHRTb3VyY2UtPnBv
c2l0aW9uKCkueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBzcG90TGlnaHRT
b3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5wYWRkaW5nMiA9
IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlyZWN0aW9uWCA9IHBhaW50aW5nRGF0YS5k
aXJlY3Rpb25WZWN0b3IueCgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25ZID0g
cGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRz
LmRpcmVjdGlvblogPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLnooKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMucGFkZGluZzMgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNv
bmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQ7CisgICAgICAgIGZs
b2F0QXJndW1lbnRzLmNvbmVGdWxsTGlnaHQgPSBwYWludGluZ0RhdGEuY29uZUZ1bGxMaWdodDsK
KyAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1dE9mZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNv
bmVDdXRPZmZMaW1pdCAtIHBhaW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBuZW9u
RGF0YS5jb25lRXhwb25lbnQgPSBnZXRQb3dlckNvZWZmaWNpZW50cyhzcG90TGlnaHRTb3VyY2Ut
PnNwZWN1bGFyRXhwb25lbnQoKSk7CisgICAgICAgIGlmIChzcG90TGlnaHRTb3VyY2UtPnNwZWN1
bGFyRXhwb25lbnQoKSA9PSAxKQorICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19D
T05FX0VYUE9ORU5UX0lTXzE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fbGlnaHRT
b3VyY2UudHlwZSA9PSBMU19ESVNUQU5UKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRY
ID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMu
bGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1
bWVudHMubGlnaHRaID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnooKTsKKyAgICAgICAgZmxv
YXRBcmd1bWVudHMucGFkZGluZzIgPSAxOworICAgIH0KKworICAgIC8vIFNldCBsaWdodGluZyBh
cmd1bWVudHMuCisgICAgZmxvYXRBcmd1bWVudHMuc3VyZmFjZVNjYWxlID0gZGF0YS5zdXJmYWNl
U2NhbGU7CisgICAgZmxvYXRBcmd1bWVudHMubWludXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3Vy
ID0gLWRhdGEuc3VyZmFjZVNjYWxlIC8gNDsKKyAgICBpZiAobV9saWdodGluZ1R5cGUgPT0gRkVM
aWdodGluZzo6RGlmZnVzZUxpZ2h0aW5nKQorICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNl
Q29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsKKyAgICBlbHNlIHsKKyAgICAgICAgbmVvbkRh
dGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdIVDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMu
ZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxhckNvbnN0YW50OworICAgICAgICBuZW9uRGF0YS5z
cGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmljaWVudHMobV9zcGVjdWxhckV4cG9uZW50
KTsKKyAgICAgICAgaWYgKG1fc3BlY3VsYXJFeHBvbmVudCA9PSAxKQorICAgICAgICAgICAgbmVv
bkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9FWFBPTkVOVF9JU18xOworICAgIH0KKyAgICBp
ZiAoZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID09IDEpCisgICAgICAgIG5lb25EYXRh
LmZsYWdzIHw9IEZMQUdfRElGRlVTRV9DT05TVF9JU18xOworCisgICAgbmVvbkRyYXdMaWdodGlu
ZygmbmVvbkRhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBD
UFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKLS0gCjEuNi41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91280</attachid>
            <date>2011-04-27 07:05:45 -0700</date>
            <delta_ts>2011-04-27 23:54:49 -0700</delta_ts>
            <desc>mac fix</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>65220</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA5MTg0NzBmY2YyMzFjYzIzMDVjNTcxZTU1ZDU0ZGRlMzJkODdiZTNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBXZWQsIDI3IEFwciAyMDExIDE2OjA0OjE5ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICsKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyNSArKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgIHwgICAxNiArCiAuLi4vV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAyNCArKwogLi4uL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwICAgfCAgIDc4ICsrLS0t
CiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oICAgICB8ICAg
MzQgKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwICAgICAg
IHwgIDE3MyArKy0tLS0tLS0tCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuaCB8ICAgMTAgKy0KIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNz
aWFuQmx1ck5FT04uY3BwICAgIHwgIDM0MyArKysrKysrKysrKysrKysrKysrKwogLi4uL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oICAgICAgfCAgMTE2ICsrKysrKysK
IC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAgICAgICAgIHwgICA0
NiArKystCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
aCB8ICAgNzggKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDc2NiBpbnNlcnRpb25zKCspLCAxOTUg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1
c3NpYW5CbHVyTkVPTi5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkOGFjNjQ1Li5jNmE2ODg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzAsNiArMzAsNyBAQCBTRVQoV2ViQ29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAiCkBA
IC0xMTM5LDYgKzExNDAsMTEgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9h
cm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
YXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9h
cm0vRkVMaWdodGluZ05FT04uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05FT04uaAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZp
bmVUcmFuc2Zvcm0uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgz
RFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzA3NTVlLi5lYTU3
MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMjYgIFpvbHRhbiBIZXJj
emVnICA8emhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXppbmcgZ2F1c3NpYW4gYmx1ciBmaWx0ZXIg
dG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NDQ3CisKKyAgICAgICAgVGhpcyBwYXRjaCBjb250
YWlucyB0d28gc3ViLXJvdXRpbmVzLCBvbmUgZm9yIHNwZWVkaW5nIHVwCisgICAgICAgIGFscGhh
IGNoYW5uZWwgb25seSBnYXVzc2lhbiBibHVyIChieSAyLjUgdGltZXMpIGFuZCBvbmUKKyAgICAg
ICAgZm9yIHNwZWVkaW5nIHVwIGFsbCBjaGFubmVsIGJsdXIgKGJ5IDQgdGltZXMpLgorCisgICAg
ICAgIEFuZCBhIGZldyB0eXBvIGZpeGVzIGZvciB0aGUgbmVvbml6ZWQgbGlnaHRpbmcgZmlsdGVy
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V1RGX0FMSUdORUQpOgorICAgICAgICAoV2ViQ29yZTo6ZmVHYXVzc2lhbkJs
dXJDb25zdGFudHNGb3JOZW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V1RGX0FMSUdORUQpOgorCiAyMDExLTA0LTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODQ4NjQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1ZDJmNjZlLi5lMzljMjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIzOTcsNiArMjM5NywxMCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTkVPTi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
YXJtL0ZFTGlnaHRpbmdORU9OLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UG9pbnQzRC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQzRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBv
aW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWFjOTg2Ny4uN2IyMGVmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtNDE1MSw2ICs0MTUxLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5C
bHVyTkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250
Q2FjaGVGcmVlVHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGEuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IDA2ZDhmNGEuLjY5YWZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xOTQ2LDYgKzE5NDYs
NyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oIFwKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmggXApA
QCAtMzA4MCw3ICszMDgxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9MSkg
ewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBcCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgXAotICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwIFwK
KyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9O
LmNwcAogfQogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUFUSE1MPTEpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNGFjMzhmYS4uNjA0
OGYwNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI5NDkxLDYgKzI5NDkxLDIyIEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXGZpbHRlcnNcU3BvdExpZ2h0U291cmNlLmgiCiAJCQkJCQk+CiAJCQkJCTwvRmls
ZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
ZmlsdGVyc1xhcm1cRkVHYXVzc2lhbkJsdXJORU9OLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXGFybVxGRUdhdXNzaWFuQmx1ck5FT04uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgor
CQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0
ZXJzXGFybVxGRUxpZ2h0aW5nTkVPTi5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJ
PEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xh
cm1cRkVMaWdodGluZ05FT04uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVy
PgogCQkJCTxGaWx0ZXIKIAkJCQkJTmFtZT0iY2EiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKaW5kZXggODZiNjMwZi4uODkxOTkx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1v
bi52c3Byb3BzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21t
b24udnNwcm9wcwpAQCAtNyw3ICs3LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0
RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5k
ZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGlu
Z3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
ZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNo
YWRvdyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxh
cHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRl
clxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBh
Z2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzXGNhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0
ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3Jt
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHhtbCZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVc
RGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhp
Y3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNv
Y2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJy
aWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJl
bmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3Nc
anNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxo
dG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
bG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291
cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xh
bmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxz
dmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29ja2V0cyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
aW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxp
bmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNs
dWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0
Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFkcyZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZxdW90OyIKIAkJUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklORztXRUJDT1JFX0NP
TlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVjb21waWxlZEhl
YWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5Y2M4NGI1Li42MjdjMTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zNDgsNiArMzQ4LDEwIEBACiAJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJM
b2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMThGODMxQjcwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IH07
CiAJCTE5MjEzMjc0MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOTIx
MzI3MTExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwICov
OyB9OwogCQkxOTIxMzI3NTExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5
MjEzMjcyMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oICov
OyB9OworCQkxOTg0MUJGRjEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5ODQxQkZC
MTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5FT04uY3BwICovOyB9OworCQkxOTg0
MUMwMDEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOTg0MUJGQzEzNjgzNkYwMDA2RUJC
QjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmggKi87IH07CisJCTE5ODQxQzAxMTM2ODM2RjAwMDZF
QkJCOSAvKiBGRUxpZ2h0aW5nTkVPTi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOTg0MUJGRDEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05F
T04uY3BwICovOyB9OworCQkxOTg0MUMwMjEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05F
T04uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5ODQx
QkZFMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVPTi5oICovOyB9OwogCQkxOUJGRjY0
QjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5QkZGNjQ2MTFDMEYy
QUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oICovOyB9OwogCQkx
OUJGRjY0QzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0
NzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQubW0gKi87
IH07CiAJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxOUJGRjY0ODExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwpAQCAtNjgxMyw2ICs2ODE3LDEwIEBACiAJCTE5MjEz
MjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5MjEzMjcyMTFDMEU2QkIw
MDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxOTIxMzI3MzExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTk4NDFC
RkIxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVPTi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
ZmlsZUVuY29kaW5nID0gNDsgbmFtZSA9IEZFR2F1c3NpYW5CbHVyTkVPTi5jcHA7IHBhdGggPSBm
aWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxOTg0MUJGQzEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFR2F1c3NpYW5CbHVyTkVPTi5oOyBw
YXRoID0gZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTE5ODQxQkZEMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVPTi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUxpZ2h0aW5nTkVPTi5j
cHA7IHBhdGggPSBmaWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTE5ODQxQkZFMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVP
Ti5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUxpZ2h0aW5nTkVPTi5oOyBw
YXRoID0gZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTlCRkY2NDYxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5QkZG
NjQ3MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxOUJGRjY0ODEx
QzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjk3NSw2
ICsxMjk4MywxNyBAQAogCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmU7CiAJCQlzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOwogCQl9OworCQkxOTg0MUJGQTEzNjgzNkExMDA2
RUJCQjkgLyogYXJtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQkxOTg0MUJGQjEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmNwcCAq
LywKKwkJCQkxOTg0MUJGQzEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmgg
Ki8sCisJCQkJMTk4NDFCRkQxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRpbmdORU9OLmNwcCAq
LywKKwkJCQkxOTg0MUJGRTEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05FT04uaCAqLywK
KwkJCSk7CisJCQluYW1lID0gYXJtOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJMUEyRTZFNTYwQ0M1NTFFMDAwNEEyMDYyIC8qIHNxbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjQxOCw2ICsxNjQzNyw3IEBACiAJCUE3NUU4QjdG
MEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxOTg0MUJGQTEzNjgzNkExMDA2RUJCQjkgLyogYXJtICovLAog
CQkJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICov
LAogCQkJCTg0NzMwRDVBMTI0OEYwQjMwMEQzQTlDOSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCAq
LywKIAkJCQlBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi8sCkBAIC0y
MTE0Miw3ICsyMTE2Miw5IEBACiAJCQkJODQ3MzBEN0QxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlz
cGxhY2VtZW50TWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ3RjEyNDhGMEIzMDBEM0E5
QzkgLyogRkVGbG9vZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4MDE5NTUxMDhCQUZCMzAwQ0Iy
QjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxOTg0MUMwMDEzNjgz
NkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NDczMEQ4MTEyNDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMTk4NDFDMDIxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRpbmdORU9OLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NDczMEQ4MzEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQ3MzBEODUxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODcxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI0MDE2LDcgKzI0MDM4LDkgQEAKIAkJCQk4NDczMEQ3QzEyNDhG
MEIzMDBEM0E5QzkgLyogRkVEaXNwbGFjZW1lbnRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODQ3MzBEN0UxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRmxvb2QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODQ4MDE5NTQxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTE5ODQxQkZGMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5F
T04uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBEODAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZF
TGlnaHRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTk4NDFDMDExMzY4MzZGMDAwNkVCQkI5
IC8qIEZFTGlnaHRpbmdORU9OLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDgyMTI0OEYw
QjMwMEQzQTlDOSAvKiBGRU1lcmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDg0MTI0
OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xvZ3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3
MzBEODYxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFT2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNz
aWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
R2F1c3NpYW5CbHVyLmNwcAppbmRleCA5Mjk2ODI4Li5lYmU3MmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5C
bHVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lmIEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUg
IkZFR2F1c3NpYW5CbHVyLmgiCiAKKyNpbmNsdWRlICJGRUdhdXNzaWFuQmx1ck5FT04uaCIKICNp
bmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJSZW5kZXJUcmVlQXNUZXh0LmgiCkBAIC0xMDEsMzQgKzEwMiw0NCBAQCBpbmxpbmUgdm9pZCBi
b3hCbHVyKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiBkc3RQaXhlbEFycmF5
LAogICAgIH0KIH0KIAotaW5saW5lIHZvaWQga2VybmVsUG9zaXRpb24oaW50IGJveEJsdXIsIHVu
c2lnbmVkJiBzdGQsIGludCYgZExlZnQsIGludCYgZFJpZ2h0KQoraW5saW5lIHZvaWQgRkVHYXVz
c2lhbkJsdXI6OnBsYXRmb3JtQXBwbHlHZW5lcmljKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwg
Qnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQg
a2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSkKIHsKLSAgICAvLyBjaGVjayBodHRwOi8v
d3d3LnczLm9yZy9UUi9TVkcvZmlsdGVycy5odG1sI2ZlR2F1c3NpYW5CbHVyRWxlbWVudCBmb3Ig
ZGV0YWlscwotICAgIHN3aXRjaCAoYm94Qmx1cikgewotICAgIGNhc2UgMDoKLSAgICAgICAgaWYg
KCEoc3RkICUgMikpIHsKLSAgICAgICAgICAgIGRMZWZ0ID0gc3RkIC8gMiAtIDE7Ci0gICAgICAg
ICAgICBkUmlnaHQgPSBzdGQgLSBkTGVmdDsKKyAgICBpbnQgc3RyaWRlID0gNCAqIHBhaW50U2l6
ZS53aWR0aCgpOworICAgIGludCBkeExlZnQgPSAwOworICAgIGludCBkeFJpZ2h0ID0gMDsKKyAg
ICBpbnQgZHlMZWZ0ID0gMDsKKyAgICBpbnQgZHlSaWdodCA9IDA7CisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgaWYgKGtlcm5lbFNpemVYKSB7CisgICAgICAgICAg
ICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWCwgZHhMZWZ0LCBkeFJpZ2h0KTsKKyAgICAg
ICAgICAgIGJveEJsdXIoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJheSwga2VybmVsU2l6ZVgs
IGR4TGVmdCwgZHhSaWdodCwgNCwgc3RyaWRlLCBwYWludFNpemUud2lkdGgoKSwgcGFpbnRTaXpl
LmhlaWdodCgpLCBpc0FscGhhSW1hZ2UoKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBkTGVmdCA9IHN0ZCAvIDI7Ci0gICAgICAgICAgICBkUmlnaHQgPSBzdGQgLSBkTGVmdDsKLSAg
ICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGlmICghKHN0ZCAl
IDIpKSB7Ci0gICAgICAgICAgICBkTGVmdCsrOwotICAgICAgICAgICAgZFJpZ2h0LS07CisgICAg
ICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFycmF5OworICAgICAg
ICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7CisgICAgICAgICAgICBzcmNQaXhl
bEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKICAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBj
YXNlIDI6Ci0gICAgICAgIGlmICghKHN0ZCAlIDIpKSB7Ci0gICAgICAgICAgICBkUmlnaHQrKzsK
LSAgICAgICAgICAgIHN0ZCsrOworCisgICAgICAgIGlmIChrZXJuZWxTaXplWSkgeworICAgICAg
ICAgICAga2VybmVsUG9zaXRpb24oaSwga2VybmVsU2l6ZVksIGR5TGVmdCwgZHlSaWdodCk7Cisg
ICAgICAgICAgICBib3hCbHVyKHRtcFBpeGVsQXJyYXksIHNyY1BpeGVsQXJyYXksIGtlcm5lbFNp
emVZLCBkeUxlZnQsIGR5UmlnaHQsIHN0cmlkZSwgNCwgcGFpbnRTaXplLmhlaWdodCgpLCBwYWlu
dFNpemUud2lkdGgoKSwgaXNBbHBoYUltYWdlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgQnl0ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAg
ICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxB
cnJheSA9IGF1eFBpeGVsQXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7CiAgICAgfQog
fQogCitpbmxpbmUgdm9pZCBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseShCeXRlQXJyYXkq
IHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVs
U2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpCit7CisgICAg
Ly8gVGhlIHNlbGVjdGlvbiBoZXJlIGV2ZW50dWFsbHkgc2hvdWxkIGhhcHBlbiBkeW5hbWljYWxs
eSBvbiBzb21lIHBsYXRmb3Jtcy4KKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykK
KyAgICBwbGF0Zm9ybUFwcGx5TmVvbihzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJu
ZWxTaXplWCwga2VybmVsU2l6ZVksIHBhaW50U2l6ZSk7CisjZWxzZQorICAgIHBsYXRmb3JtQXBw
bHlHZW5lcmljKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBrZXJu
ZWxTaXplWSwgcGFpbnRTaXplKTsKKyNlbmRpZgorfQorCiB2b2lkIEZFR2F1c3NpYW5CbHVyOjpj
YWxjdWxhdGVLZXJuZWxTaXplKEZpbHRlciogZmlsdGVyLCB1bnNpZ25lZCYga2VybmVsU2l6ZVgs
IHVuc2lnbmVkJiBrZXJuZWxTaXplWSwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSkKIHsKICAgICBz
dGRYID0gZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShzdGRYKTsKQEAgLTE5MywzMCArMjA0
LDcgQEAgdm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBwbHkoKQogICAgIFJlZlB0cjxCeXRlQXJyYXk+
IHRtcEltYWdlRGF0YSA9IEJ5dGVBcnJheTo6Y3JlYXRlKHBhaW50U2l6ZS53aWR0aCgpICogcGFp
bnRTaXplLmhlaWdodCgpICogNCk7CiAgICAgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5ID0gdG1w
SW1hZ2VEYXRhLmdldCgpOwogCi0gICAgaW50IHN0cmlkZSA9IDQgKiBwYWludFNpemUud2lkdGgo
KTsKLSAgICBpbnQgZHhMZWZ0ID0gMDsKLSAgICBpbnQgZHhSaWdodCA9IDA7Ci0gICAgaW50IGR5
TGVmdCA9IDA7Ci0gICAgaW50IGR5UmlnaHQgPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
MzsgKytpKSB7Ci0gICAgICAgIGlmIChrZXJuZWxTaXplWCkgewotICAgICAgICAgICAga2VybmVs
UG9zaXRpb24oaSwga2VybmVsU2l6ZVgsIGR4TGVmdCwgZHhSaWdodCk7Ci0gICAgICAgICAgICBi
b3hCbHVyKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBkeExlZnQs
IGR4UmlnaHQsIDQsIHN0cmlkZSwgcGFpbnRTaXplLndpZHRoKCksIHBhaW50U2l6ZS5oZWlnaHQo
KSwgaXNBbHBoYUltYWdlKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQnl0ZUFy
cmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKLSAgICAgICAgICAgIHRtcFBpeGVs
QXJyYXkgPSBzcmNQaXhlbEFycmF5OwotICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1eFBp
eGVsQXJyYXk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2VybmVsU2l6ZVkpIHsKLSAgICAg
ICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNpemVZLCBkeUxlZnQsIGR5UmlnaHQpOwot
ICAgICAgICAgICAgYm94Qmx1cih0bXBQaXhlbEFycmF5LCBzcmNQaXhlbEFycmF5LCBrZXJuZWxT
aXplWSwgZHlMZWZ0LCBkeVJpZ2h0LCBzdHJpZGUsIDQsIHBhaW50U2l6ZS5oZWlnaHQoKSwgcGFp
bnRTaXplLndpZHRoKCksIGlzQWxwaGFJbWFnZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7Ci0gICAgICAg
ICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKLSAgICAgICAgICAgIHNyY1BpeGVs
QXJyYXkgPSBhdXhQaXhlbEFycmF5OwotICAgICAgICB9Ci0gICAgfQorICAgIHBsYXRmb3JtQXBw
bHkoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJheSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZ
LCBwYWludFNpemUpOwogfQogCiB2b2lkIEZFR2F1c3NpYW5CbHVyOjpkdW1wKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaAppbmRleCAxZDU4ZWYzLi4xNGM2NjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC00
OSw2ICs0OSwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVLZXJuZWxT
aXplKEZpbHRlciosIHVuc2lnbmVkJiBrZXJuZWxTaXplWCwgdW5zaWduZWQmIGtlcm5lbFNpemVZ
LCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZKTsKIAorICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBrZXJu
ZWxQb3NpdGlvbihpbnQgYm94Qmx1ciwgdW5zaWduZWQmIHN0ZCwgaW50JiBkTGVmdCwgaW50JiBk
UmlnaHQpOworICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHkoQnl0ZUFycmF5KiBzcmNQaXhl
bEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1
bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKTsKKworICAgIGlubGluZSB2
b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFy
cmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVs
U2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSk7CisgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBs
eU5lb24oQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXks
IHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFp
bnRTaXplKTsKKwogcHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihGaWx0ZXIqLCBmbG9hdCwg
ZmxvYXQpOwogCkBAIC01Niw2ICs2MiwzNCBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc3RkWTsK
IH07CiAKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5CbHVyOjprZXJuZWxQb3NpdGlvbihpbnQgYm94
Qmx1ciwgdW5zaWduZWQmIHN0ZCwgaW50JiBkTGVmdCwgaW50JiBkUmlnaHQpCit7CisgICAgLy8g
Y2hlY2sgaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2ZpbHRlcnMuaHRtbCNmZUdhdXNzaWFuQmx1
ckVsZW1lbnQgZm9yIGRldGFpbHMKKyAgICBzd2l0Y2ggKGJveEJsdXIpIHsKKyAgICBjYXNlIDA6
CisgICAgICAgIGlmICghKHN0ZCAlIDIpKSB7CisgICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDIg
LSAxOworICAgICAgICAgICAgZFJpZ2h0ID0gc3RkIC0gZExlZnQ7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDI7CisgICAgICAgICAgICBkUmlnaHQgPSBzdGQg
LSBkTGVmdDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIDE6CisgICAgICAg
IGlmICghKHN0ZCAlIDIpKSB7CisgICAgICAgICAgICBkTGVmdCsrOworICAgICAgICAgICAgZFJp
Z2h0LS07CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgorICAgICAgICBp
ZiAoIShzdGQgJSAyKSkgeworICAgICAgICAgICAgZFJpZ2h0Kys7CisgICAgICAgICAgICBzdGQr
KzsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKaW5kZXgg
MTNhNjlmZC4uMDZkNzFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCkBAIC0yOSwxNCArMjksNyBAQAogI2lm
IEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUgIkZFTGlnaHRpbmcuaCIKIAotI2luY2x1ZGUgIkxp
Z2h0U291cmNlLmgiCi0jaW5jbHVkZSAiUG9pbnRMaWdodFNvdXJjZS5oIgotI2luY2x1ZGUgIlNw
b3RMaWdodFNvdXJjZS5oIgotCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCiAj
aW5jbHVkZSAiRkVMaWdodGluZ05FT04uaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMzQsNiArMjI3LDMwIEBAIHZvaWQgRkVM
aWdodGluZzo6c2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNv
dXJjZTo6UGFpbnRpbmdECiAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGlu
Z0RhdGEsIGxpZ2h0WCwgbGlnaHRZLCBmYWN0b3JYLCBmYWN0b3JZLCBub3JtYWxWZWN0b3IpOwog
fQogCitpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyhMaWdodGlu
Z0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKK3sK
KyAgICBJbnRQb2ludCBub3JtYWxWZWN0b3I7CisgICAgaW50IG9mZnNldCA9IDA7CisKKyAgICBm
b3IgKGludCB5ID0gMTsgeSA8IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSkgeworICAg
ICAgICBvZmZzZXQgPSB5ICogZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSArIGNQaXhl
bFNpemU7CisgICAgICAgIGZvciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5
T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7CisgICAgICAgICAgICBkYXRhLmludGVy
aW9yKG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKKyAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9m
ZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCB5LCBjRmFjdG9yMWRpdjQsIGNGYWN0b3IxZGl2
NCwgbm9ybWFsVmVjdG9yKTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW5saW5lIHZvaWQgRkVM
aWdodGluZzo6cGxhdGZvcm1BcHBseShMaWdodGluZ0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQ
YWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKK3sKKyAgICAvLyBUaGUgc2VsZWN0aW9uIGhlcmUg
ZXZlbnR1YWxseSBzaG91bGQgaGFwcGVuIGR5bmFtaWNhbGx5IG9uIHNvbWUgcGxhdGZvcm1zLgor
I2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorICAgIHBsYXRmb3JtQXBwbHlOZW9u
KGRhdGEsIHBhaW50aW5nRGF0YSk7CisjZWxzZQorICAgIHBsYXRmb3JtQXBwbHlHZW5lcmljKGRh
dGEsIHBhaW50aW5nRGF0YSk7CisjZW5kaWYKK30KKwogYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGln
aHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICBM
aWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhIHBhaW50aW5nRGF0YTsKQEAgLTI1NSwzNSArMjcyLDM1
IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQg
d2lkdGgsIGludCBoZWlnaHQpCiAgICAgcGFpbnRpbmdEYXRhLmNvbG9yVmVjdG9yID0gRmxvYXRQ
b2ludDNEKG1fbGlnaHRpbmdDb2xvci5yZWQoKSwgbV9saWdodGluZ0NvbG9yLmdyZWVuKCksIG1f
bGlnaHRpbmdDb2xvci5ibHVlKCkpOwogICAgIG1fbGlnaHRTb3VyY2UtPmluaXRQYWludGluZ0Rh
dGEocGFpbnRpbmdEYXRhKTsKIAotICAgIC8vIFRvcC9MZWZ0IGNvcm5lcgorICAgIC8vIFRvcC9M
ZWZ0IGNvcm5lci4KICAgICBJbnRQb2ludCBub3JtYWxWZWN0b3I7CiAgICAgaW50IG9mZnNldCA9
IDA7CiAgICAgZGF0YS50b3BMZWZ0KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKICAgICBzZXRQaXhl
bChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgMCwgMCwgY0ZhY3RvcjJkaXYzLCBjRmFjdG9y
MmRpdjMsIG5vcm1hbFZlY3Rvcik7CiAKLSAgICAvLyBUb3AvUmlnaHQgcGl4ZWwKKyAgICAvLyBU
b3AvUmlnaHQgcGl4ZWwuCiAgICAgb2Zmc2V0ID0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVs
U2l6ZSAtIGNQaXhlbFNpemU7CiAgICAgZGF0YS50b3BSaWdodChvZmZzZXQsIG5vcm1hbFZlY3Rv
cik7CiAgICAgc2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIGRhdGEud2lkdGhE
ZWNyZWFzZWRCeU9uZSwgMCwgY0ZhY3RvcjJkaXYzLCBjRmFjdG9yMmRpdjMsIG5vcm1hbFZlY3Rv
cik7CiAKLSAgICAvLyBCb3R0b20vTGVmdCBwaXhlbAorICAgIC8vIEJvdHRvbS9MZWZ0IHBpeGVs
LgogICAgIG9mZnNldCA9IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgKiBkYXRhLndpZHRoTXVs
dGlwbGllZEJ5UGl4ZWxTaXplOwogICAgIGRhdGEuYm90dG9tTGVmdChvZmZzZXQsIG5vcm1hbFZl
Y3Rvcik7CiAgICAgc2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAsIGRhdGEu
aGVpZ2h0RGVjcmVhc2VkQnlPbmUsIGNGYWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYzLCBub3JtYWxW
ZWN0b3IpOwogCi0gICAgLy8gQm90dG9tL1JpZ2h0IHBpeGVsCisgICAgLy8gQm90dG9tL1JpZ2h0
IHBpeGVsLgogICAgIG9mZnNldCA9IGhlaWdodCAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhl
bFNpemUgLSBjUGl4ZWxTaXplOwogICAgIGRhdGEuYm90dG9tUmlnaHQob2Zmc2V0LCBub3JtYWxW
ZWN0b3IpOwogICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCBkYXRhLndp
ZHRoRGVjcmVhc2VkQnlPbmUsIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUsIGNGYWN0b3IyZGl2
MywgY0ZhY3RvcjJkaXYzLCBub3JtYWxWZWN0b3IpOwogCiAgICAgaWYgKHdpZHRoID49IDMpIHsK
LSAgICAgICAgLy8gVG9wIHJvdworICAgICAgICAvLyBUb3Agcm93LgogICAgICAgICBvZmZzZXQg
PSBjUGl4ZWxTaXplOwogICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNy
ZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0
YS50b3BSb3cob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwogICAgICAgICAgICAgaW5saW5lU2V0UGl4
ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIDAsIGNGYWN0b3IxZGl2MywgY0ZhY3Rv
cjFkaXYyLCBub3JtYWxWZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIC8vIEJvdHRvbSByb3cK
KyAgICAgICAgLy8gQm90dG9tIHJvdy4KICAgICAgICAgb2Zmc2V0ID0gZGF0YS5oZWlnaHREZWNy
ZWFzZWRCeU9uZSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKyBjUGl4ZWxTaXpl
OwogICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNyZWFzZWRCeU9uZTsg
Kyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5ib3R0b21Sb3co
b2Zmc2V0LCBub3JtYWxWZWN0b3IpOwpAQCAtMjkyLDEzICszMDksMTMgQEAgYm9vbCBGRUxpZ2h0
aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdo
dCkKICAgICB9CiAKICAgICBpZiAoaGVpZ2h0ID49IDMpIHsKLSAgICAgICAgLy8gTGVmdCBjb2x1
bW4KKyAgICAgICAgLy8gTGVmdCBjb2x1bW4uCiAgICAgICAgIG9mZnNldCA9IGRhdGEud2lkdGhN
dWx0aXBsaWVkQnlQaXhlbFNpemU7CiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5o
ZWlnaHREZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZzZXQgKz0gZGF0YS53aWR0aE11bHRpcGxpZWRC
eVBpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5sZWZ0Q29sdW1uKG9mZnNldCwgbm9ybWFs
VmVjdG9yKTsKICAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRp
bmdEYXRhLCAwLCB5LCBjRmFjdG9yMWRpdjIsIGNGYWN0b3IxZGl2Mywgbm9ybWFsVmVjdG9yKTsK
ICAgICAgICAgfQotICAgICAgICAvLyBSaWdodCBjb2x1bW4KKyAgICAgICAgLy8gUmlnaHQgY29s
dW1uLgogICAgICAgICBvZmZzZXQgPSAoZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSA8
PCAxKSAtIGNQaXhlbFNpemU7CiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWln
aHREZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZzZXQgKz0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBp
eGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5yaWdodENvbHVtbihvZmZzZXQsIG5vcm1hbFZl
Y3Rvcik7CkBAIC0zMDcsMTggKzMyNCw4IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5n
KEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgfQogCiAgICAg
aWYgKHdpZHRoID49IDMgJiYgaGVpZ2h0ID49IDMpIHsKLSAgICAgICAgLy8gSW50ZXJpb3IgcGl4
ZWxzCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCi0gICAgICAgIGRyYXdJbnRl
cmlvclBpeGVscyhkYXRhLCBwYWludGluZ0RhdGEpOwotI2Vsc2UKLSAgICAgICAgZm9yIChpbnQg
eSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3kpIHsKLSAgICAgICAgICAg
IG9mZnNldCA9IHkgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6
ZTsKLSAgICAgICAgICAgIGZvciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5
T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7Ci0gICAgICAgICAgICAgICAgZGF0YS5p
bnRlcmlvcihvZmZzZXQsIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAgICAgICAgICAgaW5saW5lU2V0
UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIHksIGNGYWN0b3IxZGl2NCwgY0Zh
Y3RvcjFkaXY0LCBub3JtYWxWZWN0b3IpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5k
aWYKKyAgICAgICAgLy8gSW50ZXJpb3IgcGl4ZWxzLgorICAgICAgICBwbGF0Zm9ybUFwcGx5KGRh
dGEsIHBhaW50aW5nRGF0YSk7CiAgICAgfQogCiAgICAgaW50IGxhc3RQaXhlbCA9IGRhdGEud2lk
dGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKiBoZWlnaHQ7CkBAIC0zNjUsMTE4ICszNzIsNiBAQCB2
b2lkIEZFTGlnaHRpbmc6OmFwcGx5KCkKICAgICBkcmF3TGlnaHRpbmcoc3JjUGl4ZWxBcnJheSwg
YWJzb2x1dGVQYWludFNpemUud2lkdGgoKSwgYWJzb2x1dGVQYWludFNpemUuaGVpZ2h0KCkpOwog
fQogCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCi0KLXN0YXRpYyBpbnQgZ2V0
UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpCi17Ci0gICAgLy8gQ2FsbGluZyBhIHBv
d2YgZnVuY3Rpb24gZnJvbSB0aGUgYXNzZW1ibHkgY29kZSB3b3VsZCByZXF1aXJlIHRvIHNhdmUK
LSAgICAvLyBhbmQgcmVsb2FkIGEgbG90IG9mIE5FT04gcmVnaXN0ZXJzLiBTaW5jZSB0aGUgYmFz
ZSBpcyBpbiByYW5nZSBbMC4uMV0KLSAgICAvLyBhbmQgb25seSA4IGJpdCBwcmVjaXNpb24gaXMg
cmVxdWlyZWQsIHdlIHVzZSBvdXIgb3duIHBvd2YgZnVuY3Rpb24uCi0gICAgLy8gVGhpcyBpcyBw
cm9iYWJseSBub3QgdGhlIGJlc3QsIGJ1dCBpdCB1c2VzIG9ubHkgYSBmZXcgcmVnaXN0ZXJzIGFu
ZAotICAgIC8vIGdpdmVzIHVzIGVub3VnaCBwcmVjaXNpb24gKG1vZGlmeWluZyB0aGUgZXhwb25l
bnQgZmllbGQgZGlyZWN0bHkgd291bGQKLSAgICAvLyBhbHNvIGJlIHBvc3NpYmxlKS4KLQotICAg
IC8vIEZpcnN0LCB3ZSBsaW1pdCB0aGUgZXhwb25lbnQgdG8gbWF4aW11bSBvZiA2NCwgd2hpY2gg
Z2l2ZXMgdXMgZW5vdWdoCi0gICAgLy8gcHJlY2lzaW9uLiBXZSBzcGxpdCB0aGUgZXhwb25lbnQg
dG8gYW4gaW50ZWdlciBhbmQgZnJhY3Rpb24gcGFydCwKLSAgICAvLyBzaW5jZSBhXnggPSAoYV55
KSooYV56KSB3aGVyZSB4ID0geSt6LiBUaGUgaW50ZWdlciBleHBvbmVudCBvZiB0aGUKLSAgICAv
LyBwb3dlciBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlLCBhbmQgdGhlIGZyYWN0aW9uIGV4cG9uZW50
IG9mIHRoZSBwb3dlcgotICAgIC8vIGlzIGVzdGltYXRlZCBieSBzcXVhcmUgcm9vdCBhc3NlbWJs
eSBpbnN0cnVjdGlvbnMuCi0gICAgaW50IGksIHJlc3VsdDsKLQotICAgIGlmIChleHBvbmVudCA8
IDApCi0gICAgICAgIGV4cG9uZW50ID0gMSAvICgtZXhwb25lbnQpOwotCi0gICAgaWYgKGV4cG9u
ZW50ID4gNjMuOTkpCi0gICAgICAgIGV4cG9uZW50ID0gNjMuOTk7Ci0KLSAgICBleHBvbmVudCAv
PSA2NDsKLSAgICByZXN1bHQgPSAwOwotICAgIGZvciAoaSA9IDExOyBpID49IDA7IC0taSkgewot
ICAgICAgICBleHBvbmVudCAqPSAyOwotICAgICAgICBpZiAoZXhwb25lbnQgPj0gMSkgewotICAg
ICAgICAgICAgcmVzdWx0IHw9IDEgPDwgaTsKLSAgICAgICAgICAgIGV4cG9uZW50IC09IDE7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBGRUxpZ2h0aW5n
OjpkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNvdXJjZTo6UGFp
bnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCi17Ci0gICAgV1RGX0FMSUdORUQoRkVMaWdodGluZ0Zs
b2F0QXJndW1lbnRzRm9yTmVvbiwgZmxvYXRBcmd1bWVudHMsIDE2KTsKLQotICAgIEZFTGlnaHRp
bmdQYWludGluZ0RhdGFGb3JOZW9uIG5lb25EYXRhID0gewotICAgICAgICBkYXRhLnBpeGVscy0+
ZGF0YSgpLAotICAgICAgICBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAxLAotICAgICAgICBk
YXRhLmhlaWdodERlY3JlYXNlZEJ5T25lIC0gMSwKLSAgICAgICAgMCwKLSAgICAgICAgMCwKLSAg
ICAgICAgMCwKLSAgICAgICAgJmZsb2F0QXJndW1lbnRzLAotICAgICAgICBmZUxpZ2h0aW5nQ29u
c3RhbnRzRm9yTmVvbigpCi0gICAgfTsKLQotICAgIC8vIFNldCBsaWdodCBzb3VyY2UgYXJndW1l
bnRzLgotICAgIGZsb2F0QXJndW1lbnRzLmNvbnN0T25lID0gMTsKLQotICAgIGZsb2F0QXJndW1l
bnRzLmNvbG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgpOwotICAgIGZsb2F0QXJndW1lbnRz
LmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4oKTsKLSAgICBmbG9hdEFyZ3VtZW50
cy5jb2xvckJsdWUgPSBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgpOwotICAgIGZsb2F0QXJndW1lbnRz
LnBhZGRpbmc0ID0gMDsKLQotICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkgPT0gTFNfUE9J
TlQpIHsKLSAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9MSUdIVDsKLSAgICAg
ICAgUG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFBvaW50
TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsKLSAgICAgICAgZmxvYXRBcmd1bWVu
dHMubGlnaHRYID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7Ci0gICAgICAgIGZs
b2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOwot
ICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlv
bigpLnooKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAwOwotICAgIH0gZWxz
ZSBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExTX1NQT1QpIHsKLSAgICAgICAgbmVvbkRh
dGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJR0hUOwotICAgICAgICBTcG90TGlnaHRTb3VyY2UqIHNw
b3RMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFNwb3RMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3Vy
Y2UuZ2V0KCkpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBzcG90TGlnaHRTb3Vy
Y2UtPnBvc2l0aW9uKCkueCgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBzcG90
TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdo
dFogPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOwotICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy5wYWRkaW5nMiA9IDA7Ci0KLSAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlyZWN0aW9uWCA9
IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50
cy5kaXJlY3Rpb25ZID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55KCk7Ci0gICAgICAg
IGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblogPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9y
LnooKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzMgPSAwOwotCi0gICAgICAgIGZs
b2F0QXJndW1lbnRzLmNvbmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGlt
aXQ7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVGdWxsTGlnaHQgPSBwYWludGluZ0RhdGEu
Y29uZUZ1bGxMaWdodDsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1dE9mZlJhbmdlID0g
cGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBhaW50aW5nRGF0YS5jb25lRnVsbExpZ2h0
OwotICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQgPSBnZXRQb3dlckNvZWZmaWNpZW50cyhz
cG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSk7Ci0gICAgICAgIGlmIChzcG90TGln
aHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAxKQotICAgICAgICAgICAgbmVvbkRhdGEu
ZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19ESVNUQU5UKTsKLSAgICAgICAgZmxvYXRB
cmd1bWVudHMubGlnaHRYID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngoKTsKLSAgICAgICAg
ZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnkoKTsKLSAg
ICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLnoo
KTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAxOwotICAgIH0KLQotICAgIC8v
IFNldCBsaWdodGluZyBhcmd1bWVudHMuCi0gICAgZmxvYXRBcmd1bWVudHMuc3VyZmFjZVNjYWxl
ID0gZGF0YS5zdXJmYWNlU2NhbGU7Ci0gICAgZmxvYXRBcmd1bWVudHMubWludXNTdXJmYWNlU2Nh
bGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3VyZmFjZVNjYWxlIC8gNDsKLSAgICBpZiAobV9saWdo
dGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlmZnVzZUxpZ2h0aW5nKQotICAgICAgICBmbG9hdEFy
Z3VtZW50cy5kaWZmdXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsKLSAgICBlbHNlIHsK
LSAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdIVDsKLSAgICAgICAg
ZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxhckNvbnN0YW50OwotICAg
ICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmljaWVudHMobV9z
cGVjdWxhckV4cG9uZW50KTsKLSAgICAgICAgaWYgKG1fc3BlY3VsYXJFeHBvbmVudCA9PSAxKQot
ICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9FWFBPTkVOVF9JU18x
OwotICAgIH0KLSAgICBpZiAoZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID09IDEpCi0g
ICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfRElGRlVTRV9DT05TVF9JU18xOwotCi0gICAg
bmVvbkRyYXdMaWdodGluZygmbmVvbkRhdGEpOwotfQotI2VuZGlmIC8vIENQVShBUk1fTkVPTikg
JiYgQ09NUElMRVIoR0NDKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKaW5kZXggM2RjNDZlOS4uYjkwOGVjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5n
LmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJGaWx0
ZXJFZmZlY3QuaCIKICNpbmNsdWRlICJMaWdodFNvdXJjZS5oIgorI2luY2x1ZGUgIlBvaW50TGln
aHRTb3VyY2UuaCIKKyNpbmNsdWRlICJTcG90TGlnaHRTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYv
Qnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKQEAgLTgwLDkgKzgyLDEx
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0
YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmLAogICAgICAgICAgICAgICAgICAgaW50IGxp
Z2h0WCwgaW50IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50UG9pbnQm
IG5vcm1hbFZlY3Rvcik7CiAKLSNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKLSAg
ICB2b2lkIGRyYXdJbnRlcmlvclBpeGVscyhMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFp
bnRpbmdEYXRhJik7Ci0jZW5kaWYKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5KExpZ2h0
aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmKTsKKworICAgIGlubGluZSB2b2lk
IHBsYXRmb3JtQXBwbHlHZW5lcmljKExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGlu
Z0RhdGEmKTsKKyAgICBzdGF0aWMgaW50IGdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4cG9u
ZW50KTsKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5TmVvbihMaWdodGluZ0RhdGEmLCBM
aWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJik7CiAKICAgICBMaWdodGluZ1R5cGUgbV9saWdodGlu
Z1R5cGU7CiAgICAgUmVmUHRyPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lh
bkJsdXJORU9OLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
YXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmYzOTA4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHAKQEAgLTAsMCArMSwz
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBab2x0YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJGRUdhdXNzaWFuQmx1ck5FT04uaCIKKworI2lmIENQVShBUk1fTkVP
TikgJiYgQ09NUElMRVIoR0NDKQorCisjaW5jbHVkZSA8d3RmL0FsaWdubWVudC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBXVEZfQUxJR05FRCh1bnNpZ25lZCBjaGFyLCBzX0ZF
R2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbltdLCAxNikgPSB7CisgICAgLy8gTWFwcGluZyBm
cm9tIEFSTSB0byBORU9OIHJlZ2lzdGVycy4KKyAgICAwLCAxNiwgMTYsIDE2LCAxLCAgMTYsIDE2
LCAxNiwgMiwgIDE2LCAxNiwgMTYsIDMsICAxNiwgMTYsIDE2LAorICAgIC8vIE1hcHBpbmcgZnJv
bSBORU9OIHRvIEFSTSByZWdpc3RlcnMuCisgICAgMCwgNCwgIDgsICAxMiwgMTYsIDE2LCAxNiwg
MTYKK307CisKK3Vuc2lnbmVkIGNoYXIqIGZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbigp
Cit7CisgICAgcmV0dXJuIHNfRkVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uOworfQorCisj
ZGVmaW5lIEFTU1RSSU5HKHN0cikgI3N0cgorI2RlZmluZSBUT1NUUklORyh2YWx1ZSkgQVNTVFJJ
TkcodmFsdWUpCisKKyNkZWZpbmUgU1RSSURFX09GRlNFVCBUT1NUUklORygwKQorI2RlZmluZSBT
VFJJREVfV0lEVEhfT0ZGU0VUIFRPU1RSSU5HKDQpCisjZGVmaW5lIFNUUklERV9MSU5FX09GRlNF
VCBUT1NUUklORyg4KQorI2RlZmluZSBTVFJJREVfTElORV9XSURUSF9PRkZTRVQgVE9TVFJJTkco
MTIpCisjZGVmaW5lIFJFTUFJTklOR19TVFJJREVTX09GRlNFVCBUT1NUUklORygxNikKKyNkZWZp
bmUgRElTVEFOQ0VfTEVGVF9PRkZTRVQgVE9TVFJJTkcoMjApCisjZGVmaW5lIERJU1RBTkNFX1JJ
R0hUX09GRlNFVCBUT1NUUklORygyNCkKKyNkZWZpbmUgSU5WRVJURURfS0VSTkVMX1NJWkVfT0ZG
U0VUIFRPU1RSSU5HKDI4KQorI2RlZmluZSBQQUlOVElOR19DT05TVEFOVFNfT0ZGU0VUIFRPU1RS
SU5HKDMyKQorI2RlZmluZSBOTCAiXG4iCisKKy8vIFJlZ2lzdGVyIGFsbG9jYXRpb24uCisjZGVm
aW5lIFNPVVJDRV9SICAgICAgICAgICAgICAgICJyMCIKKyNkZWZpbmUgREVTVElOQVRJT05fUiAg
ICAgICAgICAgInIxIgorI2RlZmluZSBMRUZUX1IgICAgICAgICAgICAgICAgICAicjIiCisjZGVm
aW5lIFJJR0hUX1IgICAgICAgICAgICAgICAgICJyMyIKKyNkZWZpbmUgU09VUkNFX0VORF9SICAg
ICAgICAgICAgInI0IgorI2RlZmluZSBERVNUSU5BVElPTl9FTkRfUiAgICAgICAicjUiCisjZGVm
aW5lIFNUUklERV9SICAgICAgICAgICAgICAgICJyNiIKKyNkZWZpbmUgU1RSSURFX1dJRFRIX1Ig
ICAgICAgICAgInI3IgorI2RlZmluZSBTVFJJREVfTElORV9SICAgICAgICAgICAicjgiCisjZGVm
aW5lIFNPVVJDRV9MSU5FX0VORF9SICAgICAgICJyMTAiCisjZGVmaW5lIERJU1RBTkNFX0xFRlRf
UiAgICAgICAgICJyMTEiCisjZGVmaW5lIERJU1RBTkNFX1JJR0hUX1IgICAgICAgICJyMTIiCisj
ZGVmaW5lIE1BWF9LRVJORUxfU0laRV9SICAgICAgICJsciIKKworLy8gQWx0ZXJuYXRlIG5hbWVz
LgorI2RlZmluZSBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpFX1IgU09VUkNFX0VORF9SCisjZGVm
aW5lIElOSVRfUEFJTlRJTkdfQ09OU1RBTlRTX1IgREVTVElOQVRJT05fRU5EX1IKKyNkZWZpbmUg
SU5JVF9TVU1fUiBMRUZUX1IKKyNkZWZpbmUgUkVNQUlOSU5HX1NUUklERVNfUiBTT1VSQ0VfTElO
RV9FTkRfUgorCisjZGVmaW5lIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgICJxMCIKKyNkZWZpbmUg
U1VNX1EgICAgICAgICAgICAgICAgICAgInExIgorI2RlZmluZSBQSVhFTF9RICAgICAgICAgICAg
ICAgICAicTIiCisjZGVmaW5lIFBJWEVMX0QwICAgICAgICAgICAgICAgICJkNCIKKyNkZWZpbmUg
UElYRUxfRDEgICAgICAgICAgICAgICAgImQ1IgorI2RlZmluZSBQSVhFTF9EMDAgICAgICAgICAg
ICAgICAiZDRbMF0iCisjZGVmaW5lIFBJWEVMX0QwMSAgICAgICAgICAgICAgICJkNFsxXSIKKyNk
ZWZpbmUgUElYRUxfUzEgICAgICAgICAgICAgICAgInM5IgorI2RlZmluZSBQSVhFTF9EMTAgICAg
ICAgICAgICAgICAiZDVbMF0iCisjZGVmaW5lIFBJWEVMX1MyICAgICAgICAgICAgICAgICJzMTAi
CisjZGVmaW5lIFBJWEVMX0QxMSAgICAgICAgICAgICAgICJkNVsxXSIKKyNkZWZpbmUgUkVNQUlO
SU5HX1NUUklERVNfUzAgICAgInMxMiIKKworI2RlZmluZSBSRUFEX1JBTkdFICAgICAgICAgICAg
ICAiZDE2LWQxOCIKKyNkZWZpbmUgUkVNQVBfQVJNX05FT04xX1EgICAgICAgImQxNiIKKyNkZWZp
bmUgUkVNQVBfQVJNX05FT04yX1EgICAgICAgImQxNyIKKyNkZWZpbmUgUkVNQVBfTkVPTl9BUk1f
USAgICAgICAgImQxOCIKKworYXNtICggLy8gTk9MSU5UCisiLmdsb2JsICIgVE9TVFJJTkcobmVv
bkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKSBOTAorVE9TVFJJTkcobmVvbkRyYXdBbGxDaGFu
bmVsR2F1c3NpYW5CbHVyKSAiOiIgTkwKKyAgICAic3RtZGIgc3AhLCB7cjQtcjgsIHIxMCwgcjEx
LCBscn0iIE5MCisgICAgImxkciAiIFNUUklERV9SICIsIFtyMiwgIyIgU1RSSURFX09GRlNFVCAi
XSIgTkwKKyAgICAibGRyICIgU1RSSURFX1dJRFRIX1IgIiwgW3IyLCAjIiBTVFJJREVfV0lEVEhf
T0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBESVNUQU5DRV9MRUZUX1IgIiwgW3IyLCAjIiBESVNU
QU5DRV9MRUZUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRElTVEFOQ0VfUklHSFRfUiAiLCBb
cjIsICMiIERJU1RBTkNFX1JJR0hUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgU1RSSURFX0xJ
TkVfUiAiLCBbcjIsICMiIFNUUklERV9MSU5FX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgU09V
UkNFX0xJTkVfRU5EX1IgIiwgW3IyLCAjIiBTVFJJREVfTElORV9XSURUSF9PRkZTRVQgIl0iIE5M
CisgICAgImxkciAiIElOSVRfSU5WRVJURURfS0VSTkVMX1NJWkVfUiAiLCBbcjIsICMiIElOVkVS
VEVEX0tFUk5FTF9TSVpFX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgSU5JVF9QQUlOVElOR19D
T05TVEFOVFNfUiAiLCBbcjIsICMiIFBBSU5USU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisK
KyAgICAvLyBJbml0aWFsaXplIGxvY2Fscy4KKyAgICAibXVsICIgRElTVEFOQ0VfTEVGVF9SICIs
ICIgRElTVEFOQ0VfTEVGVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAibXVsICIgRElTVEFOQ0Vf
UklHSFRfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJtb3Yg
IiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKyAgICAiY21wICIg
TUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJtb3ZjcyAiIE1B
WF9LRVJORUxfU0laRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgU09VUkNF
X0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAg
InZkdXAuZjMyICIgSU5WRVJURURfS0VSTkVMX1NJWkVfUSAiLCAiIElOSVRfSU5WRVJURURfS0VS
TkVMX1NJWkVfUiBOTAorICAgICJ2bGQxLmYzMiB7ICIgUkVBRF9SQU5HRSAiIH0sIFsiIElOSVRf
UEFJTlRJTkdfQ09OU1RBTlRTX1IgIl0hIiBOTAorCisiLmFsbENoYW5uZWxNYWluTG9vcDoiIE5M
CisKKyAgICAvLyBJbml0aWFsaXplIHRoZSBzdW0gdmFyaWFibGUuCisgICAgInZtb3YudTMyICIg
U1VNX1EgIiwgIzAiIE5MCisgICAgIm1vdiAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfUiBOTAor
ICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIE1BWF9LRVJORUxfU0la
RV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAi
YmNzIC5hbGxDaGFubmVsSW5pdFN1bURvbmUiIE5MCisiLmFsbENoYW5uZWxJbml0U3VtOiIgTkwK
KyAgICAidmxkMS51MzIgIiBQSVhFTF9EMDAgIiwgWyIgSU5JVF9TVU1fUiAiXSwgIiBTVFJJREVf
UiBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9B
Uk1fTkVPTjJfUSBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAifSwg
IiBSRU1BUF9BUk1fTkVPTjFfUSBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1Eg
IiwgIiBQSVhFTF9RIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1Ig
TkwKKyAgICAiYmNjIC5hbGxDaGFubmVsSW5pdFN1bSIgTkwKKyIuYWxsQ2hhbm5lbEluaXRTdW1E
b25lOiIgTkwKKworICAgIC8vIEJsdXJyaW5nLgorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwg
IiBTT1VSQ0VfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9O
X0VORF9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgInN1
YiAiIExFRlRfUiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfTEVGVF9SIE5MCisgICAgImFk
ZCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKworIi5h
bGxDaGFubmVsQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAiIFBJWEVMX1EgIiwgIiBTVU1f
USBOTAorICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICIgSU5WRVJURURf
S0VSTkVMX1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxf
USBOTAorICAgICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAiLSIgUElYRUxfRDEg
In0sICIgUkVNQVBfTkVPTl9BUk1fUSBOTAorICAgICJ2c3QxLnUzMiAiIFBJWEVMX0QwMCAiLCBb
IiBERVNUSU5BVElPTl9SICJdLCAiIFNUUklERV9SIE5MCisKKyAgICAiY21wICIgTEVGVF9SICIs
ICIgU09VUkNFX1IgTkwKKyAgICAiYmNjIC5hbGxDaGFubmVsU2tpcExlZnQiIE5MCisgICAgInZs
ZDEudTMyICIgUElYRUxfRDAwICIsIFsiIExFRlRfUiAiXSIgTkwKKyAgICAidnRibC44ICIgUElY
RUxfRDEgIiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRi
bC44ICIgUElYRUxfRDAgIiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwK
KyAgICAidnN1Yi51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbGxD
aGFubmVsU2tpcExlZnQ6ICIgTkwKKworICAgICJjbXAgIiBSSUdIVF9SICIsICIgU09VUkNFX0VO
RF9SIE5MCisgICAgImJjcyAuYWxsQ2hhbm5lbFNraXBSaWdodCIgTkwKKyAgICAidmxkMS51MzIg
IiBQSVhFTF9EMDAgIiwgWyIgUklHSFRfUiAiXSIgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDEg
IiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRibC44ICIg
UElYRUxfRDAgIiwgeyIgUElYRUxfRDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwKKyAgICAi
dmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbGxDaGFubmVs
U2tpcFJpZ2h0OiAiIE5MCisKKyAgICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBO
TAorICAgICJjbXAgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAg
ICAiYmNjIC5hbGxDaGFubmVsQmx1ciIgTkwKKyAgICAic3ViICIgREVTVElOQVRJT05fUiAiLCAi
IERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorCisgICAgImFkZCAiIFNPVVJD
RV9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfTElORV9SIE5MCisgICAgImFkZCAiIERFU1RJ
TkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX0xJTkVfUiBOTAorICAgICJj
bXAgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9MSU5FX0VORF9SIE5MCisgICAgImJjYyAuYWxsQ2hh
bm5lbE1haW5Mb29wIiBOTAorCisgICAgImxkbWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9
IiBOTAorKTsgLy8gTk9MSU5UCisKKyNkZWZpbmUgREFUQV9UUkFOU0ZFUjQoY29tbWFuZCwgYmFz
ZSkgXAorICAgIGNvbW1hbmQgIiAiIFBJWEVMX0QwMCAiLCBbIiBiYXNlICJdLCAiIFNUUklERV9M
SU5FX1IgTkwgXAorICAgIGNvbW1hbmQgIiAiIFBJWEVMX0QwMSAiLCBbIiBiYXNlICJdLCAiIFNU
UklERV9MSU5FX1IgTkwgXAorICAgIGNvbW1hbmQgIiAiIFBJWEVMX0QxMCAiLCBbIiBiYXNlICJd
LCAiIFNUUklERV9MSU5FX1IgTkwgXAorICAgIGNvbW1hbmQgIiAiIFBJWEVMX0QxMSAiLCBbIiBi
YXNlICJdLCAiIFNUUklERV9MSU5FX1IgTkwgXAorICAgICJzdWIgIiBiYXNlICIsICIgYmFzZSAi
LCAiIFNUUklERV9MSU5FX1IgIiwgbHNsICMyIiBOTAorCisvLyBUaGUgbnVtYmVyIG9mIHJlYWRz
IGRlcGVuZCBvbiBSRU1BSU5JTkdfU1RSSURFU19SLCBidXQgaXQgaXMgYWx3YXlzID49IDEgYW5k
IDw9IDMKKyNkZWZpbmUgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoY29tbWFuZDEsIGNvbW1h
bmQyLCBiYXNlKSBcCisgICAgY29tbWFuZDEgIiAiIFBJWEVMX0QwMCAiLCBbIiBiYXNlICJdLCAi
IFNUUklERV9MSU5FX1IgTkwgXAorICAgICJjbXAgIiBSRU1BSU5JTkdfU1RSSURFU19SICIsICMy
IiBOTCBcCisgICAgY29tbWFuZDIgImNzICIgUElYRUxfUzEgIiwgWyIgYmFzZSAiXSIgTkwgXAor
ICAgICJhZGQgIiBiYXNlICIsICIgYmFzZSAiLCAiIFNUUklERV9MSU5FX1IgTkwgXAorICAgICJj
bXAgIiBSRU1BSU5JTkdfU1RSSURFU19SICIsICMzIiBOTCBcCisgICAgY29tbWFuZDIgImNzICIg
UElYRUxfUzIgIiwgWyIgYmFzZSAiXSIgTkwgXAorICAgICJzdWIgIiBiYXNlICIsICIgYmFzZSAi
LCAiIFNUUklERV9MSU5FX1IgIiwgbHNsICMxIiBOTAorCithc20gKCAvLyBOT0xJTlQKKyIuZ2xv
YmwgIiBUT1NUUklORyhuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cikgTkwKK1RPU1RS
SU5HKG5lb25EcmF3QWxwaGFDaGFubmVsR2F1c3NpYW5CbHVyKSAiOiIgTkwKKyAgICAic3RtZGIg
c3AhLCB7cjQtcjgsIHIxMCwgcjExLCBscn0iIE5MCisgICAgImxkciAiIFNUUklERV9SICIsIFty
MiwgIyIgU1RSSURFX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgU1RSSURFX1dJRFRIX1IgIiwg
W3IyLCAjIiBTVFJJREVfV0lEVEhfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBESVNUQU5DRV9M
RUZUX1IgIiwgW3IyLCAjIiBESVNUQU5DRV9MRUZUX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIg
RElTVEFOQ0VfUklHSFRfUiAiLCBbcjIsICMiIERJU1RBTkNFX1JJR0hUX09GRlNFVCAiXSIgTkwK
KyAgICAibGRyICIgU1RSSURFX0xJTkVfUiAiLCBbcjIsICMiIFNUUklERV9MSU5FX09GRlNFVCAi
XSIgTkwKKyAgICAibGRyICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgW3IyLCAjIiBTVFJJREVfTElO
RV9XSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIElOSVRfSU5WRVJURURfS0VSTkVMX1NJ
WkVfUiAiLCBbcjIsICMiIElOVkVSVEVEX0tFUk5FTF9TSVpFX09GRlNFVCAiXSIgTkwKKyAgICAi
dmxkci51MzIgIiBSRU1BSU5JTkdfU1RSSURFU19TMCAiLCBbcjIsICMiIFJFTUFJTklOR19TVFJJ
REVTX09GRlNFVCAiXSIgTkwKKworICAgIC8vIEluaXRpYWxpemUgbG9jYWxzLgorICAgICJtdWwg
IiBESVNUQU5DRV9MRUZUX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgIiwgIiBTVFJJREVfUiBOTAor
ICAgICJtdWwgIiBESVNUQU5DRV9SSUdIVF9SICIsICIgRElTVEFOQ0VfUklHSFRfUiAiLCAiIFNU
UklERV9SIE5MCisgICAgIm1vdiAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgRElTVEFOQ0VfUklH
SFRfUiBOTAorICAgICJjbXAgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklERV9XSURUSF9S
IE5MCisgICAgIm1vdmNzICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBO
TAorICAgICJhZGQgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9MSU5FX0VORF9SICIs
ICIgU09VUkNFX1IgTkwKKyAgICAidmR1cC5mMzIgIiBJTlZFUlRFRF9LRVJORUxfU0laRV9RICIs
ICIgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SIE5MCisgICAgImNtcCAiIFNPVVJDRV9MSU5F
X0VORF9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYmVxIC5hbHBoYUNoYW5uZWxFYXJseUxlYXZl
IiBOTAorCisgICAgLy8gUHJvY2Vzc2luZyA0IHN0cmlkZXMgcGFyYWxsZWxseS4KKworIi5hbHBo
YUNoYW5uZWxNYWluTG9vcDoiIE5MCisKKyAgICAvLyBJbml0aWFsaXplIHRoZSBzdW0gdmFyaWFi
bGUuCisgICAgInZtb3YudTMyICIgU1VNX1EgIiwgIzAiIE5MCisgICAgIm1vdiAiIElOSVRfU1VN
X1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0Vf
UiAiLCAiIE1BWF9LRVJORUxfU0laRV9SIE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBT
T1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbHBoYUNoYW5uZWxJbml0U3VtRG9uZSIgTkwKKyIu
YWxwaGFDaGFubmVsSW5pdFN1bToiIE5MCisgICAgREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwg
SU5JVF9TVU1fUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQi
IE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyAg
ICAiYWRkICIgSU5JVF9TVU1fUiAiLCAiIElOSVRfU1VNX1IgIiwgIiBTVFJJREVfUiBOTAorICAg
ICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjYyAuYWxwaGFD
aGFubmVsSW5pdFN1bSIgTkwKKyIuYWxwaGFDaGFubmVsSW5pdFN1bURvbmU6IiBOTAorCisgICAg
Ly8gQmx1cnJpbmcuCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIsICIg
U1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fRU5EX1IgIiwgIiBERVNU
SU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAic3ViICIgTEVGVF9SICIsICIg
U09VUkNFX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAi
IFNPVVJDRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBOTAorCisiLmFscGhhQ2hhbm5lbEJsdXI6
IiBOTAorICAgICJ2Y3Z0LmYzMi51MzIgIiBQSVhFTF9RICIsICIgU1VNX1EgTkwKKyAgICAidm11
bC5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1Eg
TkwKKyAgICAidmN2dC51MzIuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAidnNo
bC51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAgREFUQV9UUkFOU0ZF
UjQoInZzdDEudTMyIiwgREVTVElOQVRJT05fUikKKworICAgICJjbXAgIiBMRUZUX1IgIiwgIiBT
T1VSQ0VfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbFNraXBMZWZ0IiBOTAorICAgIERBVEFf
VFJBTlNGRVI0KCJ2bGQxLnUzMiIsIExFRlRfUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIs
ICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAgInZzdWIudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAi
LCAiIFBJWEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2tpcExlZnQ6ICIgTkwKKworICAgICJjbXAg
IiBSSUdIVF9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAuYWxwaGFDaGFubmVsU2tp
cFJpZ2h0IiBOTAorICAgIERBVEFfVFJBTlNGRVI0KCJ2bGQxLnUzMiIsIFJJR0hUX1IpCisgICAg
InZzaHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUz
MiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNraXBS
aWdodDogIiBOTAorCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9S
ICIsICIgU1RSSURFX1IgTkwKKyAgICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBO
TAorICAgICJjbXAgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAg
ICAiYmNjIC5hbHBoYUNoYW5uZWxCbHVyIiBOTAorICAgICJzdWIgIiBERVNUSU5BVElPTl9SICIs
ICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisKKyAgICAiYWRkICIgU09V
UkNFX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNUUklERV9MSU5FX1IgIiwgbHNsICMyIiBOTAorICAg
ICJhZGQgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9MSU5F
X1IgIiwgbHNsICMyIiBOTAorICAgICJjbXAgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9MSU5FX0VO
RF9SIE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsTWFpbkxvb3AiIE5MCisKKyAgICAvLyBQcm9j
ZXNzaW5nIHRoZSByZW1haW5pbmcgc3RyaWRlcyAoMCAtIDMpLgorIi5hbHBoYUNoYW5uZWxFYXJs
eUxlYXZlOiIgTkwKKyAgICAidm1vdi51MzIgIiBSRU1BSU5JTkdfU1RSSURFU19SICIsICIgUkVN
QUlOSU5HX1NUUklERVNfUzAgTkwKKyAgICAvLyBFYXJseSByZXR1cm4gZm9yIDAgc3RyaWRlcy4K
KyAgICAiY21wICIgUkVNQUlOSU5HX1NUUklERVNfUiAiLCAjMCIgTkwKKyAgICAibGRtZXFpYSBz
cCEsIHtyNC1yOCwgcjEwLCByMTEsIHBjfSIgTkwKKworICAgIC8vIEluaXRpYWxpemUgdGhlIHN1
bSB2YXJpYWJsZS4KKyAgICAidm1vdi51MzIgIiBTVU1fUSAiLCAjMCIgTkwKKyAgICAibW92ICIg
SU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAi
IFNPVVJDRV9SICIsICIgTUFYX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1f
UiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFscGhhQ2hhbm5lbFNlY29uZEluaXRT
dW1Eb25lIiBOTAorIi5hbHBoYUNoYW5uZWxTZWNvbmRJbml0U3VtOiIgTkwKKyAgICBDT05ESVRJ
T05BTF9EQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCAidmxkciIsIElOSVRfU1VNX1IpCisgICAg
InZzaHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUz
MiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisgICAgImFkZCAiIElOSVRfU1VN
X1IgIiwgIiBJTklUX1NVTV9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1f
UiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbFNlY29uZEluaXRT
dW0iIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZEluaXRTdW1Eb25lOiIgTkwKKworICAgIC8vIEJs
dXJyaW5nLgorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNUUklE
RV9XSURUSF9SIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX0VORF9SICIsICIgREVTVElOQVRJ
T05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgInN1YiAiIExFRlRfUiAiLCAiIFNPVVJD
RV9SICIsICIgRElTVEFOQ0VfTEVGVF9SIE5MCisgICAgImFkZCAiIFJJR0hUX1IgIiwgIiBTT1VS
Q0VfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKworIi5hbHBoYUNoYW5uZWxTZWNvbmRCbHVy
OiIgTkwKKyAgICAidmN2dC5mMzIudTMyICIgUElYRUxfUSAiLCAiIFNVTV9RIE5MCisgICAgInZt
dWwuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIiBJTlZFUlRFRF9LRVJORUxfU0laRV9R
IE5MCisgICAgInZjdnQudTMyLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RIE5MCisgICAgInZz
aGwudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgIENPTkRJVElPTkFM
X0RBVEFfVFJBTlNGRVI0KCJ2c3QxLnUzMiIsICJ2c3RyIiwgREVTVElOQVRJT05fUikKKworICAg
ICJjbXAgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbFNl
Y29uZFNraXBMZWZ0IiBOTAorICAgIENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQxLnUz
MiIsICJ2bGRyIiwgTEVGVF9SKQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICMyNCIgTkwKKyAgICAidnN1Yi51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxf
USBOTAorIi5hbHBoYUNoYW5uZWxTZWNvbmRTa2lwTGVmdDogIiBOTAorCisgICAgImNtcCAiIFJJ
R0hUX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbHBoYUNoYW5uZWxTZWNvbmRT
a2lwUmlnaHQiIE5MCisgICAgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwg
InZsZHIiLCBSSUdIVF9SKQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIs
ICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBO
TAorIi5hbHBoYUNoYW5uZWxTZWNvbmRTa2lwUmlnaHQ6ICIgTkwKKworICAgICJhZGQgIiBERVNU
SU5BVElPTl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFkZCAi
IExFRlRfUiAiLCAiIExFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIFJJR0hUX1Ig
IiwgIiBSSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiY21wICIgREVTVElOQVRJT05fUiAi
LCAiIERFU1RJTkFUSU9OX0VORF9SIE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsU2Vjb25kQmx1
ciIgTkwKKworICAgICJsZG1pYSBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIHBjfSIgTkwKKyk7IC8v
IE5PTElOVAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05F
T04pICYmIENPTVBJTEVSKEdDQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYwMzdhYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3Np
YW5CbHVyTkVPTi5oCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFuIEhlcmN6
ZWcKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJ
VFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lU
WSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEZFR2F1c3NpYW5CbHVyTkVPTl9oCisjZGVmaW5lIEZFR2F1c3Np
YW5CbHVyTkVPTl9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIENQVShBUk1f
TkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjaW5jbHVkZSAiRkVHYXVzc2lhbkJsdXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFG
b3JOZW9uIHsKKyAgICBpbnQgc3RyaWRlOworICAgIGludCBzdHJpZGVXaWR0aDsKKyAgICBpbnQg
c3RyaWRlTGluZTsKKyAgICBpbnQgc3RyaWRlTGluZVdpZHRoOworICAgIGludCByZW1haW5pbmdT
dHJpZGVzOworICAgIGludCBkaXN0YW5jZUxlZnQ7CisgICAgaW50IGRpc3RhbmNlUmlnaHQ7Cisg
ICAgZmxvYXQgaW52ZXJ0ZWRLZXJuZWxTaXplOworICAgIHVuc2lnbmVkIGNoYXIqIHBhaW50aW5n
Q29uc3RhbnRzOworfTsKKwordW5zaWduZWQgY2hhciogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNG
b3JOZW9uKCk7CisKK2V4dGVybiAiQyIgewordm9pZCBuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lh
bkJsdXIodW5zaWduZWQgY2hhciogc291cmNlLCB1bnNpZ25lZCBjaGFyKiBkZXN0aW5hdGlvbiwg
RkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uKik7Cit2b2lkIG5lb25EcmF3QWxwaGFD
aGFubmVsR2F1c3NpYW5CbHVyKHVuc2lnbmVkIGNoYXIqIHNvdXJjZSwgdW5zaWduZWQgY2hhciog
ZGVzdGluYXRpb24sIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiopOworfQorCitp
bmxpbmUgdm9pZCBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseU5lb24oQnl0ZUFycmF5KiBz
cmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNp
emVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKQoreworICAgIGNv
bnN0IGludCB3aWR0aE11bHRpcGxpZWRCeUZvdXIgPSA0ICogcGFpbnRTaXplLndpZHRoKCk7Cisg
ICAgRkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uIGFyZ3VtZW50c1ggPSB7CisgICAg
ICAgIDQsCisgICAgICAgIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgd2lkdGhNdWx0
aXBsaWVkQnlGb3VyLAorICAgICAgICAoaXNBbHBoYUltYWdlKCkgPyAoKHBhaW50U2l6ZS5oZWln
aHQoKSA+PiAyKSA8PCAyKSA6IHBhaW50U2l6ZS5oZWlnaHQoKSkgKiB3aWR0aE11bHRpcGxpZWRC
eUZvdXIsCisgICAgICAgIGlzQWxwaGFJbWFnZSgpID8gKHBhaW50U2l6ZS5oZWlnaHQoKSAmIDB4
MykgOiAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICBpc0Fs
cGhhSW1hZ2UoKSA/IDAgOiBmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24oKQorICAgIH07
CisgICAgRkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uIGFyZ3VtZW50c1kgPSB7Cisg
ICAgICAgIHdpZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgd2lkdGhNdWx0aXBsaWVkQnlG
b3VyICogcGFpbnRTaXplLmhlaWdodCgpLAorICAgICAgICA0LAorICAgICAgICAoaXNBbHBoYUlt
YWdlKCkgPyAoKHBhaW50U2l6ZS53aWR0aCgpID4+IDIpIDw8IDIpIDogcGFpbnRTaXplLndpZHRo
KCkpICogNCwKKyAgICAgICAgaXNBbHBoYUltYWdlKCkgPyAocGFpbnRTaXplLndpZHRoKCkgJiAw
eDMpIDogMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgaXNB
bHBoYUltYWdlKCkgPyAwIDogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uKCkKKyAgICB9
OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgaWYgKGtlcm5l
bFNpemVYKSB7CisgICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWCwgYXJn
dW1lbnRzWC5kaXN0YW5jZUxlZnQsIGFyZ3VtZW50c1guZGlzdGFuY2VSaWdodCk7CisgICAgICAg
ICAgICBhcmd1bWVudHNYLmludmVydGVkS2VybmVsU2l6ZSA9IDEgLyBzdGF0aWNfY2FzdDxmbG9h
dD4oa2VybmVsU2l6ZVgpOworICAgICAgICAgICAgaWYgKGlzQWxwaGFJbWFnZSgpKQorICAgICAg
ICAgICAgICAgIG5lb25EcmF3QWxwaGFDaGFubmVsR2F1c3NpYW5CbHVyKHNyY1BpeGVsQXJyYXkt
PmRhdGEoKSwgdG1wUGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgbmVvbkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKHNy
Y1BpeGVsQXJyYXktPmRhdGEoKSwgdG1wUGl4ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkg
PSB0bXBQaXhlbEFycmF5OworICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJy
YXk7CisgICAgICAgICAgICBzcmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChrZXJuZWxTaXplWSkgeworICAgICAgICAgICAga2VybmVsUG9zaXRp
b24oaSwga2VybmVsU2l6ZVksIGFyZ3VtZW50c1kuZGlzdGFuY2VMZWZ0LCBhcmd1bWVudHNZLmRp
c3RhbmNlUmlnaHQpOworICAgICAgICAgICAgYXJndW1lbnRzWS5pbnZlcnRlZEtlcm5lbFNpemUg
PSAxIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGtlcm5lbFNpemVZKTsKKyAgICAgICAgICAgIGlmIChp
c0FscGhhSW1hZ2UoKSkKKyAgICAgICAgICAgICAgICBuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNz
aWFuQmx1cih0bXBQaXhlbEFycmF5LT5kYXRhKCksIHNyY1BpeGVsQXJyYXktPmRhdGEoKSwgJmFy
Z3VtZW50c1kpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5lb25EcmF3QWxs
Q2hhbm5lbEdhdXNzaWFuQmx1cih0bXBQaXhlbEFycmF5LT5kYXRhKCksIHNyY1BpeGVsQXJyYXkt
PmRhdGEoKSwgJmFyZ3VtZW50c1kpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQnl0
ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHRtcFBp
eGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1
eFBpeGVsQXJyYXk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQorCisjZW5kaWYg
Ly8gRkVHYXVzc2lhbkJsdXJORU9OX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAppbmRl
eCAzODA3ZjFmLi5jMWU4YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwCkBAIC0y
OSwxNCArMjksMTQgQEAKIAogI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQogCi0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9BbGlnbm1lbnQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGNvcGllZCB0byB0aGUg
Zm9sbG93aW5nIFNJTUQgcmVnaXN0ZXJzOgogLy8gICBBTFBIQVhfUSBBTFBIQVlfUSBSRU1BUFhf
RCBSRU1BUFlfRAogCi1XVEZfQUxJR05FRChzaG9ydCwgc19GRUxpZ2h0aW5nQ29uc3RhbnRzRm9y
TmVvbltdLCAxNikgPSB7CitzdGF0aWMgV1RGX0FMSUdORUQoc2hvcnQsIHNfRkVMaWdodGluZ0Nv
bnN0YW50c0Zvck5lb25bXSwgMTYpID0gewogICAgIC8vIEFscGhhIGNvZWZmaWNpZW50cy4KICAg
ICAtMiwgMSwgMCwgLTEsIDIsIDEsIDAsIC0xLAogICAgIDAsIC0xLCAtMiwgLTEsIDAsIDEsIDIs
IDEsCkBAIC02MCw3ICs2MCw3IEBAIHNob3J0KiBmZUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbigp
CiAjZGVmaW5lIFNQRUNVTEFSX0VYUE9ORU5UX09GRlNFVCBUT1NUUklORygxNikKICNkZWZpbmUg
Q09ORV9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMjApCiAjZGVmaW5lIEZMT0FUX0FSR1VNRU5U
U19PRkZTRVQgVE9TVFJJTkcoMjQpCi0jZGVmaW5lIERSQVdJTkdfQ09OU1RBTlRTX09GRlNFVCBU
T1NUUklORygyOCkKKyNkZWZpbmUgUEFJTlRJTkdfQ09OU1RBTlRTX09GRlNFVCBUT1NUUklORygy
OCkKICNkZWZpbmUgTkwgIlxuIgogCiAvLyBSZWdpc3RlciBhbGxvY2F0aW9uCkBAIC0yMTksNyAr
MjE5LDcgQEAgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIHR3byBhcmd1bWVudHMgYXJlIGxvYWRlZCB0byBTSU1EIHJlZ2lzdGVycy4KICAg
ICAibGRyIHIwLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRkxPQVRfQVJHVU1FTlRTX09GRlNF
VCAiXSIgTkwKLSAgICAibGRyIHIxLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgRFJBV0lOR19D
T05TVEFOVFNfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgcjEsIFsiIFBBSU5USU5HX0RBVEFfUiAi
LCAjIiBQQUlOVElOR19DT05TVEFOVFNfT0ZGU0VUICJdIiBOTAogICAgICJsZHIgIiBQSVhFTFNf
UiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgUElYRUxTX09GRlNFVCAiXSIgTkwKICAgICAi
bGRyICIgV0lEVEhfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgV0lEVEhfT0ZGU0VUICJd
IiBOTAogICAgICJsZHIgIiBIRUlHSFRfUiAiLCBbIiBQQUlOVElOR19EQVRBX1IgIiwgIyIgSEVJ
R0hUX09GRlNFVCAiXSIgTkwKQEAgLTI0Niw3ICsyNDYsNyBAQCBUT1NUUklORyhuZW9uRHJhd0xp
Z2h0aW5nKSAiOiIgTkwKICAgICAidm1vdi5mMzIgIiBTUE9UX0NPTE9SX1EgIiwgIiBDT0xPUl9R
IE5MCiAgICAgIm1vdiAiIFJFU0VUX1dJRFRIX1IgIiwgIiBXSURUSF9SIE5MCiAKLSIubWFpbmxv
b3A6IiBOTAorIi5tYWluTG9vcDoiIE5MCiAgICAgIm1vdiByMywgIzMiIE5MCiAgICAgInZtb3Yu
ZjMyICIgUE9TSVRJT05fWF9TICIsICIgQ09OU1RfT05FX1MgTkwKIApAQCAtNDE3LDcgKzQxNyw3
IEBAIFRPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAogICAgICJ2YWRkLmYzMiAiIFBP
U0lUSU9OX1lfUyAiLCAiIENPTlNUX09ORV9TIE5MCiAgICAgIm1vdiAiIFdJRFRIX1IgIiwgIiBS
RVNFVF9XSURUSF9SIE5MCiAgICAgInN1YnMgIiBIRUlHSFRfUiAiLCAiIEhFSUdIVF9SICIsICMx
IiBOTAotICAgICJibmUgLm1haW5sb29wIiBOTAorICAgICJibmUgLm1haW5Mb29wIiBOTAogCiAg
ICAgLy8gUmV0dXJuLgogICAgICJ2bGRtaWEgc3AhLCB7ZDgtZDE1fSIgTkwKQEAgLTQ1OSw2ICs0
NTksNDAgQEAgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCiAgICAgImIgLmxpZ2h0
U3RyZW5ndGhDYWxjdWxhdGVkIiBOTAogKTsgLy8gTk9MSU5UCiAKK2ludCBGRUxpZ2h0aW5nOjpn
ZXRQb3dlckNvZWZmaWNpZW50cyhmbG9hdCBleHBvbmVudCkKK3sKKyAgICAvLyBDYWxsaW5nIGEg
cG93ZiBmdW5jdGlvbiBmcm9tIHRoZSBhc3NlbWJseSBjb2RlIHdvdWxkIHJlcXVpcmUgdG8gc2F2
ZQorICAgIC8vIGFuZCByZWxvYWQgYSBsb3Qgb2YgTkVPTiByZWdpc3RlcnMuIFNpbmNlIHRoZSBi
YXNlIGlzIGluIHJhbmdlIFswLi4xXQorICAgIC8vIGFuZCBvbmx5IDggYml0IHByZWNpc2lvbiBp
cyByZXF1aXJlZCwgd2UgdXNlIG91ciBvd24gcG93ZiBmdW5jdGlvbi4KKyAgICAvLyBUaGlzIGlz
IHByb2JhYmx5IG5vdCB0aGUgYmVzdCwgYnV0IGl0IHVzZXMgb25seSBhIGZldyByZWdpc3RlcnMg
YW5kCisgICAgLy8gZ2l2ZXMgdXMgZW5vdWdoIHByZWNpc2lvbiAobW9kaWZ5aW5nIHRoZSBleHBv
bmVudCBmaWVsZCBkaXJlY3RseSB3b3VsZAorICAgIC8vIGFsc28gYmUgcG9zc2libGUpLgorCisg
ICAgLy8gRmlyc3QsIHdlIGxpbWl0IHRoZSBleHBvbmVudCB0byBtYXhpbXVtIG9mIDY0LCB3aGlj
aCBnaXZlcyB1cyBlbm91Z2gKKyAgICAvLyBwcmVjaXNpb24uIFdlIHNwbGl0IHRoZSBleHBvbmVu
dCB0byBhbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBwYXJ0LAorICAgIC8vIHNpbmNlIGFeeCA9IChh
XnkpKihhXnopIHdoZXJlIHggPSB5K3ouIFRoZSBpbnRlZ2VyIGV4cG9uZW50IG9mIHRoZQorICAg
IC8vIHBvd2VyIGlzIGVzdGltYXRlZCBieSBzcXVhcmUsIGFuZCB0aGUgZnJhY3Rpb24gZXhwb25l
bnQgb2YgdGhlIHBvd2VyCisgICAgLy8gaXMgZXN0aW1hdGVkIGJ5IHNxdWFyZSByb290IGFzc2Vt
Ymx5IGluc3RydWN0aW9ucy4KKyAgICBpbnQgaSwgcmVzdWx0OworCisgICAgaWYgKGV4cG9uZW50
IDwgMCkKKyAgICAgICAgZXhwb25lbnQgPSAxIC8gKC1leHBvbmVudCk7CisKKyAgICBpZiAoZXhw
b25lbnQgPiA2My45OSkKKyAgICAgICAgZXhwb25lbnQgPSA2My45OTsKKworICAgIGV4cG9uZW50
IC89IDY0OworICAgIHJlc3VsdCA9IDA7CisgICAgZm9yIChpID0gMTE7IGkgPj0gMDsgLS1pKSB7
CisgICAgICAgIGV4cG9uZW50ICo9IDI7CisgICAgICAgIGlmIChleHBvbmVudCA+PSAxKSB7Cisg
ICAgICAgICAgICByZXN1bHQgfD0gMSA8PCBpOworICAgICAgICAgICAgZXhwb25lbnQgLT0gMTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
TGlnaHRpbmdORU9OLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTkVPTi5oCmluZGV4IGQ4M2I3ZmUuLmVjNWVhZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdO
RU9OLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05FT04uaApAQCAtMzEsNiArMzEsOSBAQAogCiAjaWYgQ1BVKEFSTV9ORU9OKSAm
JiBDT01QSUxFUihHQ0MpCiAKKyNpbmNsdWRlICJGRUxpZ2h0aW5nLmgiCisjaW5jbHVkZSA8d3Rm
L0FsaWdubWVudC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIE90aGVyd2lzZTogRGlz
dGFudCBMaWdodC4KQEAgLTg5LDYgKzkyLDgxIEBAIGV4dGVybiAiQyIgewogdm9pZCBuZW9uRHJh
d0xpZ2h0aW5nKEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uKik7CiB9CiAKK2lubGluZSB2
b2lkIEZFTGlnaHRpbmc6OnBsYXRmb3JtQXBwbHlOZW9uKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGln
aHRTb3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQoreworICAgIFdURl9BTElHTkVE
KEZFTGlnaHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24sIGZsb2F0QXJndW1lbnRzLCAxNik7CisK
KyAgICBGRUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiBuZW9uRGF0YSA9IHsKKyAgICAgICAg
ZGF0YS5waXhlbHMtPmRhdGEoKSwKKyAgICAgICAgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lIC0g
MSwKKyAgICAgICAgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSAtIDEsCisgICAgICAgIDAsCisg
ICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgICZmbG9hdEFyZ3VtZW50cywKKyAgICAgICAg
ZmVMaWdodGluZ0NvbnN0YW50c0Zvck5lb24oKQorICAgIH07CisKKyAgICAvLyBTZXQgbGlnaHQg
c291cmNlIGFyZ3VtZW50cy4KKyAgICBmbG9hdEFyZ3VtZW50cy5jb25zdE9uZSA9IDE7CisKKyAg
ICBmbG9hdEFyZ3VtZW50cy5jb2xvclJlZCA9IG1fbGlnaHRpbmdDb2xvci5yZWQoKTsKKyAgICBm
bG9hdEFyZ3VtZW50cy5jb2xvckdyZWVuID0gbV9saWdodGluZ0NvbG9yLmdyZWVuKCk7CisgICAg
ZmxvYXRBcmd1bWVudHMuY29sb3JCbHVlID0gbV9saWdodGluZ0NvbG9yLmJsdWUoKTsKKyAgICBm
bG9hdEFyZ3VtZW50cy5wYWRkaW5nNCA9IDA7CisKKyAgICBpZiAobV9saWdodFNvdXJjZS0+dHlw
ZSgpID09IExTX1BPSU5UKSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfUE9JTlRf
TElHSFQ7CisgICAgICAgIFBvaW50TGlnaHRTb3VyY2UqIHBvaW50TGlnaHRTb3VyY2UgPSBzdGF0
aWNfY2FzdDxQb2ludExpZ2h0U291cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7CisgICAgICAg
IGZsb2F0QXJndW1lbnRzLmxpZ2h0WCA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgp
OworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBwb2ludExpZ2h0U291cmNlLT5wb3Np
dGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcG9pbnRMaWdodFNv
dXJjZS0+cG9zaXRpb24oKS56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0g
MDsKKyAgICB9IGVsc2UgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19TUE9UKSB7Cisg
ICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BPVF9MSUdIVDsKKyAgICAgICAgU3BvdExp
Z2h0U291cmNlKiBzcG90TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxTcG90TGlnaHRTb3VyY2Uq
PihtX2xpZ2h0U291cmNlLmdldCgpKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0g
c3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMu
bGlnaHRZID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMubGlnaHRaID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAg
ICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRz
LmRpcmVjdGlvblggPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLngoKTsKKyAgICAgICAg
ZmxvYXRBcmd1bWVudHMuZGlyZWN0aW9uWSA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3Iu
eSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25aID0gcGFpbnRpbmdEYXRhLmRp
cmVjdGlvblZlY3Rvci56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmczID0gMDsK
KworICAgICAgICBmbG9hdEFyZ3VtZW50cy5jb25lQ3V0T2ZmTGltaXQgPSBwYWludGluZ0RhdGEu
Y29uZUN1dE9mZkxpbWl0OworICAgICAgICBmbG9hdEFyZ3VtZW50cy5jb25lRnVsbExpZ2h0ID0g
cGFpbnRpbmdEYXRhLmNvbmVGdWxsTGlnaHQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVD
dXRPZmZSYW5nZSA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQgLSBwYWludGluZ0RhdGEu
Y29uZUZ1bGxMaWdodDsKKyAgICAgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50ID0gZ2V0UG93ZXJD
b2VmZmljaWVudHMoc3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkpOworICAgICAg
ICBpZiAoc3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkgPT0gMSkKKyAgICAgICAg
ICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfQ09ORV9FWFBPTkVOVF9JU18xOworICAgIH0gZWxz
ZSB7CisgICAgICAgIEFTU0VSVChtX2xpZ2h0U291cmNlLnR5cGUgPT0gTFNfRElTVEFOVCk7Cisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WCA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci54
KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBhaW50aW5nRGF0YS5saWdodFZl
Y3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHBhaW50aW5nRGF0YS5s
aWdodFZlY3Rvci56KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMTsKKyAg
ICB9CisKKyAgICAvLyBTZXQgbGlnaHRpbmcgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRz
LnN1cmZhY2VTY2FsZSA9IGRhdGEuc3VyZmFjZVNjYWxlOworICAgIGZsb2F0QXJndW1lbnRzLm1p
bnVzU3VyZmFjZVNjYWxlRGl2aWRlZEJ5Rm91ciA9IC1kYXRhLnN1cmZhY2VTY2FsZSAvIDQ7Cisg
ICAgaWYgKG1fbGlnaHRpbmdUeXBlID09IEZFTGlnaHRpbmc6OkRpZmZ1c2VMaWdodGluZykKKyAg
ICAgICAgZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9kaWZmdXNlQ29uc3RhbnQ7
CisgICAgZWxzZSB7CisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfTElH
SFQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9IG1fc3BlY3VsYXJD
b25zdGFudDsKKyAgICAgICAgbmVvbkRhdGEuc3BlY3VsYXJFeHBvbmVudCA9IGdldFBvd2VyQ29l
ZmZpY2llbnRzKG1fc3BlY3VsYXJFeHBvbmVudCk7CisgICAgICAgIGlmIChtX3NwZWN1bGFyRXhw
b25lbnQgPT0gMSkKKyAgICAgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJf
RVhQT05FTlRfSVNfMTsKKyAgICB9CisgICAgaWYgKGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25z
dGFudCA9PSAxKQorICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0RJRkZVU0VfQ09OU1Rf
SVNfMTsKKworICAgIG5lb25EcmF3TGlnaHRpbmcoJm5lb25EYXRhKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0Mp
Ci0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91437</attachid>
            <date>2011-04-27 23:54:49 -0700</date>
            <delta_ts>2011-04-28 03:56:38 -0700</delta_ts>
            <desc>final patch</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>66881</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA3ZDI2MTBlZDM0OTE4M2Q0NjdiMjA3MGIzOWU3YzdmMjZkOWRmZTQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBUaHUsIDI4IEFwciAyMDExIDA4OjUxOjQ0ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICsKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICA0NiArKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtICAgICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgIDE2ICsKIC4uLi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcyAgIHwgICAgMiArLQogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAgIDI0ICsrCiAu
Li4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgICB8ICAgNjgg
KystLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggICAg
IHwgICA0NCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3Bw
ICAgICAgIHwgIDE2MyArKy0tLS0tLS0tCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTGlnaHRpbmcuaCB8ICAgMjAgKy0KIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUdhdXNzaWFuQmx1ck5FT04uY3BwICAgIHwgIDM0MyArKysrKysrKysrKysrKysrKysrKwogLi4u
L2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oICAgICAgfCAgMTE2ICsr
KysrKysKIC4uLi9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAgICAgICAg
IHwgICA0NiArKystCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGlu
Z05FT04uaCB8ICAgNzggKysrKysKIDE3IGZpbGVzIGNoYW5nZWQsIDc4OCBpbnNlcnRpb25zKCsp
LCAxOTUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJt
L0ZFR2F1c3NpYW5CbHVyTkVPTi5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlMTY2ZGExLi43
MzA0YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzAsNiArMzAsNyBAQCBTRVQoV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlv
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcyIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9i
bXAiCkBAIC0xMTI2LDYgKzExMjcsMTEgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uaAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9BZmZpbmVUcmFuc2Zvcm0uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9N
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjExNTMx
Li42ZmQ2ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDQtMjcgIFpvbHRh
biBIZXJjemVnICA8emhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXppbmcgZ2F1c3NpYW4gYmx1ciBm
aWx0ZXIgdG8gQVJNLW5lb24gU0lNRCBpbnN0cnVjdGlvbiBzZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NDQ3CisKKyAgICAgICAgVGhpcyBwYXRj
aCBjb250YWlucyB0d28gc3ViLXJvdXRpbmVzLCBvbmUgZm9yIHNwZWVkaW5nIHVwCisgICAgICAg
IGFscGhhIGNoYW5uZWwgb25seSBnYXVzc2lhbiBibHVyIChieSAyLjUgdGltZXMpIGFuZCBvbmUK
KyAgICAgICAgZm9yIHNwZWVkaW5nIHVwIGFsbCBjaGFubmVsIGJsdXIgKGJ5IDQgdGltZXMpLgor
CisgICAgICAgIFRoZSBjb21tb24gY29kZSBpcyBhbHNvIHJlZGVzaWduZWQgdG8gYmV0dGVyIGZp
dCBmb3IgcGxhdGZvcm0KKyAgICAgICAgc3BlY2lmaWMgY29kZS4gVGhpcyBtZWFucyBsYXJnZSBj
aHVua3Mgb2YgY29kZSB3YXMgbW92ZWQgdG8KKyAgICAgICAgZGlmZmVyZW50IGZpbGVzLCBhbmQg
YWxsIHBsYXRmb3JtIHNwZWNpZmljIGZpbGVzIGFyZSBhZGRlZCB0bworICAgICAgICBhbGwgYnVp
bGQgc3lzdGVtcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21t
b24udnNwcm9wczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseUdlbmVyaWMp
OgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmFwcGx5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGRUdhdXNzaWFuQmx1cjo6a2VybmVsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5n
OjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpk
cmF3TGlnaHRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6cGxhdGZvcm1BcHBseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9O
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXVEZfQUxJR05FRCk6CisgICAgICAgIChX
ZWJDb3JlOjpmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5TmVvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V1RGX0FMSUdORUQpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdo
dGluZzo6Z2V0UG93ZXJDb2VmZmljaWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0
aW5nOjpwbGF0Zm9ybUFwcGx5TmVvbik6CisKIDIwMTEtMDQtMjcgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggZnJvbSB0aGUgZnV0dXJlLiAgQW5v
dGhlciB0cml2YWwgc3RyaWN0IE93blB0ciBmaXhlcy4gIFRoaXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMmRmZTllMi4uNTNhZTlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQ1LDYgKzQ1
LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW50eXBlIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDEyZDMzMTYuLjU2YWVl
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjM2Nyw2ICsyMzY3LDEwIEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuaCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJs
dXJORU9OLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJt
L0ZFTGlnaHRpbmdORU9OLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRQb2ludDNELmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UG9pbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxZDI0ODhlLi4wMDdlMzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC00MTI0LDYgKzQxMjQsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJO
RU9OLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVH
YXVzc2lhbkJsdXJORU9OLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggZDhkN2Y1ZC4uYzVlMjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE5MjQs
NiArMTkyNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9O
LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVP
Ti5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1
YWQuaCBcCkBAIC0zMDU3LDcgKzMwNTgsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklM
VEVSUz0xKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291
cmNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNw
cCBcCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9O
LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVP
Ti5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFu
Qmx1ck5FT04uY3BwCiB9CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NQVRITUw9MSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmZWYx
ZDUyLi43NDI3NmRiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjkxNTUsNiArMjkxNTUsMjIgQEAKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xTcG90TGlnaHRTb3VyY2UuaCIKIAkJCQkJCT4KIAkJ
CQkJPC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xmaWx0ZXJzXGFybVxGRUdhdXNzaWFuQmx1ck5FT04uY3BwIgorCQkJCQkJPgorCQkJ
CQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXGZpbHRlcnNcYXJtXEZFR2F1c3NpYW5CbHVyTkVPTi5oIgorCQkJCQkJPgorCQkJCQk8
L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXGZpbHRlcnNcYXJtXEZFTGlnaHRpbmdORU9OLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXGFybVxGRUxpZ2h0aW5nTkVPTi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CiAJCQkJ
PC9GaWx0ZXI+CiAJCQkJPEZpbHRlcgogCQkJCQlOYW1lPSJjYSIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcwppbmRleCA4NmI2MzBm
Li44OTE5OTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlQ29tbW9uLnZzcHJvcHMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZUNvbW1vbi52c3Byb3BzCkBAIC03LDcgKzcsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDsk
KFByb2plY3REaXIpLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHkm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRn
ZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1hdGht
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxiaW5kaW5ncyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGJpbmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxoaXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5caHRtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGh0bWxcc2hhZG93JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
bG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cbG9hZGVyXGljb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cbm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29y
ayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNz
XG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0
cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
V2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2
Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90Ozsm
cXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZx
dW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGly
KS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJp
bmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
aW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9t
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRv
dyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBj
YWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxp
Y29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNz
XGNhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXGFy
bSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llx4bWwmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERl
cml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cc3ZnXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2Nr
ZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJp
dmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlXEph
dmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0
aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1b3Q7IgogCQlQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX19XSU4zMl9fO0RJU0FCTEVfM0RfUkVOREVSSU5HO1dF
QkNPUkVfQ09OVEVYVF9NRU5VUyIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNv
bXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ4ZDhlYWYuLjBlYzUw
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTM0OCw2ICszNDgsMTAgQEAKIAkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8q
IFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHku
aCAqLzsgfTsKIAkJMTkyMTMyNzQxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHAgKi87IH07CiAJCTE5MjEzMjc1MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmggKi87IH07CisJCTE5ODQxQkZGMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1
ck5FT04uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTk4NDFCRkIxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVPTi5jcHAgKi87IH07
CisJCTE5ODQxQzAwMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5FT04uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5ODQxQkZDMTM2ODM2
RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5FT04uaCAqLzsgfTsKKwkJMTk4NDFDMDExMzY4
MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRpbmdORU9OLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5ODQxQkZEMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxp
Z2h0aW5nTkVPTi5jcHAgKi87IH07CisJCTE5ODQxQzAyMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxp
Z2h0aW5nTkVPTi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTk4NDFCRkUxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRpbmdORU9OLmggKi87IH07CiAJ
CTE5QkZGNjRCMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTlCRkY2
NDYxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggKi87
IH07CiAJCTE5QkZGNjRDMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE5QkZGNjQ3MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5tbSAqLzsgfTsKIAkJMTlCRkY2NEQxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE5QkZGNjQ4MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudEludGVybmFsLmggKi87IH07CkBAIC02NzgxLDYgKzY3ODUsMTAgQEAK
IAkJMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTkyMTMyNzIx
MUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5MjEzMjczMTFDMEU2QkIwMDQ1NjIzOCAvKiBT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxOTg0MUJGQjEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBmaWxlRW5jb2RpbmcgPSA0OyBuYW1lID0gRkVHYXVzc2lhbkJsdXJORU9OLmNwcDsg
cGF0aCA9IGZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTE5ODQxQkZDMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1
ck5FT04uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVHYXVzc2lhbkJsdXJO
RU9OLmg7IHBhdGggPSBmaWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTk4NDFCRkQxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRp
bmdORU9OLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFTGlnaHRp
bmdORU9OLmNwcDsgcGF0aCA9IGZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTk4NDFCRkUxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGln
aHRpbmdORU9OLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFTGlnaHRpbmdO
RU9OLmg7IHBhdGggPSBmaWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxOUJGRjY0NjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTlCRkY2NDcxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5
QkZGNjQ4MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEyOTA0LDYgKzEyOTEyLDE3IEBACiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZTsK
IAkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7CiAJCX07CisJCTE5ODQxQkZBMTM2
ODM2QTEwMDZFQkJCOSAvKiBhcm0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTE5ODQxQkZCMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5F
T04uY3BwICovLAorCQkJCTE5ODQxQkZDMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1
ck5FT04uaCAqLywKKwkJCQkxOTg0MUJGRDEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05F
T04uY3BwICovLAorCQkJCTE5ODQxQkZFMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVP
Ti5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBhcm07CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE2MzI2LDYgKzE2MzQ1LDcgQEAKIAkJ
QTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTE5ODQxQkZBMTM2ODM2QTEwMDZFQkJCOSAvKiBh
cm0gKi8sCiAJCQkJQTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJj
ZS5jcHAgKi8sCiAJCQkJODQ3MzBENUExMjQ4RjBCMzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNv
dXJjZS5oICovLAogCQkJCUE3NUU4QjgwMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCAq
LywKQEAgLTIxMDMwLDcgKzIxMDUwLDkgQEAKIAkJCQk4NDczMEQ3RDEyNDhGMEIzMDBEM0E5Qzkg
LyogRkVEaXNwbGFjZW1lbnRNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDdGMTI0OEYw
QjMwMEQzQTlDOSAvKiBGRUZsb29kLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDgwMTk1NTEwOEJB
RkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTE5ODQx
QzAwMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5FT04uaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0NzMwRDgxMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxOTg0MUMwMjEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05FT04uaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzMwRDgzMTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1lcmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ4NTEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9s
b2d5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ4NzEyNDhGMEIzMDBEM0E5QzkgLyogRkVP
ZmZzZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4ODksNyArMjM5MTEsOSBAQAogCQkJCTg0NzMw
RDdDMTI0OEYwQjMwMEQzQTlDOSAvKiBGRURpc3BsYWNlbWVudE1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NDczMEQ3RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9vZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NDgwMTk1NDEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMTk4NDFCRkYxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3Np
YW5CbHVyTkVPTi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ4MDEyNDhGMEIzMDBEM0E5
QzkgLyogRkVMaWdodGluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxOTg0MUMwMTEzNjgzNkYw
MDA2RUJCQjkgLyogRkVMaWdodGluZ05FT04uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBE
ODIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3
MzBEODQxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NDczMEQ4NjEyNDhGMEIzMDBEM0E5QzkgLyogRkVPZmZzZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCmluZGV4IDkyOTY4MjguLmNjZTk0NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVH
YXVzc2lhbkJsdXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAj
aW5jbHVkZSAiRkVHYXVzc2lhbkJsdXIuaCIKIAorI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyTkVP
Ti5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKQEAgLTEwMSwzMSArMTAyLDMxIEBAIGlubGlu
ZSB2b2lkIGJveEJsdXIoQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIGRzdFBp
eGVsQXJyYXksCiAgICAgfQogfQogCi1pbmxpbmUgdm9pZCBrZXJuZWxQb3NpdGlvbihpbnQgYm94
Qmx1ciwgdW5zaWduZWQmIHN0ZCwgaW50JiBkTGVmdCwgaW50JiBkUmlnaHQpCitpbmxpbmUgdm9p
ZCBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseUdlbmVyaWMoQnl0ZUFycmF5KiBzcmNQaXhl
bEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1
bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKQogewotICAgIC8vIGNoZWNr
IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwjZmVHYXVzc2lhbkJsdXJFbGVt
ZW50IGZvciBkZXRhaWxzCi0gICAgc3dpdGNoIChib3hCbHVyKSB7Ci0gICAgY2FzZSAwOgotICAg
ICAgICBpZiAoIShzdGQgJSAyKSkgewotICAgICAgICAgICAgZExlZnQgPSBzdGQgLyAyIC0gMTsK
LSAgICAgICAgICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0OworICAgIGludCBzdHJpZGUgPSA0ICog
cGFpbnRTaXplLndpZHRoKCk7CisgICAgaW50IGR4TGVmdCA9IDA7CisgICAgaW50IGR4UmlnaHQg
PSAwOworICAgIGludCBkeUxlZnQgPSAwOworICAgIGludCBkeVJpZ2h0ID0gMDsKKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBpZiAoa2VybmVsU2l6ZVgpIHsKKyAg
ICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNpemVYLCBkeExlZnQsIGR4UmlnaHQp
OworICAgICAgICAgICAgYm94Qmx1cihzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJu
ZWxTaXplWCwgZHhMZWZ0LCBkeFJpZ2h0LCA0LCBzdHJpZGUsIHBhaW50U2l6ZS53aWR0aCgpLCBw
YWludFNpemUuaGVpZ2h0KCksIGlzQWxwaGFJbWFnZSgpKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGRMZWZ0ID0gc3RkIC8gMjsKLSAgICAgICAgICAgIGRSaWdodCA9IHN0ZCAtIGRM
ZWZ0OwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgICAgaWYg
KCEoc3RkICUgMikpIHsKLSAgICAgICAgICAgIGRMZWZ0Kys7Ci0gICAgICAgICAgICBkUmlnaHQt
LTsKKyAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7
CisgICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKKyAgICAgICAgICAg
IHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OwogICAgICAgICB9Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgMjoKLSAgICAgICAgaWYgKCEoc3RkICUgMikpIHsKLSAgICAgICAgICAgIGRS
aWdodCsrOwotICAgICAgICAgICAgc3RkKys7CisKKyAgICAgICAgaWYgKGtlcm5lbFNpemVZKSB7
CisgICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWSwgZHlMZWZ0LCBkeVJp
Z2h0KTsKKyAgICAgICAgICAgIGJveEJsdXIodG1wUGl4ZWxBcnJheSwgc3JjUGl4ZWxBcnJheSwg
a2VybmVsU2l6ZVksIGR5TGVmdCwgZHlSaWdodCwgc3RyaWRlLCA0LCBwYWludFNpemUuaGVpZ2h0
KCksIHBhaW50U2l6ZS53aWR0aCgpLCBpc0FscGhhSW1hZ2UoKSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFycmF5Owor
ICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7CisgICAgICAgICAgICBz
cmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKICAgICAgICAgfQotICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKQEAgLTE5MywzMCArMTk0LDcgQEAgdm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBw
bHkoKQogICAgIFJlZlB0cjxCeXRlQXJyYXk+IHRtcEltYWdlRGF0YSA9IEJ5dGVBcnJheTo6Y3Jl
YXRlKHBhaW50U2l6ZS53aWR0aCgpICogcGFpbnRTaXplLmhlaWdodCgpICogNCk7CiAgICAgQnl0
ZUFycmF5KiB0bXBQaXhlbEFycmF5ID0gdG1wSW1hZ2VEYXRhLmdldCgpOwogCi0gICAgaW50IHN0
cmlkZSA9IDQgKiBwYWludFNpemUud2lkdGgoKTsKLSAgICBpbnQgZHhMZWZ0ID0gMDsKLSAgICBp
bnQgZHhSaWdodCA9IDA7Ci0gICAgaW50IGR5TGVmdCA9IDA7Ci0gICAgaW50IGR5UmlnaHQgPSAw
OwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7Ci0gICAgICAgIGlmIChrZXJuZWxT
aXplWCkgewotICAgICAgICAgICAga2VybmVsUG9zaXRpb24oaSwga2VybmVsU2l6ZVgsIGR4TGVm
dCwgZHhSaWdodCk7Ci0gICAgICAgICAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVs
QXJyYXksIGtlcm5lbFNpemVYLCBkeExlZnQsIGR4UmlnaHQsIDQsIHN0cmlkZSwgcGFpbnRTaXpl
LndpZHRoKCksIHBhaW50U2l6ZS5oZWlnaHQoKSwgaXNBbHBoYUltYWdlKCkpOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgQnl0ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxB
cnJheTsKLSAgICAgICAgICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OwotICAgICAg
ICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1eFBpeGVsQXJyYXk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoa2VybmVsU2l6ZVkpIHsKLSAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5l
bFNpemVZLCBkeUxlZnQsIGR5UmlnaHQpOwotICAgICAgICAgICAgYm94Qmx1cih0bXBQaXhlbEFy
cmF5LCBzcmNQaXhlbEFycmF5LCBrZXJuZWxTaXplWSwgZHlMZWZ0LCBkeVJpZ2h0LCBzdHJpZGUs
IDQsIHBhaW50U2l6ZS5oZWlnaHQoKSwgcGFpbnRTaXplLndpZHRoKCksIGlzQWxwaGFJbWFnZSgp
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJh
eSA9IHRtcFBpeGVsQXJyYXk7Ci0gICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxB
cnJheTsKLSAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OwotICAgICAg
ICB9Ci0gICAgfQorICAgIHBsYXRmb3JtQXBwbHkoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJh
eSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOwogfQogCiB2b2lkIEZFR2F1
c3NpYW5CbHVyOjpkdW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCAxZDU4ZWYzLi5mNjYyNWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
R2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC00OSw2ICs0OSwxMiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgdm9pZCBjYWxjdWxhdGVLZXJuZWxTaXplKEZpbHRlciosIHVuc2lnbmVkJiBrZXJuZWxT
aXplWCwgdW5zaWduZWQmIGtlcm5lbFNpemVZLCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZKTsKIAor
ICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBrZXJuZWxQb3NpdGlvbihpbnQgYm94Qmx1ciwgdW5zaWdu
ZWQmIHN0ZCwgaW50JiBkTGVmdCwgaW50JiBkUmlnaHQpOworICAgIGlubGluZSB2b2lkIHBsYXRm
b3JtQXBwbHkoQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJy
YXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYg
cGFpbnRTaXplKTsKKworICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKEJ5dGVB
cnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBr
ZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSk7Cisg
ICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseU5lb24oQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5
LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25l
ZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKTsKKwogcHJpdmF0ZToKICAgICBGRUdh
dXNzaWFuQmx1cihGaWx0ZXIqLCBmbG9hdCwgZmxvYXQpOwogCkBAIC01Niw2ICs2Miw0NCBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fc3RkWTsKIH07CiAKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5C
bHVyOjprZXJuZWxQb3NpdGlvbihpbnQgYm94Qmx1ciwgdW5zaWduZWQmIHN0ZCwgaW50JiBkTGVm
dCwgaW50JiBkUmlnaHQpCit7CisgICAgLy8gY2hlY2sgaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
L2ZpbHRlcnMuaHRtbCNmZUdhdXNzaWFuQmx1ckVsZW1lbnQgZm9yIGRldGFpbHMKKyAgICBzd2l0
Y2ggKGJveEJsdXIpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIGlmICghKHN0ZCAlIDIpKSB7Cisg
ICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDIgLSAxOworICAgICAgICAgICAgZFJpZ2h0ID0gc3Rk
IC0gZExlZnQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDI7
CisgICAgICAgICAgICBkUmlnaHQgPSBzdGQgLSBkTGVmdDsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIDE6CisgICAgICAgIGlmICghKHN0ZCAlIDIpKSB7CisgICAgICAgICAg
ICBkTGVmdCsrOworICAgICAgICAgICAgZFJpZ2h0LS07CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSAyOgorICAgICAgICBpZiAoIShzdGQgJSAyKSkgeworICAgICAgICAgICAg
ZFJpZ2h0Kys7CisgICAgICAgICAgICBzdGQrKzsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5KEJ5
dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25l
ZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSkK
K3sKKyAgICAvLyBUaGUgc2VsZWN0aW9uIGhlcmUgZXZlbnR1YWxseSBzaG91bGQgaGFwcGVuIGR5
bmFtaWNhbGx5IG9uIHNvbWUgcGxhdGZvcm1zLgorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElM
RVIoR0NDKQorICAgIHBsYXRmb3JtQXBwbHlOZW9uKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJy
YXksIGtlcm5lbFNpemVYLCBrZXJuZWxTaXplWSwgcGFpbnRTaXplKTsKKyNlbHNlCisgICAgcGxh
dGZvcm1BcHBseUdlbmVyaWMoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJheSwga2VybmVsU2l6
ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShGSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKaW5kZXgg
MTNhNjlmZC4uYzZmNTA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCkBAIC0yOSwxNCArMjksNyBAQAogI2lm
IEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUgIkZFTGlnaHRpbmcuaCIKIAotI2luY2x1ZGUgIkxp
Z2h0U291cmNlLmgiCi0jaW5jbHVkZSAiUG9pbnRMaWdodFNvdXJjZS5oIgotI2luY2x1ZGUgIlNw
b3RMaWdodFNvdXJjZS5oIgotCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCiAj
aW5jbHVkZSAiRkVMaWdodGluZ05FT04uaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMzQsNiArMjI3LDIwIEBAIHZvaWQgRkVM
aWdodGluZzo6c2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNv
dXJjZTo6UGFpbnRpbmdECiAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGlu
Z0RhdGEsIGxpZ2h0WCwgbGlnaHRZLCBmYWN0b3JYLCBmYWN0b3JZLCBub3JtYWxWZWN0b3IpOwog
fQogCitpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyhMaWdodGlu
Z0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKK3sK
KyAgICBJbnRQb2ludCBub3JtYWxWZWN0b3I7CisgICAgaW50IG9mZnNldCA9IDA7CisKKyAgICBm
b3IgKGludCB5ID0gMTsgeSA8IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSkgeworICAg
ICAgICBvZmZzZXQgPSB5ICogZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSArIGNQaXhl
bFNpemU7CisgICAgICAgIGZvciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5
T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7CisgICAgICAgICAgICBkYXRhLmludGVy
aW9yKG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKKyAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9m
ZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCB5LCBjRmFjdG9yMWRpdjQsIGNGYWN0b3IxZGl2
NCwgbm9ybWFsVmVjdG9yKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogYm9vbCBGRUxpZ2h0aW5n
OjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwgaW50IGhlaWdodCkK
IHsKICAgICBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhIHBhaW50aW5nRGF0YTsKQEAgLTI1NSwz
NSArMjYyLDM1IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKEJ5dGVBcnJheSogcGl4
ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgcGFpbnRpbmdEYXRhLmNvbG9yVmVjdG9y
ID0gRmxvYXRQb2ludDNEKG1fbGlnaHRpbmdDb2xvci5yZWQoKSwgbV9saWdodGluZ0NvbG9yLmdy
ZWVuKCksIG1fbGlnaHRpbmdDb2xvci5ibHVlKCkpOwogICAgIG1fbGlnaHRTb3VyY2UtPmluaXRQ
YWludGluZ0RhdGEocGFpbnRpbmdEYXRhKTsKIAotICAgIC8vIFRvcC9MZWZ0IGNvcm5lcgorICAg
IC8vIFRvcC9MZWZ0IGNvcm5lci4KICAgICBJbnRQb2ludCBub3JtYWxWZWN0b3I7CiAgICAgaW50
IG9mZnNldCA9IDA7CiAgICAgZGF0YS50b3BMZWZ0KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKICAg
ICBzZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgMCwgMCwgY0ZhY3RvcjJkaXYz
LCBjRmFjdG9yMmRpdjMsIG5vcm1hbFZlY3Rvcik7CiAKLSAgICAvLyBUb3AvUmlnaHQgcGl4ZWwK
KyAgICAvLyBUb3AvUmlnaHQgcGl4ZWwuCiAgICAgb2Zmc2V0ID0gZGF0YS53aWR0aE11bHRpcGxp
ZWRCeVBpeGVsU2l6ZSAtIGNQaXhlbFNpemU7CiAgICAgZGF0YS50b3BSaWdodChvZmZzZXQsIG5v
cm1hbFZlY3Rvcik7CiAgICAgc2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIGRh
dGEud2lkdGhEZWNyZWFzZWRCeU9uZSwgMCwgY0ZhY3RvcjJkaXYzLCBjRmFjdG9yMmRpdjMsIG5v
cm1hbFZlY3Rvcik7CiAKLSAgICAvLyBCb3R0b20vTGVmdCBwaXhlbAorICAgIC8vIEJvdHRvbS9M
ZWZ0IHBpeGVsLgogICAgIG9mZnNldCA9IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgKiBkYXRh
LndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplOwogICAgIGRhdGEuYm90dG9tTGVmdChvZmZzZXQs
IG5vcm1hbFZlY3Rvcik7CiAgICAgc2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEs
IDAsIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUsIGNGYWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYz
LCBub3JtYWxWZWN0b3IpOwogCi0gICAgLy8gQm90dG9tL1JpZ2h0IHBpeGVsCisgICAgLy8gQm90
dG9tL1JpZ2h0IHBpeGVsLgogICAgIG9mZnNldCA9IGhlaWdodCAqIGRhdGEud2lkdGhNdWx0aXBs
aWVkQnlQaXhlbFNpemUgLSBjUGl4ZWxTaXplOwogICAgIGRhdGEuYm90dG9tUmlnaHQob2Zmc2V0
LCBub3JtYWxWZWN0b3IpOwogICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRh
LCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUsIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUsIGNG
YWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYzLCBub3JtYWxWZWN0b3IpOwogCiAgICAgaWYgKHdpZHRo
ID49IDMpIHsKLSAgICAgICAgLy8gVG9wIHJvdworICAgICAgICAvLyBUb3Agcm93LgogICAgICAg
ICBvZmZzZXQgPSBjUGl4ZWxTaXplOwogICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEu
d2lkdGhEZWNyZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgewogICAgICAg
ICAgICAgZGF0YS50b3BSb3cob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwogICAgICAgICAgICAgaW5s
aW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIDAsIGNGYWN0b3IxZGl2
MywgY0ZhY3RvcjFkaXYyLCBub3JtYWxWZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIC8vIEJv
dHRvbSByb3cKKyAgICAgICAgLy8gQm90dG9tIHJvdy4KICAgICAgICAgb2Zmc2V0ID0gZGF0YS5o
ZWlnaHREZWNyZWFzZWRCeU9uZSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKyBj
UGl4ZWxTaXplOwogICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNyZWFz
ZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5i
b3R0b21Sb3cob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwpAQCAtMjkyLDEzICsyOTksMTMgQEAgYm9v
bCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoQnl0ZUFycmF5KiBwaXhlbHMsIGludCB3aWR0aCwg
aW50IGhlaWdodCkKICAgICB9CiAKICAgICBpZiAoaGVpZ2h0ID49IDMpIHsKLSAgICAgICAgLy8g
TGVmdCBjb2x1bW4KKyAgICAgICAgLy8gTGVmdCBjb2x1bW4uCiAgICAgICAgIG9mZnNldCA9IGRh
dGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemU7CiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5
IDwgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZzZXQgKz0gZGF0YS53aWR0aE11
bHRpcGxpZWRCeVBpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5sZWZ0Q29sdW1uKG9mZnNl
dCwgbm9ybWFsVmVjdG9yKTsKICAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0
YSwgcGFpbnRpbmdEYXRhLCAwLCB5LCBjRmFjdG9yMWRpdjIsIGNGYWN0b3IxZGl2Mywgbm9ybWFs
VmVjdG9yKTsKICAgICAgICAgfQotICAgICAgICAvLyBSaWdodCBjb2x1bW4KKyAgICAgICAgLy8g
UmlnaHQgY29sdW1uLgogICAgICAgICBvZmZzZXQgPSAoZGF0YS53aWR0aE11bHRpcGxpZWRCeVBp
eGVsU2l6ZSA8PCAxKSAtIGNQaXhlbFNpemU7CiAgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwg
ZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZzZXQgKz0gZGF0YS53aWR0aE11bHRp
cGxpZWRCeVBpeGVsU2l6ZSkgewogICAgICAgICAgICAgZGF0YS5yaWdodENvbHVtbihvZmZzZXQs
IG5vcm1hbFZlY3Rvcik7CkBAIC0zMDcsMTggKzMxNCw4IEBAIGJvb2wgRkVMaWdodGluZzo6ZHJh
d0xpZ2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAg
fQogCiAgICAgaWYgKHdpZHRoID49IDMgJiYgaGVpZ2h0ID49IDMpIHsKLSAgICAgICAgLy8gSW50
ZXJpb3IgcGl4ZWxzCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCi0gICAgICAg
IGRyYXdJbnRlcmlvclBpeGVscyhkYXRhLCBwYWludGluZ0RhdGEpOwotI2Vsc2UKLSAgICAgICAg
Zm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3kpIHsKLSAg
ICAgICAgICAgIG9mZnNldCA9IHkgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsg
Y1BpeGVsU2l6ZTsKLSAgICAgICAgICAgIGZvciAoaW50IHggPSAxOyB4IDwgZGF0YS53aWR0aERl
Y3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBjUGl4ZWxTaXplKSB7Ci0gICAgICAgICAgICAg
ICAgZGF0YS5pbnRlcmlvcihvZmZzZXQsIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAgICAgICAgICAg
aW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIHgsIHksIGNGYWN0b3Ix
ZGl2NCwgY0ZhY3RvcjFkaXY0LCBub3JtYWxWZWN0b3IpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0jZW5kaWYKKyAgICAgICAgLy8gSW50ZXJpb3IgcGl4ZWxzLgorICAgICAgICBwbGF0Zm9y
bUFwcGx5KGRhdGEsIHBhaW50aW5nRGF0YSk7CiAgICAgfQogCiAgICAgaW50IGxhc3RQaXhlbCA9
IGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgKiBoZWlnaHQ7CkBAIC0zNjUsMTE4ICsz
NjIsNiBAQCB2b2lkIEZFTGlnaHRpbmc6OmFwcGx5KCkKICAgICBkcmF3TGlnaHRpbmcoc3JjUGl4
ZWxBcnJheSwgYWJzb2x1dGVQYWludFNpemUud2lkdGgoKSwgYWJzb2x1dGVQYWludFNpemUuaGVp
Z2h0KCkpOwogfQogCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCi0KLXN0YXRp
YyBpbnQgZ2V0UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpCi17Ci0gICAgLy8gQ2Fs
bGluZyBhIHBvd2YgZnVuY3Rpb24gZnJvbSB0aGUgYXNzZW1ibHkgY29kZSB3b3VsZCByZXF1aXJl
IHRvIHNhdmUKLSAgICAvLyBhbmQgcmVsb2FkIGEgbG90IG9mIE5FT04gcmVnaXN0ZXJzLiBTaW5j
ZSB0aGUgYmFzZSBpcyBpbiByYW5nZSBbMC4uMV0KLSAgICAvLyBhbmQgb25seSA4IGJpdCBwcmVj
aXNpb24gaXMgcmVxdWlyZWQsIHdlIHVzZSBvdXIgb3duIHBvd2YgZnVuY3Rpb24uCi0gICAgLy8g
VGhpcyBpcyBwcm9iYWJseSBub3QgdGhlIGJlc3QsIGJ1dCBpdCB1c2VzIG9ubHkgYSBmZXcgcmVn
aXN0ZXJzIGFuZAotICAgIC8vIGdpdmVzIHVzIGVub3VnaCBwcmVjaXNpb24gKG1vZGlmeWluZyB0
aGUgZXhwb25lbnQgZmllbGQgZGlyZWN0bHkgd291bGQKLSAgICAvLyBhbHNvIGJlIHBvc3NpYmxl
KS4KLQotICAgIC8vIEZpcnN0LCB3ZSBsaW1pdCB0aGUgZXhwb25lbnQgdG8gbWF4aW11bSBvZiA2
NCwgd2hpY2ggZ2l2ZXMgdXMgZW5vdWdoCi0gICAgLy8gcHJlY2lzaW9uLiBXZSBzcGxpdCB0aGUg
ZXhwb25lbnQgdG8gYW4gaW50ZWdlciBhbmQgZnJhY3Rpb24gcGFydCwKLSAgICAvLyBzaW5jZSBh
XnggPSAoYV55KSooYV56KSB3aGVyZSB4ID0geSt6LiBUaGUgaW50ZWdlciBleHBvbmVudCBvZiB0
aGUKLSAgICAvLyBwb3dlciBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlLCBhbmQgdGhlIGZyYWN0aW9u
IGV4cG9uZW50IG9mIHRoZSBwb3dlcgotICAgIC8vIGlzIGVzdGltYXRlZCBieSBzcXVhcmUgcm9v
dCBhc3NlbWJseSBpbnN0cnVjdGlvbnMuCi0gICAgaW50IGksIHJlc3VsdDsKLQotICAgIGlmIChl
eHBvbmVudCA8IDApCi0gICAgICAgIGV4cG9uZW50ID0gMSAvICgtZXhwb25lbnQpOwotCi0gICAg
aWYgKGV4cG9uZW50ID4gNjMuOTkpCi0gICAgICAgIGV4cG9uZW50ID0gNjMuOTk7Ci0KLSAgICBl
eHBvbmVudCAvPSA2NDsKLSAgICByZXN1bHQgPSAwOwotICAgIGZvciAoaSA9IDExOyBpID49IDA7
IC0taSkgewotICAgICAgICBleHBvbmVudCAqPSAyOwotICAgICAgICBpZiAoZXhwb25lbnQgPj0g
MSkgewotICAgICAgICAgICAgcmVzdWx0IHw9IDEgPDwgaTsKLSAgICAgICAgICAgIGV4cG9uZW50
IC09IDE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBG
RUxpZ2h0aW5nOjpkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNv
dXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCi17Ci0gICAgV1RGX0FMSUdORUQoRkVM
aWdodGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbiwgZmxvYXRBcmd1bWVudHMsIDE2KTsKLQotICAg
IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIG5lb25EYXRhID0gewotICAgICAgICBkYXRh
LnBpeGVscy0+ZGF0YSgpLAotICAgICAgICBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUgLSAxLAot
ICAgICAgICBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lIC0gMSwKLSAgICAgICAgMCwKLSAgICAg
ICAgMCwKLSAgICAgICAgMCwKLSAgICAgICAgJmZsb2F0QXJndW1lbnRzLAotICAgICAgICBmZUxp
Z2h0aW5nQ29uc3RhbnRzRm9yTmVvbigpCi0gICAgfTsKLQotICAgIC8vIFNldCBsaWdodCBzb3Vy
Y2UgYXJndW1lbnRzLgotICAgIGZsb2F0QXJndW1lbnRzLmNvbnN0T25lID0gMTsKLQotICAgIGZs
b2F0QXJndW1lbnRzLmNvbG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgpOwotICAgIGZsb2F0
QXJndW1lbnRzLmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4oKTsKLSAgICBmbG9h
dEFyZ3VtZW50cy5jb2xvckJsdWUgPSBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgpOwotICAgIGZsb2F0
QXJndW1lbnRzLnBhZGRpbmc0ID0gMDsKLQotICAgIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkg
PT0gTFNfUE9JTlQpIHsKLSAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19QT0lOVF9MSUdI
VDsKLSAgICAgICAgUG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJjZSA9IHN0YXRpY19j
YXN0PFBvaW50TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsKLSAgICAgICAgZmxv
YXRBcmd1bWVudHMubGlnaHRYID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7Ci0g
ICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9u
KCkueSgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBwb2ludExpZ2h0U291cmNl
LT5wb3NpdGlvbigpLnooKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAwOwot
ICAgIH0gZWxzZSBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExTX1NQT1QpIHsKLSAgICAg
ICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJR0hUOwotICAgICAgICBTcG90TGlnaHRT
b3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFNwb3RMaWdodFNvdXJjZSo+KG1f
bGlnaHRTb3VyY2UuZ2V0KCkpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBzcG90
TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdo
dFkgPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOwotICAgICAgICBmbG9hdEFyZ3Vt
ZW50cy5saWdodFogPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOwotICAgICAgICBm
bG9hdEFyZ3VtZW50cy5wYWRkaW5nMiA9IDA7Ci0KLSAgICAgICAgZmxvYXRBcmd1bWVudHMuZGly
ZWN0aW9uWCA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOwotICAgICAgICBmbG9h
dEFyZ3VtZW50cy5kaXJlY3Rpb25ZID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci55KCk7
Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblogPSBwYWludGluZ0RhdGEuZGlyZWN0
aW9uVmVjdG9yLnooKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzMgPSAwOwotCi0g
ICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVDdXRPZmZMaW1pdCA9IHBhaW50aW5nRGF0YS5jb25l
Q3V0T2ZmTGltaXQ7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVGdWxsTGlnaHQgPSBwYWlu
dGluZ0RhdGEuY29uZUZ1bGxMaWdodDsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1dE9m
ZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBhaW50aW5nRGF0YS5jb25l
RnVsbExpZ2h0OwotICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQgPSBnZXRQb3dlckNvZWZm
aWNpZW50cyhzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSk7Ci0gICAgICAgIGlm
IChzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAxKQotICAgICAgICAgICAg
bmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19ESVNUQU5UKTsKLSAgICAg
ICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yLngoKTsK
LSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9y
LnkoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcGFpbnRpbmdEYXRhLmxpZ2h0
VmVjdG9yLnooKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIgPSAxOwotICAgIH0K
LQotICAgIC8vIFNldCBsaWdodGluZyBhcmd1bWVudHMuCi0gICAgZmxvYXRBcmd1bWVudHMuc3Vy
ZmFjZVNjYWxlID0gZGF0YS5zdXJmYWNlU2NhbGU7Ci0gICAgZmxvYXRBcmd1bWVudHMubWludXNT
dXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3VyZmFjZVNjYWxlIC8gNDsKLSAgICBp
ZiAobV9saWdodGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlmZnVzZUxpZ2h0aW5nKQotICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VDb25zdGFudDsKLSAg
ICBlbHNlIHsKLSAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9MSUdIVDsK
LSAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9zcGVjdWxhckNvbnN0
YW50OwotICAgICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmlj
aWVudHMobV9zcGVjdWxhckV4cG9uZW50KTsKLSAgICAgICAgaWYgKG1fc3BlY3VsYXJFeHBvbmVu
dCA9PSAxKQotICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVDVUxBUl9FWFBP
TkVOVF9JU18xOwotICAgIH0KLSAgICBpZiAoZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50
ID09IDEpCi0gICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfRElGRlVTRV9DT05TVF9JU18x
OwotCi0gICAgbmVvbkRyYXdMaWdodGluZygmbmVvbkRhdGEpOwotfQotI2VuZGlmIC8vIENQVShB
Uk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKaW5kZXggM2RjNDZlOS4uNTY1MGM0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxp
Z2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNs
dWRlICJGaWx0ZXJFZmZlY3QuaCIKICNpbmNsdWRlICJMaWdodFNvdXJjZS5oIgorI2luY2x1ZGUg
IlBvaW50TGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJTcG90TGlnaHRTb3VyY2UuaCIKICNpbmNs
dWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKQEAgLTgw
LDkgKzgyLDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldFBpeGVsKGludCBvZmZzZXQsIExp
Z2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmLAogICAgICAgICAgICAgICAg
ICAgaW50IGxpZ2h0WCwgaW50IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwg
SW50UG9pbnQmIG5vcm1hbFZlY3Rvcik7CiAKLSNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVS
KEdDQykKLSAgICB2b2lkIGRyYXdJbnRlcmlvclBpeGVscyhMaWdodGluZ0RhdGEmLCBMaWdodFNv
dXJjZTo6UGFpbnRpbmdEYXRhJik7Ci0jZW5kaWYKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFw
cGx5KExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmKTsKKworICAgIGlu
bGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKExpZ2h0aW5nRGF0YSYsIExpZ2h0U291cmNl
OjpQYWludGluZ0RhdGEmKTsKKyAgICBzdGF0aWMgaW50IGdldFBvd2VyQ29lZmZpY2llbnRzKGZs
b2F0IGV4cG9uZW50KTsKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5TmVvbihMaWdodGlu
Z0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJik7CiAKICAgICBMaWdodGluZ1R5cGUg
bV9saWdodGluZ1R5cGU7CiAgICAgUmVmUHRyPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwpA
QCAtOTYsNiArMTAwLDE2IEBAIHByb3RlY3RlZDoKICAgICBmbG9hdCBtX2tlcm5lbFVuaXRMZW5n
dGhZOwogfTsKIAoraW5saW5lIHZvaWQgRkVMaWdodGluZzo6cGxhdGZvcm1BcHBseShMaWdodGlu
Z0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKK3sK
KyAgICAvLyBUaGUgc2VsZWN0aW9uIGhlcmUgZXZlbnR1YWxseSBzaG91bGQgaGFwcGVuIGR5bmFt
aWNhbGx5IG9uIHNvbWUgcGxhdGZvcm1zLgorI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIo
R0NDKQorICAgIHBsYXRmb3JtQXBwbHlOZW9uKGRhdGEsIHBhaW50aW5nRGF0YSk7CisjZWxzZQor
ICAgIHBsYXRmb3JtQXBwbHlHZW5lcmljKGRhdGEsIHBhaW50aW5nRGF0YSk7CisjZW5kaWYKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTFRFUlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUdhdXNzaWFuQmx1ck5FT04uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42ZjM5MDg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcApAQCAt
MCwwICsxLDM0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6
ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDExIFpvbHRhbiBIZXJjemVnCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyTkVPTi5oIgorCisjaWYgQ1BV
KEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKKyNpbmNsdWRlIDx3dGYvQWxpZ25tZW50Lmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFdURl9BTElHTkVEKHVuc2lnbmVkIGNo
YXIsIHNfRkVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsKKyAgICAvLyBN
YXBwaW5nIGZyb20gQVJNIHRvIE5FT04gcmVnaXN0ZXJzLgorICAgIDAsIDE2LCAxNiwgMTYsIDEs
ICAxNiwgMTYsIDE2LCAyLCAgMTYsIDE2LCAxNiwgMywgIDE2LCAxNiwgMTYsCisgICAgLy8gTWFw
cGluZyBmcm9tIE5FT04gdG8gQVJNIHJlZ2lzdGVycy4KKyAgICAwLCA0LCAgOCwgIDEyLCAxNiwg
MTYsIDE2LCAxNgorfTsKKwordW5zaWduZWQgY2hhciogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNG
b3JOZW9uKCkKK3sKKyAgICByZXR1cm4gc19GRUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb247
Cit9CisKKyNkZWZpbmUgQVNTVFJJTkcoc3RyKSAjc3RyCisjZGVmaW5lIFRPU1RSSU5HKHZhbHVl
KSBBU1NUUklORyh2YWx1ZSkKKworI2RlZmluZSBTVFJJREVfT0ZGU0VUIFRPU1RSSU5HKDApCisj
ZGVmaW5lIFNUUklERV9XSURUSF9PRkZTRVQgVE9TVFJJTkcoNCkKKyNkZWZpbmUgU1RSSURFX0xJ
TkVfT0ZGU0VUIFRPU1RSSU5HKDgpCisjZGVmaW5lIFNUUklERV9MSU5FX1dJRFRIX09GRlNFVCBU
T1NUUklORygxMikKKyNkZWZpbmUgUkVNQUlOSU5HX1NUUklERVNfT0ZGU0VUIFRPU1RSSU5HKDE2
KQorI2RlZmluZSBESVNUQU5DRV9MRUZUX09GRlNFVCBUT1NUUklORygyMCkKKyNkZWZpbmUgRElT
VEFOQ0VfUklHSFRfT0ZGU0VUIFRPU1RSSU5HKDI0KQorI2RlZmluZSBJTlZFUlRFRF9LRVJORUxf
U0laRV9PRkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5lIFBBSU5USU5HX0NPTlNUQU5UU19PRkZT
RVQgVE9TVFJJTkcoMzIpCisjZGVmaW5lIE5MICJcbiIKKworLy8gUmVnaXN0ZXIgYWxsb2NhdGlv
bi4KKyNkZWZpbmUgU09VUkNFX1IgICAgICAgICAgICAgICAgInIwIgorI2RlZmluZSBERVNUSU5B
VElPTl9SICAgICAgICAgICAicjEiCisjZGVmaW5lIExFRlRfUiAgICAgICAgICAgICAgICAgICJy
MiIKKyNkZWZpbmUgUklHSFRfUiAgICAgICAgICAgICAgICAgInIzIgorI2RlZmluZSBTT1VSQ0Vf
RU5EX1IgICAgICAgICAgICAicjQiCisjZGVmaW5lIERFU1RJTkFUSU9OX0VORF9SICAgICAgICJy
NSIKKyNkZWZpbmUgU1RSSURFX1IgICAgICAgICAgICAgICAgInI2IgorI2RlZmluZSBTVFJJREVf
V0lEVEhfUiAgICAgICAgICAicjciCisjZGVmaW5lIFNUUklERV9MSU5FX1IgICAgICAgICAgICJy
OCIKKyNkZWZpbmUgU09VUkNFX0xJTkVfRU5EX1IgICAgICAgInIxMCIKKyNkZWZpbmUgRElTVEFO
Q0VfTEVGVF9SICAgICAgICAgInIxMSIKKyNkZWZpbmUgRElTVEFOQ0VfUklHSFRfUiAgICAgICAg
InIxMiIKKyNkZWZpbmUgTUFYX0tFUk5FTF9TSVpFX1IgICAgICAgImxyIgorCisvLyBBbHRlcm5h
dGUgbmFtZXMuCisjZGVmaW5lIElOSVRfSU5WRVJURURfS0VSTkVMX1NJWkVfUiBTT1VSQ0VfRU5E
X1IKKyNkZWZpbmUgSU5JVF9QQUlOVElOR19DT05TVEFOVFNfUiBERVNUSU5BVElPTl9FTkRfUgor
I2RlZmluZSBJTklUX1NVTV9SIExFRlRfUgorI2RlZmluZSBSRU1BSU5JTkdfU1RSSURFU19SIFNP
VVJDRV9MSU5FX0VORF9SCisKKyNkZWZpbmUgSU5WRVJURURfS0VSTkVMX1NJWkVfUSAgInEwIgor
I2RlZmluZSBTVU1fUSAgICAgICAgICAgICAgICAgICAicTEiCisjZGVmaW5lIFBJWEVMX1EgICAg
ICAgICAgICAgICAgICJxMiIKKyNkZWZpbmUgUElYRUxfRDAgICAgICAgICAgICAgICAgImQ0Igor
I2RlZmluZSBQSVhFTF9EMSAgICAgICAgICAgICAgICAiZDUiCisjZGVmaW5lIFBJWEVMX0QwMCAg
ICAgICAgICAgICAgICJkNFswXSIKKyNkZWZpbmUgUElYRUxfRDAxICAgICAgICAgICAgICAgImQ0
WzFdIgorI2RlZmluZSBQSVhFTF9TMSAgICAgICAgICAgICAgICAiczkiCisjZGVmaW5lIFBJWEVM
X0QxMCAgICAgICAgICAgICAgICJkNVswXSIKKyNkZWZpbmUgUElYRUxfUzIgICAgICAgICAgICAg
ICAgInMxMCIKKyNkZWZpbmUgUElYRUxfRDExICAgICAgICAgICAgICAgImQ1WzFdIgorI2RlZmlu
ZSBSRU1BSU5JTkdfU1RSSURFU19TMCAgICAiczEyIgorCisjZGVmaW5lIFJFQURfUkFOR0UgICAg
ICAgICAgICAgICJkMTYtZDE4IgorI2RlZmluZSBSRU1BUF9BUk1fTkVPTjFfUSAgICAgICAiZDE2
IgorI2RlZmluZSBSRU1BUF9BUk1fTkVPTjJfUSAgICAgICAiZDE3IgorI2RlZmluZSBSRU1BUF9O
RU9OX0FSTV9RICAgICAgICAiZDE4IgorCithc20gKCAvLyBOT0xJTlQKKyIuZ2xvYmwgIiBUT1NU
UklORyhuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIpIE5MCitUT1NUUklORyhuZW9uRHJh
d0FsbENoYW5uZWxHYXVzc2lhbkJsdXIpICI6IiBOTAorICAgICJzdG1kYiBzcCEsIHtyNC1yOCwg
cjEwLCByMTEsIGxyfSIgTkwKKyAgICAibGRyICIgU1RSSURFX1IgIiwgW3IyLCAjIiBTVFJJREVf
T0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfV0lEVEhfUiAiLCBbcjIsICMiIFNUUklE
RV9XSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIERJU1RBTkNFX0xFRlRfUiAiLCBbcjIs
ICMiIERJU1RBTkNFX0xFRlRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBESVNUQU5DRV9SSUdI
VF9SICIsIFtyMiwgIyIgRElTVEFOQ0VfUklHSFRfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBT
VFJJREVfTElORV9SICIsIFtyMiwgIyIgU1RSSURFX0xJTkVfT0ZGU0VUICJdIiBOTAorICAgICJs
ZHIgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCBbcjIsICMiIFNUUklERV9MSU5FX1dJRFRIX09GRlNF
VCAiXSIgTkwKKyAgICAibGRyICIgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SICIsIFtyMiwg
IyIgSU5WRVJURURfS0VSTkVMX1NJWkVfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBJTklUX1BB
SU5USU5HX0NPTlNUQU5UU19SICIsIFtyMiwgIyIgUEFJTlRJTkdfQ09OU1RBTlRTX09GRlNFVCAi
XSIgTkwKKworICAgIC8vIEluaXRpYWxpemUgbG9jYWxzLgorICAgICJtdWwgIiBESVNUQU5DRV9M
RUZUX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJtdWwgIiBE
SVNUQU5DRV9SSUdIVF9SICIsICIgRElTVEFOQ0VfUklHSFRfUiAiLCAiIFNUUklERV9SIE5MCisg
ICAgIm1vdiAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBOTAorICAg
ICJjbXAgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgIm1v
dmNzICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQg
IiBTT1VSQ0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9MSU5FX0VORF9SICIsICIgU09VUkNFX1Ig
TkwKKyAgICAidmR1cC5mMzIgIiBJTlZFUlRFRF9LRVJORUxfU0laRV9RICIsICIgSU5JVF9JTlZF
UlRFRF9LRVJORUxfU0laRV9SIE5MCisgICAgInZsZDEuZjMyIHsgIiBSRUFEX1JBTkdFICIgfSwg
WyIgSU5JVF9QQUlOVElOR19DT05TVEFOVFNfUiAiXSEiIE5MCisKKyIuYWxsQ2hhbm5lbE1haW5M
b29wOiIgTkwKKworICAgIC8vIEluaXRpYWxpemUgdGhlIHN1bSB2YXJpYWJsZS4KKyAgICAidm1v
di51MzIgIiBTVU1fUSAiLCAjMCIgTkwKKyAgICAibW92ICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJD
RV9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIsICIgTUFYX0tF
Uk5FTF9TSVpFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9FTkRfUiBO
TAorICAgICJiY3MgLmFsbENoYW5uZWxJbml0U3VtRG9uZSIgTkwKKyIuYWxsQ2hhbm5lbEluaXRT
dW06IiBOTAorICAgICJ2bGQxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBJTklUX1NVTV9SICJdLCAi
IFNUUklERV9SIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QxICIsIHsiIFBJWEVMX0QwICJ9LCAi
IFJFTUFQX0FSTV9ORU9OMl9RIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVM
X0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMV9RIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwg
IiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJD
RV9FTkRfUiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxJbml0U3VtIiBOTAorIi5hbGxDaGFubmVs
SW5pdFN1bURvbmU6IiBOTAorCisgICAgLy8gQmx1cnJpbmcuCisgICAgImFkZCAiIFNPVVJDRV9F
TkRfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgREVT
VElOQVRJT05fRU5EX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwK
KyAgICAic3ViICIgTEVGVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgTkwK
KyAgICAiYWRkICIgUklHSFRfUiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBO
TAorCisiLmFsbENoYW5uZWxCbHVyOiIgTkwKKyAgICAidmN2dC5mMzIudTMyICIgUElYRUxfUSAi
LCAiIFNVTV9RIE5MCisgICAgInZtdWwuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIiBJ
TlZFUlRFRF9LRVJORUxfU0laRV9RIE5MCisgICAgInZjdnQudTMyLmYzMiAiIFBJWEVMX1EgIiwg
IiBQSVhFTF9RIE5MCisgICAgInZ0YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVMX0QwICItIiBQ
SVhFTF9EMSAifSwgIiBSRU1BUF9ORU9OX0FSTV9RIE5MCisgICAgInZzdDEudTMyICIgUElYRUxf
RDAwICIsIFsiIERFU1RJTkFUSU9OX1IgIl0sICIgU1RSSURFX1IgTkwKKworICAgICJjbXAgIiBM
RUZUX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxTa2lwTGVmdCIgTkwK
KyAgICAidmxkMS51MzIgIiBQSVhFTF9EMDAgIiwgWyIgTEVGVF9SICJdIiBOTAorICAgICJ2dGJs
LjggIiBQSVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVPTjJfUSBOTAor
ICAgICJ2dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVP
TjFfUSBOTAorICAgICJ2c3ViLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5M
CisiLmFsbENoYW5uZWxTa2lwTGVmdDogIiBOTAorCisgICAgImNtcCAiIFJJR0hUX1IgIiwgIiBT
T1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbGxDaGFubmVsU2tpcFJpZ2h0IiBOTAorICAgICJ2
bGQxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBSSUdIVF9SICJdIiBOTAorICAgICJ2dGJsLjggIiBQ
SVhFTF9EMSAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVPTjJfUSBOTAorICAgICJ2
dGJsLjggIiBQSVhFTF9EMCAiLCB7IiBQSVhFTF9EMCAifSwgIiBSRU1BUF9BUk1fTkVPTjFfUSBO
TAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFs
bENoYW5uZWxTa2lwUmlnaHQ6ICIgTkwKKworICAgICJhZGQgIiBMRUZUX1IgIiwgIiBMRUZUX1Ig
IiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgUklHSFRfUiAiLCAiIFNU
UklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9FTkRf
UiBOTAorICAgICJiY2MgLmFsbENoYW5uZWxCbHVyIiBOTAorICAgICJzdWIgIiBERVNUSU5BVElP
Tl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisKKyAgICAiYWRk
ICIgU09VUkNFX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIFNUUklERV9MSU5FX1IgTkwKKyAgICAiYWRk
ICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfTElORV9SIE5M
CisgICAgImNtcCAiIFNPVVJDRV9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgTkwKKyAgICAiYmNj
IC5hbGxDaGFubmVsTWFpbkxvb3AiIE5MCisKKyAgICAibGRtaWEgc3AhLCB7cjQtcjgsIHIxMCwg
cjExLCBwY30iIE5MCispOyAvLyBOT0xJTlQKKworI2RlZmluZSBEQVRBX1RSQU5TRkVSNChjb21t
YW5kLCBiYXNlKSBcCisgICAgY29tbWFuZCAiICIgUElYRUxfRDAwICIsIFsiIGJhc2UgIl0sICIg
U1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFuZCAiICIgUElYRUxfRDAxICIsIFsiIGJhc2Ug
Il0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFuZCAiICIgUElYRUxfRDEwICIsIFsi
IGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgY29tbWFuZCAiICIgUElYRUxfRDEx
ICIsIFsiIGJhc2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgInN1YiAiIGJhc2UgIiwg
IiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisKKy8vIFRoZSBudW1iZXIg
b2YgcmVhZHMgZGVwZW5kIG9uIFJFTUFJTklOR19TVFJJREVTX1IsIGJ1dCBpdCBpcyBhbHdheXMg
Pj0gMSBhbmQgPD0gMworI2RlZmluZSBDT05ESVRJT05BTF9EQVRBX1RSQU5TRkVSNChjb21tYW5k
MSwgY29tbWFuZDIsIGJhc2UpIFwKKyAgICBjb21tYW5kMSAiICIgUElYRUxfRDAwICIsIFsiIGJh
c2UgIl0sICIgU1RSSURFX0xJTkVfUiBOTCBcCisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJREVT
X1IgIiwgIzIiIE5MIFwKKyAgICBjb21tYW5kMiAiY3MgIiBQSVhFTF9TMSAiLCBbIiBiYXNlICJd
IiBOTCBcCisgICAgImFkZCAiIGJhc2UgIiwgIiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiBOTCBc
CisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwgIzMiIE5MIFwKKyAgICBjb21tYW5k
MiAiY3MgIiBQSVhFTF9TMiAiLCBbIiBiYXNlICJdIiBOTCBcCisgICAgInN1YiAiIGJhc2UgIiwg
IiBiYXNlICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzEiIE5MCisKK2FzbSAoIC8vIE5PTElO
VAorIi5nbG9ibCAiIFRPU1RSSU5HKG5lb25EcmF3QWxwaGFDaGFubmVsR2F1c3NpYW5CbHVyKSBO
TAorVE9TVFJJTkcobmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIpICI6IiBOTAorICAg
ICJzdG1kYiBzcCEsIHtyNC1yOCwgcjEwLCByMTEsIGxyfSIgTkwKKyAgICAibGRyICIgU1RSSURF
X1IgIiwgW3IyLCAjIiBTVFJJREVfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfV0lE
VEhfUiAiLCBbcjIsICMiIFNUUklERV9XSURUSF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIERJ
U1RBTkNFX0xFRlRfUiAiLCBbcjIsICMiIERJU1RBTkNFX0xFRlRfT0ZGU0VUICJdIiBOTAorICAg
ICJsZHIgIiBESVNUQU5DRV9SSUdIVF9SICIsIFtyMiwgIyIgRElTVEFOQ0VfUklHSFRfT0ZGU0VU
ICJdIiBOTAorICAgICJsZHIgIiBTVFJJREVfTElORV9SICIsIFtyMiwgIyIgU1RSSURFX0xJTkVf
T0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBTT1VSQ0VfTElORV9FTkRfUiAiLCBbcjIsICMiIFNU
UklERV9MSU5FX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgSU5JVF9JTlZFUlRFRF9L
RVJORUxfU0laRV9SICIsIFtyMiwgIyIgSU5WRVJURURfS0VSTkVMX1NJWkVfT0ZGU0VUICJdIiBO
TAorICAgICJ2bGRyLnUzMiAiIFJFTUFJTklOR19TVFJJREVTX1MwICIsIFtyMiwgIyIgUkVNQUlO
SU5HX1NUUklERVNfT0ZGU0VUICJdIiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSBsb2NhbHMuCisg
ICAgIm11bCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIFNUUklE
RV9SIE5MCisgICAgIm11bCAiIERJU1RBTkNFX1JJR0hUX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9S
ICIsICIgU1RSSURFX1IgTkwKKyAgICAibW92ICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBESVNU
QU5DRV9SSUdIVF9SIE5MCisgICAgImNtcCAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgU1RSSURF
X1dJRFRIX1IgTkwKKyAgICAibW92Y3MgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklERV9X
SURUSF9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9MSU5FX0VORF9SICIsICIgU09VUkNFX0xJTkVf
RU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJ2ZHVwLmYzMiAiIElOVkVSVEVEX0tFUk5FTF9T
SVpFX1EgIiwgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAiY21wICIgU09V
UkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJiZXEgLmFscGhhQ2hhbm5lbEVh
cmx5TGVhdmUiIE5MCisKKyAgICAvLyBQcm9jZXNzaW5nIDQgc3RyaWRlcyBwYXJhbGxlbGx5Lgor
CisiLmFscGhhQ2hhbm5lbE1haW5Mb29wOiIgTkwKKworICAgIC8vIEluaXRpYWxpemUgdGhlIHN1
bSB2YXJpYWJsZS4KKyAgICAidm1vdi51MzIgIiBTVU1fUSAiLCAjMCIgTkwKKyAgICAibW92ICIg
SU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAi
IFNPVVJDRV9SICIsICIgTUFYX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAiY21wICIgSU5JVF9TVU1f
UiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFscGhhQ2hhbm5lbEluaXRTdW1Eb25l
IiBOTAorIi5hbHBoYUNoYW5uZWxJbml0U3VtOiIgTkwKKyAgICBEQVRBX1RSQU5TRkVSNCgidmxk
MS51MzIiLCBJTklUX1NVTV9SKQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9R
ICIsICMyNCIgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxf
USBOTAorICAgICJhZGQgIiBJTklUX1NVTV9SICIsICIgSU5JVF9TVU1fUiAiLCAiIFNUUklERV9S
IE5MCisgICAgImNtcCAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNj
IC5hbHBoYUNoYW5uZWxJbml0U3VtIiBOTAorIi5hbHBoYUNoYW5uZWxJbml0U3VtRG9uZToiIE5M
CisKKyAgICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNF
X1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQgIiBERVNUSU5BVElPTl9FTkRfUiAi
LCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJzdWIgIiBMRUZU
X1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiBOTAorICAgICJhZGQgIiBSSUdI
VF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisKKyIuYWxwaGFDaGFu
bmVsQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAiIFBJWEVMX1EgIiwgIiBTVU1fUSBOTAor
ICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICIgSU5WRVJURURfS0VSTkVM
X1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSBOTAor
ICAgICJ2c2hsLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICBEQVRB
X1RSQU5TRkVSNCgidnN0MS51MzIiLCBERVNUSU5BVElPTl9SKQorCisgICAgImNtcCAiIExFRlRf
UiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsU2tpcExlZnQiIE5MCisg
ICAgREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgTEVGVF9SKQorICAgICJ2c2hyLnUzMiAiIFBJ
WEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAidnN1Yi51MzIgIiBTVU1fUSAiLCAi
IFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbHBoYUNoYW5uZWxTa2lwTGVmdDogIiBOTAorCisg
ICAgImNtcCAiIFJJR0hUX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbHBoYUNo
YW5uZWxTa2lwUmlnaHQiIE5MCisgICAgREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgUklHSFRf
UikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAg
InZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyIuYWxwaGFDaGFu
bmVsU2tpcFJpZ2h0OiAiIE5MCisKKyAgICAiYWRkICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJ
TkFUSU9OX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBMRUZUX1IgIiwgIiBMRUZUX1Ig
IiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIsICIgUklHSFRfUiAiLCAiIFNU
UklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9FTkRf
UiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbEJsdXIiIE5MCisgICAgInN1YiAiIERFU1RJTkFU
SU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKworICAgICJh
ZGQgIiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX0xJTkVfUiAiLCBsc2wgIzIi
IE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RS
SURFX0xJTkVfUiAiLCBsc2wgIzIiIE5MCisgICAgImNtcCAiIFNPVVJDRV9SICIsICIgU09VUkNF
X0xJTkVfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxNYWluTG9vcCIgTkwKKworICAg
IC8vIFByb2Nlc3NpbmcgdGhlIHJlbWFpbmluZyBzdHJpZGVzICgwIC0gMykuCisiLmFscGhhQ2hh
bm5lbEVhcmx5TGVhdmU6IiBOTAorICAgICJ2bW92LnUzMiAiIFJFTUFJTklOR19TVFJJREVTX1Ig
IiwgIiBSRU1BSU5JTkdfU1RSSURFU19TMCBOTAorICAgIC8vIEVhcmx5IHJldHVybiBmb3IgMCBz
dHJpZGVzLgorICAgICJjbXAgIiBSRU1BSU5JTkdfU1RSSURFU19SICIsICMwIiBOTAorICAgICJs
ZG1lcWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9IiBOTAorCisgICAgLy8gSW5pdGlhbGl6
ZSB0aGUgc3VtIHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAiIFNVTV9RICIsICMwIiBOTAorICAg
ICJtb3YgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0VO
RF9SICIsICIgU09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJWkVfUiBOTAorICAgICJjbXAgIiBJ
TklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAuYWxwaGFDaGFubmVsU2Vj
b25kSW5pdFN1bURvbmUiIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZEluaXRTdW06IiBOTAorICAg
IENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQxLnUzMiIsICJ2bGRyIiwgSU5JVF9TVU1f
UikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAg
InZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyAgICAiYWRkICIg
SU5JVF9TVU1fUiAiLCAiIElOSVRfU1VNX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJjbXAgIiBJ
TklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsU2Vj
b25kSW5pdFN1bSIgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bURvbmU6IiBOTAorCisg
ICAgLy8gQmx1cnJpbmcuCisgICAgImFkZCAiIFNPVVJDRV9FTkRfUiAiLCAiIFNPVVJDRV9SICIs
ICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fRU5EX1IgIiwgIiBE
RVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAic3ViICIgTEVGVF9SICIs
ICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9MRUZUX1IgTkwKKyAgICAiYWRkICIgUklHSFRfUiAi
LCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfUklHSFRfUiBOTAorCisiLmFscGhhQ2hhbm5lbFNl
Y29uZEJsdXI6IiBOTAorICAgICJ2Y3Z0LmYzMi51MzIgIiBQSVhFTF9RICIsICIgU1VNX1EgTkwK
KyAgICAidm11bC5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAiIElOVkVSVEVEX0tFUk5F
TF9TSVpFX1EgTkwKKyAgICAidmN2dC51MzIuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgTkwK
KyAgICAidnNobC51MzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAjMjQiIE5MCisgICAgQ09O
RElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZzdDEudTMyIiwgInZzdHIiLCBERVNUSU5BVElPTl9S
KQorCisgICAgImNtcCAiIExFRlRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAuYWxwaGFD
aGFubmVsU2Vjb25kU2tpcExlZnQiIE5MCisgICAgQ09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQo
InZsZDEudTMyIiwgInZsZHIiLCBMRUZUX1IpCisgICAgInZzaHIudTMyICIgUElYRUxfUSAiLCAi
IFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2c3ViLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwg
IiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNraXBMZWZ0OiAiIE5MCisKKyAgICAi
Y21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFscGhhQ2hhbm5l
bFNlY29uZFNraXBSaWdodCIgTkwKKyAgICBDT05ESVRJT05BTF9EQVRBX1RSQU5TRkVSNCgidmxk
MS51MzIiLCAidmxkciIsIFJJR0hUX1IpCisgICAgInZzaHIudTMyICIgUElYRUxfUSAiLCAiIFBJ
WEVMX1EgIiwgIzI0IiBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQ
SVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNlY29uZFNraXBSaWdodDogIiBOTAorCisgICAgImFk
ZCAiIERFU1RJTkFUSU9OX1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1IgTkwKKyAg
ICAiYWRkICIgTEVGVF9SICIsICIgTEVGVF9SICIsICIgU1RSSURFX1IgTkwKKyAgICAiYWRkICIg
UklHSFRfUiAiLCAiIFJJR0hUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJjbXAgIiBERVNUSU5B
VElPTl9SICIsICIgREVTVElOQVRJT05fRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxT
ZWNvbmRCbHVyIiBOTAorCisgICAgImxkbWlhIHNwISwge3I0LXI4LCByMTAsIHIxMSwgcGN9IiBO
TAorKTsgLy8gTk9MSU5UCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENQ
VShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5F
T04uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjAzN2FhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVHYXVzc2lhbkJsdXJORU9OLmgKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBab2x0
YW4gSGVyY3plZworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBV
TklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRkVHYXVzc2lhbkJsdXJORU9OX2gKKyNkZWZpbmUg
RkVHYXVzc2lhbkJsdXJORU9OX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYg
Q1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisKKyNpbmNsdWRlICJGRUdhdXNzaWFuQmx1
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGRUdhdXNzaWFuQmx1clBhaW50
aW5nRGF0YUZvck5lb24geworICAgIGludCBzdHJpZGU7CisgICAgaW50IHN0cmlkZVdpZHRoOwor
ICAgIGludCBzdHJpZGVMaW5lOworICAgIGludCBzdHJpZGVMaW5lV2lkdGg7CisgICAgaW50IHJl
bWFpbmluZ1N0cmlkZXM7CisgICAgaW50IGRpc3RhbmNlTGVmdDsKKyAgICBpbnQgZGlzdGFuY2VS
aWdodDsKKyAgICBmbG9hdCBpbnZlcnRlZEtlcm5lbFNpemU7CisgICAgdW5zaWduZWQgY2hhciog
cGFpbnRpbmdDb25zdGFudHM7Cit9OworCit1bnNpZ25lZCBjaGFyKiBmZUdhdXNzaWFuQmx1ckNv
bnN0YW50c0Zvck5lb24oKTsKKworZXh0ZXJuICJDIiB7Cit2b2lkIG5lb25EcmF3QWxsQ2hhbm5l
bEdhdXNzaWFuQmx1cih1bnNpZ25lZCBjaGFyKiBzb3VyY2UsIHVuc2lnbmVkIGNoYXIqIGRlc3Rp
bmF0aW9uLCBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZvck5lb24qKTsKK3ZvaWQgbmVvbkRy
YXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIodW5zaWduZWQgY2hhciogc291cmNlLCB1bnNpZ25l
ZCBjaGFyKiBkZXN0aW5hdGlvbiwgRkVHYXVzc2lhbkJsdXJQYWludGluZ0RhdGFGb3JOZW9uKik7
Cit9CisKK2lubGluZSB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5TmVvbihCeXRl
QXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQg
a2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpCit7
CisgICAgY29uc3QgaW50IHdpZHRoTXVsdGlwbGllZEJ5Rm91ciA9IDQgKiBwYWludFNpemUud2lk
dGgoKTsKKyAgICBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZvck5lb24gYXJndW1lbnRzWCA9
IHsKKyAgICAgICAgNCwKKyAgICAgICAgd2lkdGhNdWx0aXBsaWVkQnlGb3VyLAorICAgICAgICB3
aWR0aE11bHRpcGxpZWRCeUZvdXIsCisgICAgICAgIChpc0FscGhhSW1hZ2UoKSA/ICgocGFpbnRT
aXplLmhlaWdodCgpID4+IDIpIDw8IDIpIDogcGFpbnRTaXplLmhlaWdodCgpKSAqIHdpZHRoTXVs
dGlwbGllZEJ5Rm91ciwKKyAgICAgICAgaXNBbHBoYUltYWdlKCkgPyAocGFpbnRTaXplLmhlaWdo
dCgpICYgMHgzKSA6IDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAg
ICAgIGlzQWxwaGFJbWFnZSgpID8gMCA6IGZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbigp
CisgICAgfTsKKyAgICBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZvck5lb24gYXJndW1lbnRz
WSA9IHsKKyAgICAgICAgd2lkdGhNdWx0aXBsaWVkQnlGb3VyLAorICAgICAgICB3aWR0aE11bHRp
cGxpZWRCeUZvdXIgKiBwYWludFNpemUuaGVpZ2h0KCksCisgICAgICAgIDQsCisgICAgICAgIChp
c0FscGhhSW1hZ2UoKSA/ICgocGFpbnRTaXplLndpZHRoKCkgPj4gMikgPDwgMikgOiBwYWludFNp
emUud2lkdGgoKSkgKiA0LAorICAgICAgICBpc0FscGhhSW1hZ2UoKSA/IChwYWludFNpemUud2lk
dGgoKSAmIDB4MykgOiAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAg
ICAgICBpc0FscGhhSW1hZ2UoKSA/IDAgOiBmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb24o
KQorICAgIH07CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBp
ZiAoa2VybmVsU2l6ZVgpIHsKKyAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNp
emVYLCBhcmd1bWVudHNYLmRpc3RhbmNlTGVmdCwgYXJndW1lbnRzWC5kaXN0YW5jZVJpZ2h0KTsK
KyAgICAgICAgICAgIGFyZ3VtZW50c1guaW52ZXJ0ZWRLZXJuZWxTaXplID0gMSAvIHN0YXRpY19j
YXN0PGZsb2F0PihrZXJuZWxTaXplWCk7CisgICAgICAgICAgICBpZiAoaXNBbHBoYUltYWdlKCkp
CisgICAgICAgICAgICAgICAgbmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIoc3JjUGl4
ZWxBcnJheS0+ZGF0YSgpLCB0bXBQaXhlbEFycmF5LT5kYXRhKCksICZhcmd1bWVudHNYKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZW9uRHJhd0FsbENoYW5uZWxHYXVzc2lh
bkJsdXIoc3JjUGl4ZWxBcnJheS0+ZGF0YSgpLCB0bXBQaXhlbEFycmF5LT5kYXRhKCksICZhcmd1
bWVudHNYKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4
ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7CisgICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3Jj
UGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5Owor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGtlcm5lbFNpemVZKSB7CisgICAgICAgICAgICBrZXJu
ZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWSwgYXJndW1lbnRzWS5kaXN0YW5jZUxlZnQsIGFyZ3Vt
ZW50c1kuZGlzdGFuY2VSaWdodCk7CisgICAgICAgICAgICBhcmd1bWVudHNZLmludmVydGVkS2Vy
bmVsU2l6ZSA9IDEgLyBzdGF0aWNfY2FzdDxmbG9hdD4oa2VybmVsU2l6ZVkpOworICAgICAgICAg
ICAgaWYgKGlzQWxwaGFJbWFnZSgpKQorICAgICAgICAgICAgICAgIG5lb25EcmF3QWxwaGFDaGFu
bmVsR2F1c3NpYW5CbHVyKHRtcFBpeGVsQXJyYXktPmRhdGEoKSwgc3JjUGl4ZWxBcnJheS0+ZGF0
YSgpLCAmYXJndW1lbnRzWSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmVv
bkRyYXdBbGxDaGFubmVsR2F1c3NpYW5CbHVyKHRtcFBpeGVsQXJyYXktPmRhdGEoKSwgc3JjUGl4
ZWxBcnJheS0+ZGF0YSgpLCAmYXJndW1lbnRzWSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFycmF5OworICAgICAgICAg
ICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7CisgICAgICAgICAgICBzcmNQaXhlbEFy
cmF5ID0gYXV4UGl4ZWxBcnJheTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCisK
KyNlbmRpZiAvLyBGRUdhdXNzaWFuQmx1ck5FT05faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
Y3BwCmluZGV4IDM4MDdmMWYuLmMxZThhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5j
cHAKQEAgLTI5LDE0ICsyOSwxNCBAQAogCiAjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihH
Q0MpCiAKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL0FsaWdubWVudC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIGNvbnN0YW50cyBhcmUgY29waWVk
IHRvIHRoZSBmb2xsb3dpbmcgU0lNRCByZWdpc3RlcnM6CiAvLyAgIEFMUEhBWF9RIEFMUEhBWV9R
IFJFTUFQWF9EIFJFTUFQWV9ECiAKLVdURl9BTElHTkVEKHNob3J0LCBzX0ZFTGlnaHRpbmdDb25z
dGFudHNGb3JOZW9uW10sIDE2KSA9IHsKK3N0YXRpYyBXVEZfQUxJR05FRChzaG9ydCwgc19GRUxp
Z2h0aW5nQ29uc3RhbnRzRm9yTmVvbltdLCAxNikgPSB7CiAgICAgLy8gQWxwaGEgY29lZmZpY2ll
bnRzLgogICAgIC0yLCAxLCAwLCAtMSwgMiwgMSwgMCwgLTEsCiAgICAgMCwgLTEsIC0yLCAtMSwg
MCwgMSwgMiwgMSwKQEAgLTYwLDcgKzYwLDcgQEAgc2hvcnQqIGZlTGlnaHRpbmdDb25zdGFudHNG
b3JOZW9uKCkKICNkZWZpbmUgU1BFQ1VMQVJfRVhQT05FTlRfT0ZGU0VUIFRPU1RSSU5HKDE2KQog
I2RlZmluZSBDT05FX0VYUE9ORU5UX09GRlNFVCBUT1NUUklORygyMCkKICNkZWZpbmUgRkxPQVRf
QVJHVU1FTlRTX09GRlNFVCBUT1NUUklORygyNCkKLSNkZWZpbmUgRFJBV0lOR19DT05TVEFOVFNf
T0ZGU0VUIFRPU1RSSU5HKDI4KQorI2RlZmluZSBQQUlOVElOR19DT05TVEFOVFNfT0ZGU0VUIFRP
U1RSSU5HKDI4KQogI2RlZmluZSBOTCAiXG4iCiAKIC8vIFJlZ2lzdGVyIGFsbG9jYXRpb24KQEAg
LTIxOSw3ICsyMTksNyBAQCBUT1NUUklORyhuZW9uRHJhd0xpZ2h0aW5nKSAiOiIgTkwKIAogICAg
IC8vIFRoZSBmb2xsb3dpbmcgdHdvIGFyZ3VtZW50cyBhcmUgbG9hZGVkIHRvIFNJTUQgcmVnaXN0
ZXJzLgogICAgICJsZHIgcjAsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBGTE9BVF9BUkdVTUVO
VFNfT0ZGU0VUICJdIiBOTAotICAgICJsZHIgcjEsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBE
UkFXSU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCisgICAgImxkciByMSwgWyIgUEFJTlRJTkdf
REFUQV9SICIsICMiIFBBSU5USU5HX0NPTlNUQU5UU19PRkZTRVQgIl0iIE5MCiAgICAgImxkciAi
IFBJWEVMU19SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBQSVhFTFNfT0ZGU0VUICJdIiBO
TAogICAgICJsZHIgIiBXSURUSF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAiLCAjIiBXSURUSF9P
RkZTRVQgIl0iIE5MCiAgICAgImxkciAiIEhFSUdIVF9SICIsIFsiIFBBSU5USU5HX0RBVEFfUiAi
LCAjIiBIRUlHSFRfT0ZGU0VUICJdIiBOTApAQCAtMjQ2LDcgKzI0Niw3IEBAIFRPU1RSSU5HKG5l
b25EcmF3TGlnaHRpbmcpICI6IiBOTAogICAgICJ2bW92LmYzMiAiIFNQT1RfQ09MT1JfUSAiLCAi
IENPTE9SX1EgTkwKICAgICAibW92ICIgUkVTRVRfV0lEVEhfUiAiLCAiIFdJRFRIX1IgTkwKIAot
Ii5tYWlubG9vcDoiIE5MCisiLm1haW5Mb29wOiIgTkwKICAgICAibW92IHIzLCAjMyIgTkwKICAg
ICAidm1vdi5mMzIgIiBQT1NJVElPTl9YX1MgIiwgIiBDT05TVF9PTkVfUyBOTAogCkBAIC00MTcs
NyArNDE3LDcgQEAgVE9TVFJJTkcobmVvbkRyYXdMaWdodGluZykgIjoiIE5MCiAgICAgInZhZGQu
ZjMyICIgUE9TSVRJT05fWV9TICIsICIgQ09OU1RfT05FX1MgTkwKICAgICAibW92ICIgV0lEVEhf
UiAiLCAiIFJFU0VUX1dJRFRIX1IgTkwKICAgICAic3VicyAiIEhFSUdIVF9SICIsICIgSEVJR0hU
X1IgIiwgIzEiIE5MCi0gICAgImJuZSAubWFpbmxvb3AiIE5MCisgICAgImJuZSAubWFpbkxvb3Ai
IE5MCiAKICAgICAvLyBSZXR1cm4uCiAgICAgInZsZG1pYSBzcCEsIHtkOC1kMTV9IiBOTApAQCAt
NDU5LDYgKzQ1OSw0MCBAQCBUT1NUUklORyhuZW9uRHJhd0xpZ2h0aW5nKSAiOiIgTkwKICAgICAi
YiAubGlnaHRTdHJlbmd0aENhbGN1bGF0ZWQiIE5MCiApOyAvLyBOT0xJTlQKIAoraW50IEZFTGln
aHRpbmc6OmdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQoreworICAgIC8vIENh
bGxpbmcgYSBwb3dmIGZ1bmN0aW9uIGZyb20gdGhlIGFzc2VtYmx5IGNvZGUgd291bGQgcmVxdWly
ZSB0byBzYXZlCisgICAgLy8gYW5kIHJlbG9hZCBhIGxvdCBvZiBORU9OIHJlZ2lzdGVycy4gU2lu
Y2UgdGhlIGJhc2UgaXMgaW4gcmFuZ2UgWzAuLjFdCisgICAgLy8gYW5kIG9ubHkgOCBiaXQgcHJl
Y2lzaW9uIGlzIHJlcXVpcmVkLCB3ZSB1c2Ugb3VyIG93biBwb3dmIGZ1bmN0aW9uLgorICAgIC8v
IFRoaXMgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0LCBidXQgaXQgdXNlcyBvbmx5IGEgZmV3IHJl
Z2lzdGVycyBhbmQKKyAgICAvLyBnaXZlcyB1cyBlbm91Z2ggcHJlY2lzaW9uIChtb2RpZnlpbmcg
dGhlIGV4cG9uZW50IGZpZWxkIGRpcmVjdGx5IHdvdWxkCisgICAgLy8gYWxzbyBiZSBwb3NzaWJs
ZSkuCisKKyAgICAvLyBGaXJzdCwgd2UgbGltaXQgdGhlIGV4cG9uZW50IHRvIG1heGltdW0gb2Yg
NjQsIHdoaWNoIGdpdmVzIHVzIGVub3VnaAorICAgIC8vIHByZWNpc2lvbi4gV2Ugc3BsaXQgdGhl
IGV4cG9uZW50IHRvIGFuIGludGVnZXIgYW5kIGZyYWN0aW9uIHBhcnQsCisgICAgLy8gc2luY2Ug
YV54ID0gKGFeeSkqKGFeeikgd2hlcmUgeCA9IHkrei4gVGhlIGludGVnZXIgZXhwb25lbnQgb2Yg
dGhlCisgICAgLy8gcG93ZXIgaXMgZXN0aW1hdGVkIGJ5IHNxdWFyZSwgYW5kIHRoZSBmcmFjdGlv
biBleHBvbmVudCBvZiB0aGUgcG93ZXIKKyAgICAvLyBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlIHJv
b3QgYXNzZW1ibHkgaW5zdHJ1Y3Rpb25zLgorICAgIGludCBpLCByZXN1bHQ7CisKKyAgICBpZiAo
ZXhwb25lbnQgPCAwKQorICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKKworICAg
IGlmIChleHBvbmVudCA+IDYzLjk5KQorICAgICAgICBleHBvbmVudCA9IDYzLjk5OworCisgICAg
ZXhwb25lbnQgLz0gNjQ7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGkgPSAxMTsgaSA+PSAw
OyAtLWkpIHsKKyAgICAgICAgZXhwb25lbnQgKj0gMjsKKyAgICAgICAgaWYgKGV4cG9uZW50ID49
IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7CisgICAgICAgICAgICBleHBvbmVu
dCAtPSAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIo
R0NDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9hcm0vRkVMaWdodGluZ05FT04uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKaW5kZXggZDgzYjdmZS4uZWM1ZWFkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVM
aWdodGluZ05FT04uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oCkBAIC0zMSw2ICszMSw5IEBACiAKICNpZiBDUFUoQVJN
X05FT04pICYmIENPTVBJTEVSKEdDQykKIAorI2luY2x1ZGUgIkZFTGlnaHRpbmcuaCIKKyNpbmNs
dWRlIDx3dGYvQWxpZ25tZW50Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gT3RoZXJ3
aXNlOiBEaXN0YW50IExpZ2h0LgpAQCAtODksNiArOTIsODEgQEAgZXh0ZXJuICJDIiB7CiB2b2lk
IG5lb25EcmF3TGlnaHRpbmcoRkVMaWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24qKTsKIH0KIAor
aW5saW5lIHZvaWQgRkVMaWdodGluZzo6cGxhdGZvcm1BcHBseU5lb24oTGlnaHRpbmdEYXRhJiBk
YXRhLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCit7CisgICAgV1RG
X0FMSUdORUQoRkVMaWdodGluZ0Zsb2F0QXJndW1lbnRzRm9yTmVvbiwgZmxvYXRBcmd1bWVudHMs
IDE2KTsKKworICAgIEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uIG5lb25EYXRhID0gewor
ICAgICAgICBkYXRhLnBpeGVscy0+ZGF0YSgpLAorICAgICAgICBkYXRhLndpZHRoRGVjcmVhc2Vk
QnlPbmUgLSAxLAorICAgICAgICBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lIC0gMSwKKyAgICAg
ICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgJmZsb2F0QXJndW1lbnRzLAor
ICAgICAgICBmZUxpZ2h0aW5nQ29uc3RhbnRzRm9yTmVvbigpCisgICAgfTsKKworICAgIC8vIFNl
dCBsaWdodCBzb3VyY2UgYXJndW1lbnRzLgorICAgIGZsb2F0QXJndW1lbnRzLmNvbnN0T25lID0g
MTsKKworICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yUmVkID0gbV9saWdodGluZ0NvbG9yLnJlZCgp
OworICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yR3JlZW4gPSBtX2xpZ2h0aW5nQ29sb3IuZ3JlZW4o
KTsKKyAgICBmbG9hdEFyZ3VtZW50cy5jb2xvckJsdWUgPSBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgp
OworICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmc0ID0gMDsKKworICAgIGlmIChtX2xpZ2h0U291
cmNlLT50eXBlKCkgPT0gTFNfUE9JTlQpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxB
R19QT0lOVF9MSUdIVDsKKyAgICAgICAgUG9pbnRMaWdodFNvdXJjZSogcG9pbnRMaWdodFNvdXJj
ZSA9IHN0YXRpY19jYXN0PFBvaW50TGlnaHRTb3VyY2UqPihtX2xpZ2h0U291cmNlLmdldCgpKTsK
KyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcG9pbnRMaWdodFNvdXJjZS0+cG9zaXRp
b24oKS54KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBvaW50TGlnaHRTb3Vy
Y2UtPnBvc2l0aW9uKCkueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBwb2lu
dExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFk
ZGluZzIgPSAwOworICAgIH0gZWxzZSBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09IExTX1NQ
T1QpIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUE9UX0xJR0hUOworICAgICAg
ICBTcG90TGlnaHRTb3VyY2UqIHNwb3RMaWdodFNvdXJjZSA9IHN0YXRpY19jYXN0PFNwb3RMaWdo
dFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5s
aWdodFggPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOworICAgICAgICBmbG9hdEFy
Z3VtZW50cy5saWdodFkgPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueSgpOworICAgICAg
ICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBzcG90TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigp
OworICAgICAgICBmbG9hdEFyZ3VtZW50cy5wYWRkaW5nMiA9IDA7CisKKyAgICAgICAgZmxvYXRB
cmd1bWVudHMuZGlyZWN0aW9uWCA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueCgpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25ZID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlv
blZlY3Rvci55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblogPSBwYWludGlu
Z0RhdGEuZGlyZWN0aW9uVmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGlu
ZzMgPSAwOworCisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVDdXRPZmZMaW1pdCA9IHBhaW50
aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQ7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVGdWxs
TGlnaHQgPSBwYWludGluZ0RhdGEuY29uZUZ1bGxMaWdodDsKKyAgICAgICAgZmxvYXRBcmd1bWVu
dHMuY29uZUN1dE9mZlJhbmdlID0gcGFpbnRpbmdEYXRhLmNvbmVDdXRPZmZMaW1pdCAtIHBhaW50
aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBuZW9uRGF0YS5jb25lRXhwb25lbnQgPSBn
ZXRQb3dlckNvZWZmaWNpZW50cyhzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSk7
CisgICAgICAgIGlmIChzcG90TGlnaHRTb3VyY2UtPnNwZWN1bGFyRXhwb25lbnQoKSA9PSAxKQor
ICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19DT05FX0VYUE9ORU5UX0lTXzE7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fbGlnaHRTb3VyY2UudHlwZSA9PSBMU19ESVNU
QU5UKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gcGFpbnRpbmdEYXRhLmxpZ2h0
VmVjdG9yLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcGFpbnRpbmdEYXRh
LmxpZ2h0VmVjdG9yLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcGFpbnRp
bmdEYXRhLmxpZ2h0VmVjdG9yLnooKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzIg
PSAxOworICAgIH0KKworICAgIC8vIFNldCBsaWdodGluZyBhcmd1bWVudHMuCisgICAgZmxvYXRB
cmd1bWVudHMuc3VyZmFjZVNjYWxlID0gZGF0YS5zdXJmYWNlU2NhbGU7CisgICAgZmxvYXRBcmd1
bWVudHMubWludXNTdXJmYWNlU2NhbGVEaXZpZGVkQnlGb3VyID0gLWRhdGEuc3VyZmFjZVNjYWxl
IC8gNDsKKyAgICBpZiAobV9saWdodGluZ1R5cGUgPT0gRkVMaWdodGluZzo6RGlmZnVzZUxpZ2h0
aW5nKQorICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNlQ29uc3RhbnQgPSBtX2RpZmZ1c2VD
b25zdGFudDsKKyAgICBlbHNlIHsKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19TUEVD
VUxBUl9MSUdIVDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9z
cGVjdWxhckNvbnN0YW50OworICAgICAgICBuZW9uRGF0YS5zcGVjdWxhckV4cG9uZW50ID0gZ2V0
UG93ZXJDb2VmZmljaWVudHMobV9zcGVjdWxhckV4cG9uZW50KTsKKyAgICAgICAgaWYgKG1fc3Bl
Y3VsYXJFeHBvbmVudCA9PSAxKQorICAgICAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19T
UEVDVUxBUl9FWFBPTkVOVF9JU18xOworICAgIH0KKyAgICBpZiAoZmxvYXRBcmd1bWVudHMuZGlm
ZnVzZUNvbnN0YW50ID09IDEpCisgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfRElGRlVT
RV9DT05TVF9JU18xOworCisgICAgbmVvbkRyYXdMaWdodGluZygmbmVvbkRhdGEpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBDUFUoQVJNX05FT04pICYmIENPTVBJ
TEVSKEdDQykKLS0gCjEuNi41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91465</attachid>
            <date>2011-04-28 03:56:38 -0700</date>
            <delta_ts>2011-04-28 05:11:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-gauss.patch</filename>
            <type>text/plain</type>
            <size>66939</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSAwMzJmMjE1YzQ0Mzk3YWEzZGQ5ZGExMTBkZmEyNzZmMTI4OWYwMGI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBUaHUsIDI4IEFwciAyMDExIDEyOjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gZ2F1c3MKCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICsKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICA0NiArKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtICAgICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgIDE2ICsKIC4uLi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wcyAgIHwgICAgMiArLQogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAgIDI0ICsrCiAu
Li4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgICB8ICAgNzgg
KystLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggICAg
IHwgICAzNCArKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAg
ICAgICAgfCAgMTczICsrLS0tLS0tLS0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5oIHwgICAxMCArLQogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
R2F1c3NpYW5CbHVyTkVPTi5jcHAgICAgfCAgMzQzICsrKysrKysrKysrKysrKysrKysrCiAuLi4v
Z3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmggICAgICB8ICAxMTYgKysr
KysrKwogLi4uL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCAgICAgICAg
fCAgIDQ2ICsrKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5n
TkVPTi5oIHwgICA3OCArKysrKwogMTcgZmlsZXMgY2hhbmdlZCwgNzg4IGluc2VydGlvbnMoKyks
IDE5NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVHYXVzc2lhbkJsdXJORU9OLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUxNjZkYTEuLjcz
MDRhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMCw2ICszMCw3IEBAIFNFVChXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYXVkaW8i
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3JtcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2Jt
cCIKQEAgLTExMjYsNiArMTEyNywxMSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTkVPTi5oCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L0FmZmluZVRyYW5zZm9ybS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc2MTE1MzEu
LjZmZDZkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMS0wNC0yNyAgWm9sdGFu
IEhlcmN6ZWcgIDx6aGVyY3plZ0BpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW1pemluZyBnYXVzc2lhbiBibHVyIGZp
bHRlciB0byBBUk0tbmVvbiBTSU1EIGluc3RydWN0aW9uIHNldAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0NDcKKworICAgICAgICBUaGlzIHBhdGNo
IGNvbnRhaW5zIHR3byBzdWItcm91dGluZXMsIG9uZSBmb3Igc3BlZWRpbmcgdXAKKyAgICAgICAg
YWxwaGEgY2hhbm5lbCBvbmx5IGdhdXNzaWFuIGJsdXIgKGJ5IDIuNSB0aW1lcykgYW5kIG9uZQor
ICAgICAgICBmb3Igc3BlZWRpbmcgdXAgYWxsIGNoYW5uZWwgYmx1ciAoYnkgNCB0aW1lcykuCisK
KyAgICAgICAgVGhlIGNvbW1vbiBjb2RlIGlzIGFsc28gcmVkZXNpZ25lZCB0byBiZXR0ZXIgZml0
IGZvciBwbGF0Zm9ybQorICAgICAgICBzcGVjaWZpYyBjb2RlLiBUaGlzIG1lYW5zIGxhcmdlIGNo
dW5rcyBvZiBjb2RlIHdhcyBtb3ZlZCB0bworICAgICAgICBkaWZmZXJlbnQgZmlsZXMsIGFuZCBh
bGwgcGxhdGZvcm0gc3BlY2lmaWMgZmlsZXMgYXJlIGFkZGVkIHRvCisgICAgICAgIGFsbCBidWls
ZCBzeXN0ZW1zLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1v
bi52c3Byb3BzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyk6
CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6YXBwbHkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFR2F1c3NpYW5CbHVyOjprZXJuZWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
RUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6
OnBsYXRmb3JtQXBwbHlHZW5lcmljKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmRy
YXdMaWdodGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFwcGx5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldURl9BTElHTkVEKToKKyAgICAgICAgKFdl
YkNvcmU6OmZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHlOZW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXVEZfQUxJR05FRCk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0
aW5nOjpnZXRQb3dlckNvZWZmaWNpZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRp
bmc6OnBsYXRmb3JtQXBwbHlOZW9uKToKKwogMjAxMS0wNC0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmcm9tIHRoZSBmdXR1cmUuICBBbm90
aGVyIHRyaXZhbCBzdHJpY3QgT3duUHRyIGZpeGVzLiAgVGhpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCAyZGZlOWUyLi41M2FlOWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNDUsNiArNDUs
NyBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpbyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvYXJtIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnR5cGUgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTJkMzMxNi4uNTZhZWVi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMzY3LDYgKzIzNjcsMTAgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1
ck5FT04uaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05FT04uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50M0QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFBvaW50M0QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDFkMjQ4OGUuLjAwN2UzMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTQxMjQsNiArNDEyNCw4IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5F
T04uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdh
dXNzaWFuQmx1ck5FT04uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhLmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCBkOGQ3ZjVkLi5jNWUyMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTkyNCw2
ICsxOTI0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VBbHBoYS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
aCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9O
LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvaW50LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVh
ZC5oIFwKQEAgLTMwNTcsNyArMzA1OCw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxU
RVJTPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3Vy
Y2UuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
IFwKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
Y3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9O
LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5C
bHVyTkVPTi5jcHAKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGZlZjFk
NTIuLjc0Mjc2ZGIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yOTE1NSw2ICsyOTE1NSwyMiBAQAogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXFNwb3RMaWdodFNvdXJjZS5oIgogCQkJCQkJPgogCQkJ
CQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXGZpbHRlcnNcYXJtXEZFR2F1c3NpYW5CbHVyTkVPTi5jcHAiCisJCQkJCQk+CisJCQkJ
CTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcZmlsdGVyc1xhcm1cRkVHYXVzc2lhbkJsdXJORU9OLmgiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcZmlsdGVyc1xhcm1cRkVMaWdodGluZ05FT04uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZp
bHRlcnNcYXJtXEZFTGlnaHRpbmdORU9OLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KIAkJCQk8
L0ZpbHRlcj4KIAkJCQk8RmlsdGVyCiAJCQkJCU5hbWU9ImNhIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCmluZGV4IDg2YjYzMGYu
Ljg5MTk5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmVDb21tb24udnNwcm9wcworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlQ29tbW9uLnZzcHJvcHMKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQo
UHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdl
XGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
aHRtbFxzaGFkb3cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvciZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxs
b2FkZXJcYXBwY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRp
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3Jr
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1xjYSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
b3BlbnR5cGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRy
YW5zZm9ybXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlciZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlx4bWwmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxX
ZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5z
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3Zn
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
XHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1
b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIp
Li4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmlu
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1hdGhtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxyZW5kZXJpbmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJp
bmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxoaXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5caHRtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcc2hhZG93
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNh
Y2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGxvYWRlclxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGlj
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
Y2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcYXJt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHhtbCZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVy
aXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tl
dHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRo
cmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCiAJCVBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9SRU5ERVJJTkc7V0VC
Q09SRV9DT05URVhUX01FTlVTIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29t
cGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDhkOGVhZi4uMGVjNTA1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzQ4LDYgKzM0OCwxMCBAQAogCQkxOEY4MzFCODBGRDQ4Qzc4MDBEOEM1NkIgLyog
V29ya2VyTG9hZGVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE4RjgzMUI3MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5o
ICovOyB9OwogCQkxOTIxMzI3NDExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcCAqLzsgfTsKIAkJMTkyMTMyNzUxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxOTIxMzI3MjExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuaCAqLzsgfTsKKwkJMTk4NDFCRkYxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVy
TkVPTi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
OTg0MUJGQjEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lhbkJsdXJORU9OLmNwcCAqLzsgfTsK
KwkJMTk4NDFDMDAxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVPTi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTk4NDFCRkMxMzY4MzZG
MDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVPTi5oICovOyB9OworCQkxOTg0MUMwMTEzNjgz
NkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05FT04uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTk4NDFCRkQxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGln
aHRpbmdORU9OLmNwcCAqLzsgfTsKKwkJMTk4NDFDMDIxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGln
aHRpbmdORU9OLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxOTg0MUJGRTEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGluZ05FT04uaCAqLzsgfTsKIAkJ
MTlCRkY2NEIxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0
NjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLzsg
fTsKIAkJMTlCRkY2NEMxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTlCRkY2NDcxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
Lm1tICovOyB9OwogCQkxOUJGRjY0RDExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTlCRkY2NDgxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTY3ODEsNiArNjc4NSwxMCBAQAog
CQkxOTIxMzI3MTExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxOTIxMzI3MjEx
QzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTkyMTMyNzMxMUMwRTZCQjAwNDU2MjM4IC8qIFNW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTE5ODQxQkZCMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUdhdXNzaWFuQmx1ck5FT04uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBGRUdhdXNzaWFuQmx1ck5FT04uY3BwOyBw
YXRoID0gZmlsdGVycy9hcm0vRkVHYXVzc2lhbkJsdXJORU9OLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMTk4NDFCRkMxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVy
TkVPTi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUdhdXNzaWFuQmx1ck5F
T04uaDsgcGF0aCA9IGZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxOTg0MUJGRDEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdodGlu
Z05FT04uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVMaWdodGlu
Z05FT04uY3BwOyBwYXRoID0gZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxOTg0MUJGRTEzNjgzNkYwMDA2RUJCQjkgLyogRkVMaWdo
dGluZ05FT04uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVMaWdodGluZ05F
T04uaDsgcGF0aCA9IGZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE5QkZGNjQ2MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxOUJGRjY0NzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTlC
RkY2NDgxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50SW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTI5MDQsNiArMTI5MTIsMTcgQEAKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlOwog
CQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKIAkJfTsKKwkJMTk4NDFCRkExMzY4
MzZBMTAwNkVCQkI5IC8qIGFybSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMTk4NDFCRkIxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVP
Ti5jcHAgKi8sCisJCQkJMTk4NDFCRkMxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVy
TkVPTi5oICovLAorCQkJCTE5ODQxQkZEMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVP
Ti5jcHAgKi8sCisJCQkJMTk4NDFCRkUxMzY4MzZGMDAwNkVCQkI5IC8qIEZFTGlnaHRpbmdORU9O
LmggKi8sCisJCQkpOworCQkJbmFtZSA9IGFybTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTFBMkU2RTU2MENDNTUxRTAwMDRBMjA2MiAvKiBzcWwgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTYzMjYsNiArMTYzNDUsNyBAQAogCQlB
NzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMTk4NDFCRkExMzY4MzZBMTAwNkVCQkI5IC8qIGFy
bSAqLywKIAkJCQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNl
LmNwcCAqLywKIAkJCQk4NDczMEQ1QTEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFudExpZ2h0U291
cmNlLmggKi8sCiAJCQkJQTc1RThCODAwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwICov
LApAQCAtMjEwMzAsNyArMjEwNTAsOSBAQAogCQkJCTg0NzMwRDdEMTI0OEYwQjMwMEQzQTlDOSAv
KiBGRURpc3BsYWNlbWVudE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEN0YxMjQ4RjBC
MzAwRDNBOUM5IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0ODAxOTU1MTA4QkFG
QjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTk4NDFD
MDAxMzY4MzZGMDAwNkVCQkI5IC8qIEZFR2F1c3NpYW5CbHVyTkVPTi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQ3MzBEODExMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTE5ODQxQzAyMTM2ODM2RjAwMDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVPTi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU1vcnBob2xv
Z3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg3MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9m
ZnNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzg4OSw3ICsyMzkxMSw5IEBACiAJCQkJODQ3MzBE
N0MxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg0NzMwRDdFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg0ODAxOTU0MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxOTg0MUJGRjEzNjgzNkYwMDA2RUJCQjkgLyogRkVHYXVzc2lh
bkJsdXJORU9OLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDgwMTI0OEYwQjMwMEQzQTlD
OSAvKiBGRUxpZ2h0aW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE5ODQxQzAxMTM2ODM2RjAw
MDZFQkJCOSAvKiBGRUxpZ2h0aW5nTkVPTi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ4
MjEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDcz
MEQ4NDEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTg0NzMwRDg2MTI0OEYwQjMwMEQzQTlDOSAvKiBGRU9mZnNldC5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggOTI5NjgyOC4uZWJlNzJiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpZiBFTkFCTEUoRklMVEVSUykKICNp
bmNsdWRlICJGRUdhdXNzaWFuQmx1ci5oIgogCisjaW5jbHVkZSAiRkVHYXVzc2lhbkJsdXJORU9O
LmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgpAQCAtMTAxLDM0ICsxMDIsNDQgQEAgaW5saW5l
IHZvaWQgYm94Qmx1cihCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogZHN0UGl4
ZWxBcnJheSwKICAgICB9CiB9CiAKLWlubGluZSB2b2lkIGtlcm5lbFBvc2l0aW9uKGludCBib3hC
bHVyLCB1bnNpZ25lZCYgc3RkLCBpbnQmIGRMZWZ0LCBpbnQmIGRSaWdodCkKK2lubGluZSB2b2lk
IEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyhCeXRlQXJyYXkqIHNyY1BpeGVs
QXJyYXksIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVu
c2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpCiB7Ci0gICAgLy8gY2hlY2sg
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2ZpbHRlcnMuaHRtbCNmZUdhdXNzaWFuQmx1ckVsZW1l
bnQgZm9yIGRldGFpbHMKLSAgICBzd2l0Y2ggKGJveEJsdXIpIHsKLSAgICBjYXNlIDA6Ci0gICAg
ICAgIGlmICghKHN0ZCAlIDIpKSB7Ci0gICAgICAgICAgICBkTGVmdCA9IHN0ZCAvIDIgLSAxOwot
ICAgICAgICAgICAgZFJpZ2h0ID0gc3RkIC0gZExlZnQ7CisgICAgaW50IHN0cmlkZSA9IDQgKiBw
YWludFNpemUud2lkdGgoKTsKKyAgICBpbnQgZHhMZWZ0ID0gMDsKKyAgICBpbnQgZHhSaWdodCA9
IDA7CisgICAgaW50IGR5TGVmdCA9IDA7CisgICAgaW50IGR5UmlnaHQgPSAwOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGlmIChrZXJuZWxTaXplWCkgeworICAg
ICAgICAgICAga2VybmVsUG9zaXRpb24oaSwga2VybmVsU2l6ZVgsIGR4TGVmdCwgZHhSaWdodCk7
CisgICAgICAgICAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5l
bFNpemVYLCBkeExlZnQsIGR4UmlnaHQsIDQsIHN0cmlkZSwgcGFpbnRTaXplLndpZHRoKCksIHBh
aW50U2l6ZS5oZWlnaHQoKSwgaXNBbHBoYUltYWdlKCkpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgZExlZnQgPSBzdGQgLyAyOwotICAgICAgICAgICAgZFJpZ2h0ID0gc3RkIC0gZExl
ZnQ7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBpZiAo
IShzdGQgJSAyKSkgewotICAgICAgICAgICAgZExlZnQrKzsKLSAgICAgICAgICAgIGRSaWdodC0t
OworICAgICAgICAgICAgQnl0ZUFycmF5KiBhdXhQaXhlbEFycmF5ID0gdG1wUGl4ZWxBcnJheTsK
KyAgICAgICAgICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5OworICAgICAgICAgICAg
c3JjUGl4ZWxBcnJheSA9IGF1eFBpeGVsQXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSAyOgotICAgICAgICBpZiAoIShzdGQgJSAyKSkgewotICAgICAgICAgICAgZFJp
Z2h0Kys7Ci0gICAgICAgICAgICBzdGQrKzsKKworICAgICAgICBpZiAoa2VybmVsU2l6ZVkpIHsK
KyAgICAgICAgICAgIGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNpemVZLCBkeUxlZnQsIGR5Umln
aHQpOworICAgICAgICAgICAgYm94Qmx1cih0bXBQaXhlbEFycmF5LCBzcmNQaXhlbEFycmF5LCBr
ZXJuZWxTaXplWSwgZHlMZWZ0LCBkeVJpZ2h0LCBzdHJpZGUsIDQsIHBhaW50U2l6ZS5oZWlnaHQo
KSwgcGFpbnRTaXplLndpZHRoKCksIGlzQWxwaGFJbWFnZSgpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7Cisg
ICAgICAgICAgICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHNy
Y1BpeGVsQXJyYXkgPSBhdXhQaXhlbEFycmF5OwogICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAoraW5saW5lIHZvaWQgRkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHkoQnl0
ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVk
IGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKQor
eworICAgIC8vIFRoZSBzZWxlY3Rpb24gaGVyZSBldmVudHVhbGx5IHNob3VsZCBoYXBwZW4gZHlu
YW1pY2FsbHkgb24gc29tZSBwbGF0Zm9ybXMuCisjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxF
UihHQ0MpCisgICAgcGxhdGZvcm1BcHBseU5lb24oc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJh
eSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOworI2Vsc2UKKyAgICBwbGF0
Zm9ybUFwcGx5R2VuZXJpYyhzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJuZWxTaXpl
WCwga2VybmVsU2l6ZVksIHBhaW50U2l6ZSk7CisjZW5kaWYKK30KKwogdm9pZCBGRUdhdXNzaWFu
Qmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqIGZpbHRlciwgdW5zaWduZWQmIGtlcm5l
bFNpemVYLCB1bnNpZ25lZCYga2VybmVsU2l6ZVksIGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFkpCiB7
CiAgICAgc3RkWCA9IGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUoc3RkWCk7CkBAIC0xOTMs
MzAgKzIwNCw3IEBAIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KCkKICAgICBSZWZQdHI8Qnl0
ZUFycmF5PiB0bXBJbWFnZURhdGEgPSBCeXRlQXJyYXk6OmNyZWF0ZShwYWludFNpemUud2lkdGgo
KSAqIHBhaW50U2l6ZS5oZWlnaHQoKSAqIDQpOwogICAgIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJh
eSA9IHRtcEltYWdlRGF0YS5nZXQoKTsKIAotICAgIGludCBzdHJpZGUgPSA0ICogcGFpbnRTaXpl
LndpZHRoKCk7Ci0gICAgaW50IGR4TGVmdCA9IDA7Ci0gICAgaW50IGR4UmlnaHQgPSAwOwotICAg
IGludCBkeUxlZnQgPSAwOwotICAgIGludCBkeVJpZ2h0ID0gMDsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IDM7ICsraSkgewotICAgICAgICBpZiAoa2VybmVsU2l6ZVgpIHsKLSAgICAgICAgICAg
IGtlcm5lbFBvc2l0aW9uKGksIGtlcm5lbFNpemVYLCBkeExlZnQsIGR4UmlnaHQpOwotICAgICAg
ICAgICAgYm94Qmx1cihzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5LCBrZXJuZWxTaXplWCwg
ZHhMZWZ0LCBkeFJpZ2h0LCA0LCBzdHJpZGUsIHBhaW50U2l6ZS53aWR0aCgpLCBwYWludFNpemUu
aGVpZ2h0KCksIGlzQWxwaGFJbWFnZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7Ci0gICAgICAgICAgICB0
bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKLSAgICAgICAgICAgIHNyY1BpeGVsQXJyYXkg
PSBhdXhQaXhlbEFycmF5OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGtlcm5lbFNpemVZKSB7
Ci0gICAgICAgICAgICBrZXJuZWxQb3NpdGlvbihpLCBrZXJuZWxTaXplWSwgZHlMZWZ0LCBkeVJp
Z2h0KTsKLSAgICAgICAgICAgIGJveEJsdXIodG1wUGl4ZWxBcnJheSwgc3JjUGl4ZWxBcnJheSwg
a2VybmVsU2l6ZVksIGR5TGVmdCwgZHlSaWdodCwgc3RyaWRlLCA0LCBwYWludFNpemUuaGVpZ2h0
KCksIHBhaW50U2l6ZS53aWR0aCgpLCBpc0FscGhhSW1hZ2UoKSk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBCeXRlQXJyYXkqIGF1eFBpeGVsQXJyYXkgPSB0bXBQaXhlbEFycmF5Owot
ICAgICAgICAgICAgdG1wUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXk7Ci0gICAgICAgICAgICBz
cmNQaXhlbEFycmF5ID0gYXV4UGl4ZWxBcnJheTsKLSAgICAgICAgfQotICAgIH0KKyAgICBwbGF0
Zm9ybUFwcGx5KHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5lbFNpemVYLCBrZXJu
ZWxTaXplWSwgcGFpbnRTaXplKTsKIH0KIAogdm9pZCBGRUdhdXNzaWFuQmx1cjo6ZHVtcCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
R2F1c3NpYW5CbHVyLmgKaW5kZXggMWQ1OGVmMy4uMTRjNjY2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aApAQCAtNDksNiArNDksMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRl
S2VybmVsU2l6ZShGaWx0ZXIqLCB1bnNpZ25lZCYga2VybmVsU2l6ZVgsIHVuc2lnbmVkJiBrZXJu
ZWxTaXplWSwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSk7CiAKKyAgICBzdGF0aWMgaW5saW5lIHZv
aWQga2VybmVsUG9zaXRpb24oaW50IGJveEJsdXIsIHVuc2lnbmVkJiBzdGQsIGludCYgZExlZnQs
IGludCYgZFJpZ2h0KTsKKyAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5KEJ5dGVBcnJheSog
c3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBrZXJuZWxT
aXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSk7CisKKyAgICBp
bmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXks
IEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVk
IGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpOworICAgIGlubGluZSB2b2lkIHBsYXRm
b3JtQXBwbHlOZW9uKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhl
bEFycmF5LCB1bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNp
emUmIHBhaW50U2l6ZSk7CisKIHByaXZhdGU6CiAgICAgRkVHYXVzc2lhbkJsdXIoRmlsdGVyKiwg
ZmxvYXQsIGZsb2F0KTsKIApAQCAtNTYsNiArNjIsMzQgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBt
X3N0ZFk7CiB9OwogCitpbmxpbmUgdm9pZCBGRUdhdXNzaWFuQmx1cjo6a2VybmVsUG9zaXRpb24o
aW50IGJveEJsdXIsIHVuc2lnbmVkJiBzdGQsIGludCYgZExlZnQsIGludCYgZFJpZ2h0KQorewor
ICAgIC8vIGNoZWNrIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwjZmVHYXVz
c2lhbkJsdXJFbGVtZW50IGZvciBkZXRhaWxzCisgICAgc3dpdGNoIChib3hCbHVyKSB7CisgICAg
Y2FzZSAwOgorICAgICAgICBpZiAoIShzdGQgJSAyKSkgeworICAgICAgICAgICAgZExlZnQgPSBz
dGQgLyAyIC0gMTsKKyAgICAgICAgICAgIGRSaWdodCA9IHN0ZCAtIGRMZWZ0OworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZExlZnQgPSBzdGQgLyAyOworICAgICAgICAgICAgZFJpZ2h0
ID0gc3RkIC0gZExlZnQ7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgor
ICAgICAgICBpZiAoIShzdGQgJSAyKSkgeworICAgICAgICAgICAgZExlZnQrKzsKKyAgICAgICAg
ICAgIGRSaWdodC0tOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAg
ICAgICAgaWYgKCEoc3RkICUgMikpIHsKKyAgICAgICAgICAgIGRSaWdodCsrOworICAgICAgICAg
ICAgc3RkKys7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3Bw
CmluZGV4IDEzYTY5ZmQuLjA2ZDcxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtMjksMTQgKzI5LDcg
QEAKICNpZiBFTkFCTEUoRklMVEVSUykKICNpbmNsdWRlICJGRUxpZ2h0aW5nLmgiCiAKLSNpbmNs
dWRlICJMaWdodFNvdXJjZS5oIgotI2luY2x1ZGUgIlBvaW50TGlnaHRTb3VyY2UuaCIKLSNpbmNs
dWRlICJTcG90TGlnaHRTb3VyY2UuaCIKLQotI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIo
R0NDKQogI2luY2x1ZGUgIkZFTGlnaHRpbmdORU9OLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjM0LDYgKzIyNywzMCBAQCB2
b2lkIEZFTGlnaHRpbmc6OnNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0YSYgZGF0YSwg
TGlnaHRTb3VyY2U6OlBhaW50aW5nRAogICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwg
cGFpbnRpbmdEYXRhLCBsaWdodFgsIGxpZ2h0WSwgZmFjdG9yWCwgZmFjdG9yWSwgbm9ybWFsVmVj
dG9yKTsKIH0KIAoraW5saW5lIHZvaWQgRkVMaWdodGluZzo6cGxhdGZvcm1BcHBseUdlbmVyaWMo
TGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0Rh
dGEpCit7CisgICAgSW50UG9pbnQgbm9ybWFsVmVjdG9yOworICAgIGludCBvZmZzZXQgPSAwOwor
CisgICAgZm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lOyArK3kp
IHsKKyAgICAgICAgb2Zmc2V0ID0geSAqIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUg
KyBjUGl4ZWxTaXplOworICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNy
ZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgeworICAgICAgICAgICAgZGF0
YS5pbnRlcmlvcihvZmZzZXQsIG5vcm1hbFZlY3Rvcik7CisgICAgICAgICAgICBpbmxpbmVTZXRQ
aXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgeCwgeSwgY0ZhY3RvcjFkaXY0LCBjRmFj
dG9yMWRpdjQsIG5vcm1hbFZlY3Rvcik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2lubGluZSB2
b2lkIEZFTGlnaHRpbmc6OnBsYXRmb3JtQXBwbHkoTGlnaHRpbmdEYXRhJiBkYXRhLCBMaWdodFNv
dXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEpCit7CisgICAgLy8gVGhlIHNlbGVjdGlv
biBoZXJlIGV2ZW50dWFsbHkgc2hvdWxkIGhhcHBlbiBkeW5hbWljYWxseSBvbiBzb21lIHBsYXRm
b3Jtcy4KKyNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKyAgICBwbGF0Zm9ybUFw
cGx5TmVvbihkYXRhLCBwYWludGluZ0RhdGEpOworI2Vsc2UKKyAgICBwbGF0Zm9ybUFwcGx5R2Vu
ZXJpYyhkYXRhLCBwYWludGluZ0RhdGEpOworI2VuZGlmCit9CisKIGJvb2wgRkVMaWdodGluZzo6
ZHJhd0xpZ2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7
CiAgICAgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSBwYWludGluZ0RhdGE7CkBAIC0yNTUsMzUg
KzI3MiwzNSBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdMaWdodGluZyhCeXRlQXJyYXkqIHBpeGVs
cywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIHBhaW50aW5nRGF0YS5jb2xvclZlY3RvciA9
IEZsb2F0UG9pbnQzRChtX2xpZ2h0aW5nQ29sb3IucmVkKCksIG1fbGlnaHRpbmdDb2xvci5ncmVl
bigpLCBtX2xpZ2h0aW5nQ29sb3IuYmx1ZSgpKTsKICAgICBtX2xpZ2h0U291cmNlLT5pbml0UGFp
bnRpbmdEYXRhKHBhaW50aW5nRGF0YSk7CiAKLSAgICAvLyBUb3AvTGVmdCBjb3JuZXIKKyAgICAv
LyBUb3AvTGVmdCBjb3JuZXIuCiAgICAgSW50UG9pbnQgbm9ybWFsVmVjdG9yOwogICAgIGludCBv
ZmZzZXQgPSAwOwogICAgIGRhdGEudG9wTGVmdChvZmZzZXQsIG5vcm1hbFZlY3Rvcik7CiAgICAg
c2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAsIDAsIGNGYWN0b3IyZGl2Mywg
Y0ZhY3RvcjJkaXYzLCBub3JtYWxWZWN0b3IpOwogCi0gICAgLy8gVG9wL1JpZ2h0IHBpeGVsCisg
ICAgLy8gVG9wL1JpZ2h0IHBpeGVsLgogICAgIG9mZnNldCA9IGRhdGEud2lkdGhNdWx0aXBsaWVk
QnlQaXhlbFNpemUgLSBjUGl4ZWxTaXplOwogICAgIGRhdGEudG9wUmlnaHQob2Zmc2V0LCBub3Jt
YWxWZWN0b3IpOwogICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCBkYXRh
LndpZHRoRGVjcmVhc2VkQnlPbmUsIDAsIGNGYWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYzLCBub3Jt
YWxWZWN0b3IpOwogCi0gICAgLy8gQm90dG9tL0xlZnQgcGl4ZWwKKyAgICAvLyBCb3R0b20vTGVm
dCBwaXhlbC4KICAgICBvZmZzZXQgPSBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lICogZGF0YS53
aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICBkYXRhLmJvdHRvbUxlZnQob2Zmc2V0LCBu
b3JtYWxWZWN0b3IpOwogICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCAw
LCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lLCBjRmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2Mywg
bm9ybWFsVmVjdG9yKTsKIAotICAgIC8vIEJvdHRvbS9SaWdodCBwaXhlbAorICAgIC8vIEJvdHRv
bS9SaWdodCBwaXhlbC4KICAgICBvZmZzZXQgPSBoZWlnaHQgKiBkYXRhLndpZHRoTXVsdGlwbGll
ZEJ5UGl4ZWxTaXplIC0gY1BpeGVsU2l6ZTsKICAgICBkYXRhLmJvdHRvbVJpZ2h0KG9mZnNldCwg
bm9ybWFsVmVjdG9yKTsKICAgICBzZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwg
ZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lLCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lLCBjRmFj
dG9yMmRpdjMsIGNGYWN0b3IyZGl2Mywgbm9ybWFsVmVjdG9yKTsKIAogICAgIGlmICh3aWR0aCA+
PSAzKSB7Ci0gICAgICAgIC8vIFRvcCByb3cKKyAgICAgICAgLy8gVG9wIHJvdy4KICAgICAgICAg
b2Zmc2V0ID0gY1BpeGVsU2l6ZTsKICAgICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndp
ZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNpemUpIHsKICAgICAgICAg
ICAgIGRhdGEudG9wUm93KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKICAgICAgICAgICAgIGlubGlu
ZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCAwLCBjRmFjdG9yMWRpdjMs
IGNGYWN0b3IxZGl2Miwgbm9ybWFsVmVjdG9yKTsKICAgICAgICAgfQotICAgICAgICAvLyBCb3R0
b20gcm93CisgICAgICAgIC8vIEJvdHRvbSByb3cuCiAgICAgICAgIG9mZnNldCA9IGRhdGEuaGVp
Z2h0RGVjcmVhc2VkQnlPbmUgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1Bp
eGVsU2l6ZTsKICAgICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2Vk
QnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNpemUpIHsKICAgICAgICAgICAgIGRhdGEuYm90
dG9tUm93KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKQEAgLTI5MiwxMyArMzA5LDEzIEBAIGJvb2wg
RkVMaWdodGluZzo6ZHJhd0xpZ2h0aW5nKEJ5dGVBcnJheSogcGl4ZWxzLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpCiAgICAgfQogCiAgICAgaWYgKGhlaWdodCA+PSAzKSB7Ci0gICAgICAgIC8vIExl
ZnQgY29sdW1uCisgICAgICAgIC8vIExlZnQgY29sdW1uLgogICAgICAgICBvZmZzZXQgPSBkYXRh
LndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplOwogICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8
IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSwgb2Zmc2V0ICs9IGRhdGEud2lkdGhNdWx0
aXBsaWVkQnlQaXhlbFNpemUpIHsKICAgICAgICAgICAgIGRhdGEubGVmdENvbHVtbihvZmZzZXQs
IG5vcm1hbFZlY3Rvcik7CiAgICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEs
IHBhaW50aW5nRGF0YSwgMCwgeSwgY0ZhY3RvcjFkaXYyLCBjRmFjdG9yMWRpdjMsIG5vcm1hbFZl
Y3Rvcik7CiAgICAgICAgIH0KLSAgICAgICAgLy8gUmlnaHQgY29sdW1uCisgICAgICAgIC8vIFJp
Z2h0IGNvbHVtbi4KICAgICAgICAgb2Zmc2V0ID0gKGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhl
bFNpemUgPDwgMSkgLSBjUGl4ZWxTaXplOwogICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8IGRh
dGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmU7ICsreSwgb2Zmc2V0ICs9IGRhdGEud2lkdGhNdWx0aXBs
aWVkQnlQaXhlbFNpemUpIHsKICAgICAgICAgICAgIGRhdGEucmlnaHRDb2x1bW4ob2Zmc2V0LCBu
b3JtYWxWZWN0b3IpOwpAQCAtMzA3LDE4ICszMjQsOCBAQCBib29sIEZFTGlnaHRpbmc6OmRyYXdM
aWdodGluZyhCeXRlQXJyYXkqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIH0K
IAogICAgIGlmICh3aWR0aCA+PSAzICYmIGhlaWdodCA+PSAzKSB7Ci0gICAgICAgIC8vIEludGVy
aW9yIHBpeGVscwotI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQotICAgICAgICBk
cmF3SW50ZXJpb3JQaXhlbHMoZGF0YSwgcGFpbnRpbmdEYXRhKTsKLSNlbHNlCi0gICAgICAgIGZv
ciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZTsgKyt5KSB7Ci0gICAg
ICAgICAgICBvZmZzZXQgPSB5ICogZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSArIGNQ
aXhlbFNpemU7Ci0gICAgICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRhdGEud2lkdGhEZWNy
ZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkgewotICAgICAgICAgICAgICAg
IGRhdGEuaW50ZXJpb3Iob2Zmc2V0LCBub3JtYWxWZWN0b3IpOwotICAgICAgICAgICAgICAgIGlu
bGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCB5LCBjRmFjdG9yMWRp
djQsIGNGYWN0b3IxZGl2NCwgbm9ybWFsVmVjdG9yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotI2VuZGlmCisgICAgICAgIC8vIEludGVyaW9yIHBpeGVscy4KKyAgICAgICAgcGxhdGZvcm1B
cHBseShkYXRhLCBwYWludGluZ0RhdGEpOwogICAgIH0KIAogICAgIGludCBsYXN0UGl4ZWwgPSBk
YXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICogaGVpZ2h0OwpAQCAtMzY1LDExOCArMzcy
LDYgQEAgdm9pZCBGRUxpZ2h0aW5nOjphcHBseSgpCiAgICAgZHJhd0xpZ2h0aW5nKHNyY1BpeGVs
QXJyYXksIGFic29sdXRlUGFpbnRTaXplLndpZHRoKCksIGFic29sdXRlUGFpbnRTaXplLmhlaWdo
dCgpKTsKIH0KIAotI2lmIENQVShBUk1fTkVPTikgJiYgQ09NUElMRVIoR0NDKQotCi1zdGF0aWMg
aW50IGdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KQotewotICAgIC8vIENhbGxp
bmcgYSBwb3dmIGZ1bmN0aW9uIGZyb20gdGhlIGFzc2VtYmx5IGNvZGUgd291bGQgcmVxdWlyZSB0
byBzYXZlCi0gICAgLy8gYW5kIHJlbG9hZCBhIGxvdCBvZiBORU9OIHJlZ2lzdGVycy4gU2luY2Ug
dGhlIGJhc2UgaXMgaW4gcmFuZ2UgWzAuLjFdCi0gICAgLy8gYW5kIG9ubHkgOCBiaXQgcHJlY2lz
aW9uIGlzIHJlcXVpcmVkLCB3ZSB1c2Ugb3VyIG93biBwb3dmIGZ1bmN0aW9uLgotICAgIC8vIFRo
aXMgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0LCBidXQgaXQgdXNlcyBvbmx5IGEgZmV3IHJlZ2lz
dGVycyBhbmQKLSAgICAvLyBnaXZlcyB1cyBlbm91Z2ggcHJlY2lzaW9uIChtb2RpZnlpbmcgdGhl
IGV4cG9uZW50IGZpZWxkIGRpcmVjdGx5IHdvdWxkCi0gICAgLy8gYWxzbyBiZSBwb3NzaWJsZSku
Ci0KLSAgICAvLyBGaXJzdCwgd2UgbGltaXQgdGhlIGV4cG9uZW50IHRvIG1heGltdW0gb2YgNjQs
IHdoaWNoIGdpdmVzIHVzIGVub3VnaAotICAgIC8vIHByZWNpc2lvbi4gV2Ugc3BsaXQgdGhlIGV4
cG9uZW50IHRvIGFuIGludGVnZXIgYW5kIGZyYWN0aW9uIHBhcnQsCi0gICAgLy8gc2luY2UgYV54
ID0gKGFeeSkqKGFeeikgd2hlcmUgeCA9IHkrei4gVGhlIGludGVnZXIgZXhwb25lbnQgb2YgdGhl
Ci0gICAgLy8gcG93ZXIgaXMgZXN0aW1hdGVkIGJ5IHNxdWFyZSwgYW5kIHRoZSBmcmFjdGlvbiBl
eHBvbmVudCBvZiB0aGUgcG93ZXIKLSAgICAvLyBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlIHJvb3Qg
YXNzZW1ibHkgaW5zdHJ1Y3Rpb25zLgotICAgIGludCBpLCByZXN1bHQ7Ci0KLSAgICBpZiAoZXhw
b25lbnQgPCAwKQotICAgICAgICBleHBvbmVudCA9IDEgLyAoLWV4cG9uZW50KTsKLQotICAgIGlm
IChleHBvbmVudCA+IDYzLjk5KQotICAgICAgICBleHBvbmVudCA9IDYzLjk5OwotCi0gICAgZXhw
b25lbnQgLz0gNjQ7Ci0gICAgcmVzdWx0ID0gMDsKLSAgICBmb3IgKGkgPSAxMTsgaSA+PSAwOyAt
LWkpIHsKLSAgICAgICAgZXhwb25lbnQgKj0gMjsKLSAgICAgICAgaWYgKGV4cG9uZW50ID49IDEp
IHsKLSAgICAgICAgICAgIHJlc3VsdCB8PSAxIDw8IGk7Ci0gICAgICAgICAgICBleHBvbmVudCAt
PSAxOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgRkVM
aWdodGluZzo6ZHJhd0ludGVyaW9yUGl4ZWxzKExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3Vy
Y2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhKQotewotICAgIFdURl9BTElHTkVEKEZFTGln
aHRpbmdGbG9hdEFyZ3VtZW50c0Zvck5lb24sIGZsb2F0QXJndW1lbnRzLCAxNik7Ci0KLSAgICBG
RUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiBuZW9uRGF0YSA9IHsKLSAgICAgICAgZGF0YS5w
aXhlbHMtPmRhdGEoKSwKLSAgICAgICAgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lIC0gMSwKLSAg
ICAgICAgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZSAtIDEsCi0gICAgICAgIDAsCi0gICAgICAg
IDAsCi0gICAgICAgIDAsCi0gICAgICAgICZmbG9hdEFyZ3VtZW50cywKLSAgICAgICAgZmVMaWdo
dGluZ0NvbnN0YW50c0Zvck5lb24oKQotICAgIH07Ci0KLSAgICAvLyBTZXQgbGlnaHQgc291cmNl
IGFyZ3VtZW50cy4KLSAgICBmbG9hdEFyZ3VtZW50cy5jb25zdE9uZSA9IDE7Ci0KLSAgICBmbG9h
dEFyZ3VtZW50cy5jb2xvclJlZCA9IG1fbGlnaHRpbmdDb2xvci5yZWQoKTsKLSAgICBmbG9hdEFy
Z3VtZW50cy5jb2xvckdyZWVuID0gbV9saWdodGluZ0NvbG9yLmdyZWVuKCk7Ci0gICAgZmxvYXRB
cmd1bWVudHMuY29sb3JCbHVlID0gbV9saWdodGluZ0NvbG9yLmJsdWUoKTsKLSAgICBmbG9hdEFy
Z3VtZW50cy5wYWRkaW5nNCA9IDA7Ci0KLSAgICBpZiAobV9saWdodFNvdXJjZS0+dHlwZSgpID09
IExTX1BPSU5UKSB7Ci0gICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfUE9JTlRfTElHSFQ7
Ci0gICAgICAgIFBvaW50TGlnaHRTb3VyY2UqIHBvaW50TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2Fz
dDxQb2ludExpZ2h0U291cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7Ci0gICAgICAgIGZsb2F0
QXJndW1lbnRzLmxpZ2h0WCA9IHBvaW50TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueCgpOwotICAg
ICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlvbigp
LnkoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRaID0gcG9pbnRMaWdodFNvdXJjZS0+
cG9zaXRpb24oKS56KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMDsKLSAg
ICB9IGVsc2UgaWYgKG1fbGlnaHRTb3VyY2UtPnR5cGUoKSA9PSBMU19TUE9UKSB7Ci0gICAgICAg
IG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BPVF9MSUdIVDsKLSAgICAgICAgU3BvdExpZ2h0U291
cmNlKiBzcG90TGlnaHRTb3VyY2UgPSBzdGF0aWNfY2FzdDxTcG90TGlnaHRTb3VyY2UqPihtX2xp
Z2h0U291cmNlLmdldCgpKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRYID0gc3BvdExp
Z2h0U291cmNlLT5wb3NpdGlvbigpLngoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZ
ID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnkoKTsKLSAgICAgICAgZmxvYXRBcmd1bWVu
dHMubGlnaHRaID0gc3BvdExpZ2h0U291cmNlLT5wb3NpdGlvbigpLnooKTsKLSAgICAgICAgZmxv
YXRBcmd1bWVudHMucGFkZGluZzIgPSAwOwotCi0gICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVj
dGlvblggPSBwYWludGluZ0RhdGEuZGlyZWN0aW9uVmVjdG9yLngoKTsKLSAgICAgICAgZmxvYXRB
cmd1bWVudHMuZGlyZWN0aW9uWSA9IHBhaW50aW5nRGF0YS5kaXJlY3Rpb25WZWN0b3IueSgpOwot
ICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaXJlY3Rpb25aID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlv
blZlY3Rvci56KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmczID0gMDsKLQotICAg
ICAgICBmbG9hdEFyZ3VtZW50cy5jb25lQ3V0T2ZmTGltaXQgPSBwYWludGluZ0RhdGEuY29uZUN1
dE9mZkxpbWl0OwotICAgICAgICBmbG9hdEFyZ3VtZW50cy5jb25lRnVsbExpZ2h0ID0gcGFpbnRp
bmdEYXRhLmNvbmVGdWxsTGlnaHQ7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmNvbmVDdXRPZmZS
YW5nZSA9IHBhaW50aW5nRGF0YS5jb25lQ3V0T2ZmTGltaXQgLSBwYWludGluZ0RhdGEuY29uZUZ1
bGxMaWdodDsKLSAgICAgICAgbmVvbkRhdGEuY29uZUV4cG9uZW50ID0gZ2V0UG93ZXJDb2VmZmlj
aWVudHMoc3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkpOwotICAgICAgICBpZiAo
c3BvdExpZ2h0U291cmNlLT5zcGVjdWxhckV4cG9uZW50KCkgPT0gMSkKLSAgICAgICAgICAgIG5l
b25EYXRhLmZsYWdzIHw9IEZMQUdfQ09ORV9FWFBPTkVOVF9JU18xOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVChtX2xpZ2h0U291cmNlLnR5cGUgPT0gTFNfRElTVEFOVCk7Ci0gICAgICAg
IGZsb2F0QXJndW1lbnRzLmxpZ2h0WCA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci54KCk7Ci0g
ICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WSA9IHBhaW50aW5nRGF0YS5saWdodFZlY3Rvci55
KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHBhaW50aW5nRGF0YS5saWdodFZl
Y3Rvci56KCk7Ci0gICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMTsKLSAgICB9Ci0K
LSAgICAvLyBTZXQgbGlnaHRpbmcgYXJndW1lbnRzLgotICAgIGZsb2F0QXJndW1lbnRzLnN1cmZh
Y2VTY2FsZSA9IGRhdGEuc3VyZmFjZVNjYWxlOwotICAgIGZsb2F0QXJndW1lbnRzLm1pbnVzU3Vy
ZmFjZVNjYWxlRGl2aWRlZEJ5Rm91ciA9IC1kYXRhLnN1cmZhY2VTY2FsZSAvIDQ7Ci0gICAgaWYg
KG1fbGlnaHRpbmdUeXBlID09IEZFTGlnaHRpbmc6OkRpZmZ1c2VMaWdodGluZykKLSAgICAgICAg
ZmxvYXRBcmd1bWVudHMuZGlmZnVzZUNvbnN0YW50ID0gbV9kaWZmdXNlQ29uc3RhbnQ7Ci0gICAg
ZWxzZSB7Ci0gICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfTElHSFQ7Ci0g
ICAgICAgIGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9IG1fc3BlY3VsYXJDb25zdGFu
dDsKLSAgICAgICAgbmVvbkRhdGEuc3BlY3VsYXJFeHBvbmVudCA9IGdldFBvd2VyQ29lZmZpY2ll
bnRzKG1fc3BlY3VsYXJFeHBvbmVudCk7Ci0gICAgICAgIGlmIChtX3NwZWN1bGFyRXhwb25lbnQg
PT0gMSkKLSAgICAgICAgICAgIG5lb25EYXRhLmZsYWdzIHw9IEZMQUdfU1BFQ1VMQVJfRVhQT05F
TlRfSVNfMTsKLSAgICB9Ci0gICAgaWYgKGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9
PSAxKQotICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0RJRkZVU0VfQ09OU1RfSVNfMTsK
LQotICAgIG5lb25EcmF3TGlnaHRpbmcoJm5lb25EYXRhKTsKLX0KLSNlbmRpZiAvLyBDUFUoQVJN
X05FT04pICYmIENPTVBJTEVSKEdDQykKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IDNkYzQ2ZTkuLmI5MDhlY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVM
aWdodGluZy5oCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVk
ZSAiRmlsdGVyRWZmZWN0LmgiCiAjaW5jbHVkZSAiTGlnaHRTb3VyY2UuaCIKKyNpbmNsdWRlICJQ
b2ludExpZ2h0U291cmNlLmgiCisjaW5jbHVkZSAiU3BvdExpZ2h0U291cmNlLmgiCiAjaW5jbHVk
ZSA8d3RmL0J5dGVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCkBAIC04MCw5
ICs4MiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBMaWdo
dGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwKICAgICAgICAgICAgICAgICAg
IGludCBsaWdodFgsIGludCBsaWdodFksIGZsb2F0IGZhY3RvclgsIGZsb2F0IGZhY3RvclksIElu
dFBvaW50JiBub3JtYWxWZWN0b3IpOwogCi0jaWYgQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihH
Q0MpCi0gICAgdm9pZCBkcmF3SW50ZXJpb3JQaXhlbHMoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3Vy
Y2U6OlBhaW50aW5nRGF0YSYpOwotI2VuZGlmCisgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBs
eShMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJik7CisKKyAgICBpbmxp
bmUgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6
UGFpbnRpbmdEYXRhJik7CisgICAgc3RhdGljIGludCBnZXRQb3dlckNvZWZmaWNpZW50cyhmbG9h
dCBleHBvbmVudCk7CisgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseU5lb24oTGlnaHRpbmdE
YXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYpOwogCiAgICAgTGlnaHRpbmdUeXBlIG1f
bGlnaHRpbmdUeXBlOwogICAgIFJlZlB0cjxMaWdodFNvdXJjZT4gbV9saWdodFNvdXJjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
R2F1c3NpYW5CbHVyTkVPTi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZmMzkwODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uY3BwCkBAIC0w
LDAgKzEsMzQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWm9sdGFuIEhlcmN6ZWcKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRkVHYXVzc2lhbkJsdXJORU9OLmgiCisKKyNpZiBDUFUo
QVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworI2luY2x1ZGUgPHd0Zi9BbGlnbm1lbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgV1RGX0FMSUdORUQodW5zaWduZWQgY2hh
ciwgc19GRUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zvck5lb25bXSwgMTYpID0geworICAgIC8vIE1h
cHBpbmcgZnJvbSBBUk0gdG8gTkVPTiByZWdpc3RlcnMuCisgICAgMCwgMTYsIDE2LCAxNiwgMSwg
IDE2LCAxNiwgMTYsIDIsICAxNiwgMTYsIDE2LCAzLCAgMTYsIDE2LCAxNiwKKyAgICAvLyBNYXBw
aW5nIGZyb20gTkVPTiB0byBBUk0gcmVnaXN0ZXJzLgorICAgIDAsIDQsICA4LCAgMTIsIDE2LCAx
NiwgMTYsIDE2Cit9OworCit1bnNpZ25lZCBjaGFyKiBmZUdhdXNzaWFuQmx1ckNvbnN0YW50c0Zv
ck5lb24oKQoreworICAgIHJldHVybiBzX0ZFR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbjsK
K30KKworI2RlZmluZSBBU1NUUklORyhzdHIpICNzdHIKKyNkZWZpbmUgVE9TVFJJTkcodmFsdWUp
IEFTU1RSSU5HKHZhbHVlKQorCisjZGVmaW5lIFNUUklERV9PRkZTRVQgVE9TVFJJTkcoMCkKKyNk
ZWZpbmUgU1RSSURFX1dJRFRIX09GRlNFVCBUT1NUUklORyg0KQorI2RlZmluZSBTVFJJREVfTElO
RV9PRkZTRVQgVE9TVFJJTkcoOCkKKyNkZWZpbmUgU1RSSURFX0xJTkVfV0lEVEhfT0ZGU0VUIFRP
U1RSSU5HKDEyKQorI2RlZmluZSBSRU1BSU5JTkdfU1RSSURFU19PRkZTRVQgVE9TVFJJTkcoMTYp
CisjZGVmaW5lIERJU1RBTkNFX0xFRlRfT0ZGU0VUIFRPU1RSSU5HKDIwKQorI2RlZmluZSBESVNU
QU5DRV9SSUdIVF9PRkZTRVQgVE9TVFJJTkcoMjQpCisjZGVmaW5lIElOVkVSVEVEX0tFUk5FTF9T
SVpFX09GRlNFVCBUT1NUUklORygyOCkKKyNkZWZpbmUgUEFJTlRJTkdfQ09OU1RBTlRTX09GRlNF
VCBUT1NUUklORygzMikKKyNkZWZpbmUgTkwgIlxuIgorCisvLyBSZWdpc3RlciBhbGxvY2F0aW9u
LgorI2RlZmluZSBTT1VSQ0VfUiAgICAgICAgICAgICAgICAicjAiCisjZGVmaW5lIERFU1RJTkFU
SU9OX1IgICAgICAgICAgICJyMSIKKyNkZWZpbmUgTEVGVF9SICAgICAgICAgICAgICAgICAgInIy
IgorI2RlZmluZSBSSUdIVF9SICAgICAgICAgICAgICAgICAicjMiCisjZGVmaW5lIFNPVVJDRV9F
TkRfUiAgICAgICAgICAgICJyNCIKKyNkZWZpbmUgREVTVElOQVRJT05fRU5EX1IgICAgICAgInI1
IgorI2RlZmluZSBTVFJJREVfUiAgICAgICAgICAgICAgICAicjYiCisjZGVmaW5lIFNUUklERV9X
SURUSF9SICAgICAgICAgICJyNyIKKyNkZWZpbmUgU1RSSURFX0xJTkVfUiAgICAgICAgICAgInI4
IgorI2RlZmluZSBTT1VSQ0VfTElORV9FTkRfUiAgICAgICAicjEwIgorI2RlZmluZSBESVNUQU5D
RV9MRUZUX1IgICAgICAgICAicjExIgorI2RlZmluZSBESVNUQU5DRV9SSUdIVF9SICAgICAgICAi
cjEyIgorI2RlZmluZSBNQVhfS0VSTkVMX1NJWkVfUiAgICAgICAibHIiCisKKy8vIEFsdGVybmF0
ZSBuYW1lcy4KKyNkZWZpbmUgSU5JVF9JTlZFUlRFRF9LRVJORUxfU0laRV9SIFNPVVJDRV9FTkRf
UgorI2RlZmluZSBJTklUX1BBSU5USU5HX0NPTlNUQU5UU19SIERFU1RJTkFUSU9OX0VORF9SCisj
ZGVmaW5lIElOSVRfU1VNX1IgTEVGVF9SCisjZGVmaW5lIFJFTUFJTklOR19TVFJJREVTX1IgU09V
UkNFX0xJTkVfRU5EX1IKKworI2RlZmluZSBJTlZFUlRFRF9LRVJORUxfU0laRV9RICAicTAiCisj
ZGVmaW5lIFNVTV9RICAgICAgICAgICAgICAgICAgICJxMSIKKyNkZWZpbmUgUElYRUxfUSAgICAg
ICAgICAgICAgICAgInEyIgorI2RlZmluZSBQSVhFTF9EMCAgICAgICAgICAgICAgICAiZDQiCisj
ZGVmaW5lIFBJWEVMX0QxICAgICAgICAgICAgICAgICJkNSIKKyNkZWZpbmUgUElYRUxfRDAwICAg
ICAgICAgICAgICAgImQ0WzBdIgorI2RlZmluZSBQSVhFTF9EMDEgICAgICAgICAgICAgICAiZDRb
MV0iCisjZGVmaW5lIFBJWEVMX1MxICAgICAgICAgICAgICAgICJzOSIKKyNkZWZpbmUgUElYRUxf
RDEwICAgICAgICAgICAgICAgImQ1WzBdIgorI2RlZmluZSBQSVhFTF9TMiAgICAgICAgICAgICAg
ICAiczEwIgorI2RlZmluZSBQSVhFTF9EMTEgICAgICAgICAgICAgICAiZDVbMV0iCisjZGVmaW5l
IFJFTUFJTklOR19TVFJJREVTX1MwICAgICJzMTIiCisKKyNkZWZpbmUgUkVBRF9SQU5HRSAgICAg
ICAgICAgICAgImQxNi1kMTgiCisjZGVmaW5lIFJFTUFQX0FSTV9ORU9OMV9RICAgICAgICJkMTYi
CisjZGVmaW5lIFJFTUFQX0FSTV9ORU9OMl9RICAgICAgICJkMTciCisjZGVmaW5lIFJFTUFQX05F
T05fQVJNX1EgICAgICAgICJkMTgiCisKK2FzbSAoIC8vIE5PTElOVAorIi5nbG9ibCAiIFRPU1RS
SU5HKG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFuQmx1cikgTkwKK1RPU1RSSU5HKG5lb25EcmF3
QWxsQ2hhbm5lbEdhdXNzaWFuQmx1cikgIjoiIE5MCisgICAgInN0bWRiIHNwISwge3I0LXI4LCBy
MTAsIHIxMSwgbHJ9IiBOTAorICAgICJsZHIgIiBTVFJJREVfUiAiLCBbcjIsICMiIFNUUklERV9P
RkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNUUklERV9XSURUSF9SICIsIFtyMiwgIyIgU1RSSURF
X1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRElTVEFOQ0VfTEVGVF9SICIsIFtyMiwg
IyIgRElTVEFOQ0VfTEVGVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIERJU1RBTkNFX1JJR0hU
X1IgIiwgW3IyLCAjIiBESVNUQU5DRV9SSUdIVF9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNU
UklERV9MSU5FX1IgIiwgW3IyLCAjIiBTVFJJREVfTElORV9PRkZTRVQgIl0iIE5MCisgICAgImxk
ciAiIFNPVVJDRV9MSU5FX0VORF9SICIsIFtyMiwgIyIgU1RSSURFX0xJTkVfV0lEVEhfT0ZGU0VU
ICJdIiBOTAorICAgICJsZHIgIiBJTklUX0lOVkVSVEVEX0tFUk5FTF9TSVpFX1IgIiwgW3IyLCAj
IiBJTlZFUlRFRF9LRVJORUxfU0laRV9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIElOSVRfUEFJ
TlRJTkdfQ09OU1RBTlRTX1IgIiwgW3IyLCAjIiBQQUlOVElOR19DT05TVEFOVFNfT0ZGU0VUICJd
IiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSBsb2NhbHMuCisgICAgIm11bCAiIERJU1RBTkNFX0xF
RlRfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgIm11bCAiIERJ
U1RBTkNFX1JJR0hUX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SICIsICIgU1RSSURFX1IgTkwKKyAg
ICAibW92ICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisgICAg
ImNtcCAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKyAgICAibW92
Y3MgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFkZCAi
IFNPVVJDRV9MSU5FX0VORF9SICIsICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfUiBO
TAorICAgICJ2ZHVwLmYzMiAiIElOVkVSVEVEX0tFUk5FTF9TSVpFX1EgIiwgIiBJTklUX0lOVkVS
VEVEX0tFUk5FTF9TSVpFX1IgTkwKKyAgICAidmxkMS5mMzIgeyAiIFJFQURfUkFOR0UgIiB9LCBb
IiBJTklUX1BBSU5USU5HX0NPTlNUQU5UU19SICJdISIgTkwKKworIi5hbGxDaGFubmVsTWFpbkxv
b3A6IiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3VtIHZhcmlhYmxlLgorICAgICJ2bW92
LnUzMiAiIFNVTV9RICIsICMwIiBOTAorICAgICJtb3YgIiBJTklUX1NVTV9SICIsICIgU09VUkNF
X1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwgIiBNQVhfS0VS
TkVMX1NJWkVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNFX0VORF9SIE5M
CisgICAgImJjcyAuYWxsQ2hhbm5lbEluaXRTdW1Eb25lIiBOTAorIi5hbGxDaGFubmVsSW5pdFN1
bToiIE5MCisgICAgInZsZDEudTMyICIgUElYRUxfRDAwICIsIFsiIElOSVRfU1VNX1IgIl0sICIg
U1RSSURFX1IgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDEgIiwgeyIgUElYRUxfRDAgIn0sICIg
UkVNQVBfQVJNX05FT04yX1EgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDAgIiwgeyIgUElYRUxf
RDAgIn0sICIgUkVNQVBfQVJNX05FT04xX1EgTkwKKyAgICAidmFkZC51MzIgIiBTVU1fUSAiLCAi
IFNVTV9RICIsICIgUElYRUxfUSBOTAorICAgICJjbXAgIiBJTklUX1NVTV9SICIsICIgU09VUkNF
X0VORF9SIE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbEluaXRTdW0iIE5MCisiLmFsbENoYW5uZWxJ
bml0U3VtRG9uZToiIE5MCisKKyAgICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09VUkNFX0VO
RF9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQgIiBERVNU
SU5BVElPTl9FTkRfUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAor
ICAgICJzdWIgIiBMRUZUX1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiBOTAor
ICAgICJhZGQgIiBSSUdIVF9SICIsICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5M
CisKKyIuYWxsQ2hhbm5lbEJsdXI6IiBOTAorICAgICJ2Y3Z0LmYzMi51MzIgIiBQSVhFTF9RICIs
ICIgU1VNX1EgTkwKKyAgICAidm11bC5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSAiLCAiIElO
VkVSVEVEX0tFUk5FTF9TSVpFX1EgTkwKKyAgICAidmN2dC51MzIuZjMyICIgUElYRUxfUSAiLCAi
IFBJWEVMX1EgTkwKKyAgICAidnRibC44ICIgUElYRUxfRDAgIiwgeyIgUElYRUxfRDAgIi0iIFBJ
WEVMX0QxICJ9LCAiIFJFTUFQX05FT05fQVJNX1EgTkwKKyAgICAidnN0MS51MzIgIiBQSVhFTF9E
MDAgIiwgWyIgREVTVElOQVRJT05fUiAiXSwgIiBTVFJJREVfUiBOTAorCisgICAgImNtcCAiIExF
RlRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbFNraXBMZWZ0IiBOTAor
ICAgICJ2bGQxLnUzMiAiIFBJWEVMX0QwMCAiLCBbIiBMRUZUX1IgIl0iIE5MCisgICAgInZ0Ymwu
OCAiIFBJWEVMX0QxICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMl9RIE5MCisg
ICAgInZ0YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9O
MV9RIE5MCisgICAgInZzdWIudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwK
KyIuYWxsQ2hhbm5lbFNraXBMZWZ0OiAiIE5MCisKKyAgICAiY21wICIgUklHSFRfUiAiLCAiIFNP
VVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFsbENoYW5uZWxTa2lwUmlnaHQiIE5MCisgICAgInZs
ZDEudTMyICIgUElYRUxfRDAwICIsIFsiIFJJR0hUX1IgIl0iIE5MCisgICAgInZ0YmwuOCAiIFBJ
WEVMX0QxICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMl9RIE5MCisgICAgInZ0
YmwuOCAiIFBJWEVMX0QwICIsIHsiIFBJWEVMX0QwICJ9LCAiIFJFTUFQX0FSTV9ORU9OMV9RIE5M
CisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJWEVMX1EgTkwKKyIuYWxs
Q2hhbm5lbFNraXBSaWdodDogIiBOTAorCisgICAgImFkZCAiIExFRlRfUiAiLCAiIExFRlRfUiAi
LCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIFJJR0hUX1IgIiwgIiBSSUdIVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiY21wICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX0VORF9S
IE5MCisgICAgImJjYyAuYWxsQ2hhbm5lbEJsdXIiIE5MCisgICAgInN1YiAiIERFU1RJTkFUSU9O
X1IgIiwgIiBERVNUSU5BVElPTl9SICIsICIgU1RSSURFX1dJRFRIX1IgTkwKKworICAgICJhZGQg
IiBTT1VSQ0VfUiAiLCAiIFNPVVJDRV9SICIsICIgU1RSSURFX0xJTkVfUiBOTAorICAgICJhZGQg
IiBERVNUSU5BVElPTl9SICIsICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9MSU5FX1IgTkwK
KyAgICAiY21wICIgU09VUkNFX1IgIiwgIiBTT1VSQ0VfTElORV9FTkRfUiBOTAorICAgICJiY2Mg
LmFsbENoYW5uZWxNYWluTG9vcCIgTkwKKworICAgICJsZG1pYSBzcCEsIHtyNC1yOCwgcjEwLCBy
MTEsIHBjfSIgTkwKKyk7IC8vIE5PTElOVAorCisjZGVmaW5lIERBVEFfVFJBTlNGRVI0KGNvbW1h
bmQsIGJhc2UpIFwKKyAgICBjb21tYW5kICIgIiBQSVhFTF9EMDAgIiwgWyIgYmFzZSAiXSwgIiBT
VFJJREVfTElORV9SIE5MIFwKKyAgICBjb21tYW5kICIgIiBQSVhFTF9EMDEgIiwgWyIgYmFzZSAi
XSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICBjb21tYW5kICIgIiBQSVhFTF9EMTAgIiwgWyIg
YmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICBjb21tYW5kICIgIiBQSVhFTF9EMTEg
IiwgWyIgYmFzZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICAic3ViICIgYmFzZSAiLCAi
IGJhc2UgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAjMiIgTkwKKworLy8gVGhlIG51bWJlciBv
ZiByZWFkcyBkZXBlbmQgb24gUkVNQUlOSU5HX1NUUklERVNfUiwgYnV0IGl0IGlzIGFsd2F5cyA+
PSAxIGFuZCA8PSAzCisjZGVmaW5lIENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KGNvbW1hbmQx
LCBjb21tYW5kMiwgYmFzZSkgXAorICAgIGNvbW1hbmQxICIgIiBQSVhFTF9EMDAgIiwgWyIgYmFz
ZSAiXSwgIiBTVFJJREVfTElORV9SIE5MIFwKKyAgICAiY21wICIgUkVNQUlOSU5HX1NUUklERVNf
UiAiLCAjMiIgTkwgXAorICAgIGNvbW1hbmQyICJjcyAiIFBJWEVMX1MxICIsIFsiIGJhc2UgIl0i
IE5MIFwKKyAgICAiYWRkICIgYmFzZSAiLCAiIGJhc2UgIiwgIiBTVFJJREVfTElORV9SIE5MIFwK
KyAgICAiY21wICIgUkVNQUlOSU5HX1NUUklERVNfUiAiLCAjMyIgTkwgXAorICAgIGNvbW1hbmQy
ICJjcyAiIFBJWEVMX1MyICIsIFsiIGJhc2UgIl0iIE5MIFwKKyAgICAic3ViICIgYmFzZSAiLCAi
IGJhc2UgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAjMSIgTkwKKworYXNtICggLy8gTk9MSU5U
CisiLmdsb2JsICIgVE9TVFJJTkcobmVvbkRyYXdBbHBoYUNoYW5uZWxHYXVzc2lhbkJsdXIpIE5M
CitUT1NUUklORyhuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cikgIjoiIE5MCisgICAg
InN0bWRiIHNwISwge3I0LXI4LCByMTAsIHIxMSwgbHJ9IiBOTAorICAgICJsZHIgIiBTVFJJREVf
UiAiLCBbcjIsICMiIFNUUklERV9PRkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNUUklERV9XSURU
SF9SICIsIFtyMiwgIyIgU1RSSURFX1dJRFRIX09GRlNFVCAiXSIgTkwKKyAgICAibGRyICIgRElT
VEFOQ0VfTEVGVF9SICIsIFtyMiwgIyIgRElTVEFOQ0VfTEVGVF9PRkZTRVQgIl0iIE5MCisgICAg
ImxkciAiIERJU1RBTkNFX1JJR0hUX1IgIiwgW3IyLCAjIiBESVNUQU5DRV9SSUdIVF9PRkZTRVQg
Il0iIE5MCisgICAgImxkciAiIFNUUklERV9MSU5FX1IgIiwgW3IyLCAjIiBTVFJJREVfTElORV9P
RkZTRVQgIl0iIE5MCisgICAgImxkciAiIFNPVVJDRV9MSU5FX0VORF9SICIsIFtyMiwgIyIgU1RS
SURFX0xJTkVfV0lEVEhfT0ZGU0VUICJdIiBOTAorICAgICJsZHIgIiBJTklUX0lOVkVSVEVEX0tF
Uk5FTF9TSVpFX1IgIiwgW3IyLCAjIiBJTlZFUlRFRF9LRVJORUxfU0laRV9PRkZTRVQgIl0iIE5M
CisgICAgInZsZHIudTMyICIgUkVNQUlOSU5HX1NUUklERVNfUzAgIiwgW3IyLCAjIiBSRU1BSU5J
TkdfU1RSSURFU19PRkZTRVQgIl0iIE5MCisKKyAgICAvLyBJbml0aWFsaXplIGxvY2Fscy4KKyAg
ICAibXVsICIgRElTVEFOQ0VfTEVGVF9SICIsICIgRElTVEFOQ0VfTEVGVF9SICIsICIgU1RSSURF
X1IgTkwKKyAgICAibXVsICIgRElTVEFOQ0VfUklHSFRfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1Ig
IiwgIiBTVFJJREVfUiBOTAorICAgICJtb3YgIiBNQVhfS0VSTkVMX1NJWkVfUiAiLCAiIERJU1RB
TkNFX1JJR0hUX1IgTkwKKyAgICAiY21wICIgTUFYX0tFUk5FTF9TSVpFX1IgIiwgIiBTVFJJREVf
V0lEVEhfUiBOTAorICAgICJtb3ZjcyAiIE1BWF9LRVJORUxfU0laRV9SICIsICIgU1RSSURFX1dJ
RFRIX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0xJTkVfRU5EX1IgIiwgIiBTT1VSQ0VfTElORV9F
TkRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgInZkdXAuZjMyICIgSU5WRVJURURfS0VSTkVMX1NJ
WkVfUSAiLCAiIElOSVRfSU5WRVJURURfS0VSTkVMX1NJWkVfUiBOTAorICAgICJjbXAgIiBTT1VS
Q0VfTElORV9FTkRfUiAiLCAiIFNPVVJDRV9SIE5MCisgICAgImJlcSAuYWxwaGFDaGFubmVsRWFy
bHlMZWF2ZSIgTkwKKworICAgIC8vIFByb2Nlc3NpbmcgNCBzdHJpZGVzIHBhcmFsbGVsbHkuCisK
KyIuYWxwaGFDaGFubmVsTWFpbkxvb3A6IiBOTAorCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3Vt
IHZhcmlhYmxlLgorICAgICJ2bW92LnUzMiAiIFNVTV9RICIsICMwIiBOTAorICAgICJtb3YgIiBJ
TklUX1NVTV9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIg
U09VUkNFX1IgIiwgIiBNQVhfS0VSTkVMX1NJWkVfUiBOTAorICAgICJjbXAgIiBJTklUX1NVTV9S
ICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAuYWxwaGFDaGFubmVsSW5pdFN1bURvbmUi
IE5MCisiLmFscGhhQ2hhbm5lbEluaXRTdW06IiBOTAorICAgIERBVEFfVFJBTlNGRVI0KCJ2bGQx
LnUzMiIsIElOSVRfU1VNX1IpCisgICAgInZzaHIudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1Eg
IiwgIzI0IiBOTAorICAgICJ2YWRkLnUzMiAiIFNVTV9RICIsICIgU1VNX1EgIiwgIiBQSVhFTF9R
IE5MCisgICAgImFkZCAiIElOSVRfU1VNX1IgIiwgIiBJTklUX1NVTV9SICIsICIgU1RSSURFX1Ig
TkwKKyAgICAiY21wICIgSU5JVF9TVU1fUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY2Mg
LmFscGhhQ2hhbm5lbEluaXRTdW0iIE5MCisiLmFscGhhQ2hhbm5lbEluaXRTdW1Eb25lOiIgTkwK
KworICAgIC8vIEJsdXJyaW5nLgorICAgICJhZGQgIiBTT1VSQ0VfRU5EX1IgIiwgIiBTT1VSQ0Vf
UiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgImFkZCAiIERFU1RJTkFUSU9OX0VORF9SICIs
ICIgREVTVElOQVRJT05fUiAiLCAiIFNUUklERV9XSURUSF9SIE5MCisgICAgInN1YiAiIExFRlRf
UiAiLCAiIFNPVVJDRV9SICIsICIgRElTVEFOQ0VfTEVGVF9SIE5MCisgICAgImFkZCAiIFJJR0hU
X1IgIiwgIiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX1JJR0hUX1IgTkwKKworIi5hbHBoYUNoYW5u
ZWxCbHVyOiIgTkwKKyAgICAidmN2dC5mMzIudTMyICIgUElYRUxfUSAiLCAiIFNVTV9RIE5MCisg
ICAgInZtdWwuZjMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIiBJTlZFUlRFRF9LRVJORUxf
U0laRV9RIE5MCisgICAgInZjdnQudTMyLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RIE5MCisg
ICAgInZzaGwudTMyICIgUElYRUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgIERBVEFf
VFJBTlNGRVI0KCJ2c3QxLnUzMiIsIERFU1RJTkFUSU9OX1IpCisKKyAgICAiY21wICIgTEVGVF9S
ICIsICIgU09VUkNFX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxTa2lwTGVmdCIgTkwKKyAg
ICBEQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCBMRUZUX1IpCisgICAgInZzaHIudTMyICIgUElY
RUxfUSAiLCAiIFBJWEVMX1EgIiwgIzI0IiBOTAorICAgICJ2c3ViLnUzMiAiIFNVTV9RICIsICIg
U1VNX1EgIiwgIiBQSVhFTF9RIE5MCisiLmFscGhhQ2hhbm5lbFNraXBMZWZ0OiAiIE5MCisKKyAg
ICAiY21wICIgUklHSFRfUiAiLCAiIFNPVVJDRV9FTkRfUiBOTAorICAgICJiY3MgLmFscGhhQ2hh
bm5lbFNraXBSaWdodCIgTkwKKyAgICBEQVRBX1RSQU5TRkVSNCgidmxkMS51MzIiLCBSSUdIVF9S
KQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAi
dmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorIi5hbHBoYUNoYW5u
ZWxTa2lwUmlnaHQ6ICIgTkwKKworICAgICJhZGQgIiBERVNUSU5BVElPTl9SICIsICIgREVTVElO
QVRJT05fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIExFRlRfUiAiLCAiIExFRlRfUiAi
LCAiIFNUUklERV9SIE5MCisgICAgImFkZCAiIFJJR0hUX1IgIiwgIiBSSUdIVF9SICIsICIgU1RS
SURFX1IgTkwKKyAgICAiY21wICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX0VORF9S
IE5MCisgICAgImJjYyAuYWxwaGFDaGFubmVsQmx1ciIgTkwKKyAgICAic3ViICIgREVTVElOQVRJ
T05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorCisgICAgImFk
ZCAiIFNPVVJDRV9SICIsICIgU09VUkNFX1IgIiwgIiBTVFJJREVfTElORV9SICIsIGxzbCAjMiIg
TkwKKyAgICAiYWRkICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJ
REVfTElORV9SICIsIGxzbCAjMiIgTkwKKyAgICAiY21wICIgU09VUkNFX1IgIiwgIiBTT1VSQ0Vf
TElORV9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbE1haW5Mb29wIiBOTAorCisgICAg
Ly8gUHJvY2Vzc2luZyB0aGUgcmVtYWluaW5nIHN0cmlkZXMgKDAgLSAzKS4KKyIuYWxwaGFDaGFu
bmVsRWFybHlMZWF2ZToiIE5MCisgICAgInZtb3YudTMyICIgUkVNQUlOSU5HX1NUUklERVNfUiAi
LCAiIFJFTUFJTklOR19TVFJJREVTX1MwIE5MCisgICAgLy8gRWFybHkgcmV0dXJuIGZvciAwIHN0
cmlkZXMuCisgICAgImNtcCAiIFJFTUFJTklOR19TVFJJREVTX1IgIiwgIzAiIE5MCisgICAgImxk
bWVxaWEgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBwY30iIE5MCisKKyAgICAvLyBJbml0aWFsaXpl
IHRoZSBzdW0gdmFyaWFibGUuCisgICAgInZtb3YudTMyICIgU1VNX1EgIiwgIzAiIE5MCisgICAg
Im1vdiAiIElOSVRfU1VNX1IgIiwgIiBTT1VSQ0VfUiBOTAorICAgICJhZGQgIiBTT1VSQ0VfRU5E
X1IgIiwgIiBTT1VSQ0VfUiAiLCAiIE1BWF9LRVJORUxfU0laRV9SIE5MCisgICAgImNtcCAiIElO
SVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNzIC5hbHBoYUNoYW5uZWxTZWNv
bmRJbml0U3VtRG9uZSIgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25kSW5pdFN1bToiIE5MCisgICAg
Q09ORElUSU9OQUxfREFUQV9UUkFOU0ZFUjQoInZsZDEudTMyIiwgInZsZHIiLCBJTklUX1NVTV9S
KQorICAgICJ2c2hyLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICAi
dmFkZC51MzIgIiBTVU1fUSAiLCAiIFNVTV9RICIsICIgUElYRUxfUSBOTAorICAgICJhZGQgIiBJ
TklUX1NVTV9SICIsICIgSU5JVF9TVU1fUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIElO
SVRfU1VNX1IgIiwgIiBTT1VSQ0VfRU5EX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNoYW5uZWxTZWNv
bmRJbml0U3VtIiBOTAorIi5hbHBoYUNoYW5uZWxTZWNvbmRJbml0U3VtRG9uZToiIE5MCisKKyAg
ICAvLyBCbHVycmluZy4KKyAgICAiYWRkICIgU09VUkNFX0VORF9SICIsICIgU09VUkNFX1IgIiwg
IiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJhZGQgIiBERVNUSU5BVElPTl9FTkRfUiAiLCAiIERF
U1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfV0lEVEhfUiBOTAorICAgICJzdWIgIiBMRUZUX1IgIiwg
IiBTT1VSQ0VfUiAiLCAiIERJU1RBTkNFX0xFRlRfUiBOTAorICAgICJhZGQgIiBSSUdIVF9SICIs
ICIgU09VUkNFX1IgIiwgIiBESVNUQU5DRV9SSUdIVF9SIE5MCisKKyIuYWxwaGFDaGFubmVsU2Vj
b25kQmx1cjoiIE5MCisgICAgInZjdnQuZjMyLnUzMiAiIFBJWEVMX1EgIiwgIiBTVU1fUSBOTAor
ICAgICJ2bXVsLmYzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICIgSU5WRVJURURfS0VSTkVM
X1NJWkVfUSBOTAorICAgICJ2Y3Z0LnUzMi5mMzIgIiBQSVhFTF9RICIsICIgUElYRUxfUSBOTAor
ICAgICJ2c2hsLnUzMiAiIFBJWEVMX1EgIiwgIiBQSVhFTF9RICIsICMyNCIgTkwKKyAgICBDT05E
SVRJT05BTF9EQVRBX1RSQU5TRkVSNCgidnN0MS51MzIiLCAidnN0ciIsIERFU1RJTkFUSU9OX1Ip
CisKKyAgICAiY21wICIgTEVGVF9SICIsICIgU09VUkNFX1IgTkwKKyAgICAiYmNjIC5hbHBoYUNo
YW5uZWxTZWNvbmRTa2lwTGVmdCIgTkwKKyAgICBDT05ESVRJT05BTF9EQVRBX1RSQU5TRkVSNCgi
dmxkMS51MzIiLCAidmxkciIsIExFRlRfUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIg
UElYRUxfUSAiLCAjMjQiIE5MCisgICAgInZzdWIudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAi
IFBJWEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25kU2tpcExlZnQ6ICIgTkwKKworICAgICJj
bXAgIiBSSUdIVF9SICIsICIgU09VUkNFX0VORF9SIE5MCisgICAgImJjcyAuYWxwaGFDaGFubmVs
U2Vjb25kU2tpcFJpZ2h0IiBOTAorICAgIENPTkRJVElPTkFMX0RBVEFfVFJBTlNGRVI0KCJ2bGQx
LnUzMiIsICJ2bGRyIiwgUklHSFRfUikKKyAgICAidnNoci51MzIgIiBQSVhFTF9RICIsICIgUElY
RUxfUSAiLCAjMjQiIE5MCisgICAgInZhZGQudTMyICIgU1VNX1EgIiwgIiBTVU1fUSAiLCAiIFBJ
WEVMX1EgTkwKKyIuYWxwaGFDaGFubmVsU2Vjb25kU2tpcFJpZ2h0OiAiIE5MCisKKyAgICAiYWRk
ICIgREVTVElOQVRJT05fUiAiLCAiIERFU1RJTkFUSU9OX1IgIiwgIiBTVFJJREVfUiBOTAorICAg
ICJhZGQgIiBMRUZUX1IgIiwgIiBMRUZUX1IgIiwgIiBTVFJJREVfUiBOTAorICAgICJhZGQgIiBS
SUdIVF9SICIsICIgUklHSFRfUiAiLCAiIFNUUklERV9SIE5MCisgICAgImNtcCAiIERFU1RJTkFU
SU9OX1IgIiwgIiBERVNUSU5BVElPTl9FTkRfUiBOTAorICAgICJiY2MgLmFscGhhQ2hhbm5lbFNl
Y29uZEJsdXIiIE5MCisKKyAgICAibGRtaWEgc3AhLCB7cjQtcjgsIHIxMCwgcjExLCBwY30iIE5M
CispOyAvLyBOT0xJTlQKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1BV
KEFSTV9ORU9OKSAmJiBDT01QSUxFUihHQ0MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFR2F1c3NpYW5CbHVyTkVP
Ti5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MDM3YWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9G
RUdhdXNzaWFuQmx1ck5FT04uaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAyMDExIFpvbHRh
biBIZXJjemVnCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBV
TklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVO
SVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGRUdhdXNzaWFuQmx1ck5FT05faAorI2RlZmluZSBG
RUdhdXNzaWFuQmx1ck5FT05faAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBD
UFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKworI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZFR2F1c3NpYW5CbHVyUGFpbnRp
bmdEYXRhRm9yTmVvbiB7CisgICAgaW50IHN0cmlkZTsKKyAgICBpbnQgc3RyaWRlV2lkdGg7Cisg
ICAgaW50IHN0cmlkZUxpbmU7CisgICAgaW50IHN0cmlkZUxpbmVXaWR0aDsKKyAgICBpbnQgcmVt
YWluaW5nU3RyaWRlczsKKyAgICBpbnQgZGlzdGFuY2VMZWZ0OworICAgIGludCBkaXN0YW5jZVJp
Z2h0OworICAgIGZsb2F0IGludmVydGVkS2VybmVsU2l6ZTsKKyAgICB1bnNpZ25lZCBjaGFyKiBw
YWludGluZ0NvbnN0YW50czsKK307CisKK3Vuc2lnbmVkIGNoYXIqIGZlR2F1c3NpYW5CbHVyQ29u
c3RhbnRzRm9yTmVvbigpOworCitleHRlcm4gIkMiIHsKK3ZvaWQgbmVvbkRyYXdBbGxDaGFubmVs
R2F1c3NpYW5CbHVyKHVuc2lnbmVkIGNoYXIqIHNvdXJjZSwgdW5zaWduZWQgY2hhciogZGVzdGlu
YXRpb24sIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiopOwordm9pZCBuZW9uRHJh
d0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cih1bnNpZ25lZCBjaGFyKiBzb3VyY2UsIHVuc2lnbmVk
IGNoYXIqIGRlc3RpbmF0aW9uLCBGRUdhdXNzaWFuQmx1clBhaW50aW5nRGF0YUZvck5lb24qKTsK
K30KKworaW5saW5lIHZvaWQgRkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHlOZW9uKEJ5dGVB
cnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1bnNpZ25lZCBr
ZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50U2l6ZSkKK3sK
KyAgICBjb25zdCBpbnQgd2lkdGhNdWx0aXBsaWVkQnlGb3VyID0gNCAqIHBhaW50U2l6ZS53aWR0
aCgpOworICAgIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiBhcmd1bWVudHNYID0g
eworICAgICAgICA0LAorICAgICAgICB3aWR0aE11bHRpcGxpZWRCeUZvdXIsCisgICAgICAgIHdp
ZHRoTXVsdGlwbGllZEJ5Rm91ciwKKyAgICAgICAgKGlzQWxwaGFJbWFnZSgpID8gKChwYWludFNp
emUuaGVpZ2h0KCkgPj4gMikgPDwgMikgOiBwYWludFNpemUuaGVpZ2h0KCkpICogd2lkdGhNdWx0
aXBsaWVkQnlGb3VyLAorICAgICAgICBpc0FscGhhSW1hZ2UoKSA/IChwYWludFNpemUuaGVpZ2h0
KCkgJiAweDMpIDogMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAg
ICAgaXNBbHBoYUltYWdlKCkgPyAwIDogZmVHYXVzc2lhbkJsdXJDb25zdGFudHNGb3JOZW9uKCkK
KyAgICB9OworICAgIEZFR2F1c3NpYW5CbHVyUGFpbnRpbmdEYXRhRm9yTmVvbiBhcmd1bWVudHNZ
ID0geworICAgICAgICB3aWR0aE11bHRpcGxpZWRCeUZvdXIsCisgICAgICAgIHdpZHRoTXVsdGlw
bGllZEJ5Rm91ciAqIHBhaW50U2l6ZS5oZWlnaHQoKSwKKyAgICAgICAgNCwKKyAgICAgICAgKGlz
QWxwaGFJbWFnZSgpID8gKChwYWludFNpemUud2lkdGgoKSA+PiAyKSA8PCAyKSA6IHBhaW50U2l6
ZS53aWR0aCgpKSAqIDQsCisgICAgICAgIGlzQWxwaGFJbWFnZSgpID8gKHBhaW50U2l6ZS53aWR0
aCgpICYgMHgzKSA6IDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAg
ICAgIGlzQWxwaGFJbWFnZSgpID8gMCA6IGZlR2F1c3NpYW5CbHVyQ29uc3RhbnRzRm9yTmVvbigp
CisgICAgfTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGlm
IChrZXJuZWxTaXplWCkgeworICAgICAgICAgICAga2VybmVsUG9zaXRpb24oaSwga2VybmVsU2l6
ZVgsIGFyZ3VtZW50c1guZGlzdGFuY2VMZWZ0LCBhcmd1bWVudHNYLmRpc3RhbmNlUmlnaHQpOwor
ICAgICAgICAgICAgYXJndW1lbnRzWC5pbnZlcnRlZEtlcm5lbFNpemUgPSAxIC8gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGtlcm5lbFNpemVYKTsKKyAgICAgICAgICAgIGlmIChpc0FscGhhSW1hZ2UoKSkK
KyAgICAgICAgICAgICAgICBuZW9uRHJhd0FscGhhQ2hhbm5lbEdhdXNzaWFuQmx1cihzcmNQaXhl
bEFycmF5LT5kYXRhKCksIHRtcFBpeGVsQXJyYXktPmRhdGEoKSwgJmFyZ3VtZW50c1gpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5lb25EcmF3QWxsQ2hhbm5lbEdhdXNzaWFu
Qmx1cihzcmNQaXhlbEFycmF5LT5kYXRhKCksIHRtcFBpeGVsQXJyYXktPmRhdGEoKSwgJmFyZ3Vt
ZW50c1gpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQnl0ZUFycmF5KiBhdXhQaXhl
bEFycmF5ID0gdG1wUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHRtcFBpeGVsQXJyYXkgPSBzcmNQ
aXhlbEFycmF5OworICAgICAgICAgICAgc3JjUGl4ZWxBcnJheSA9IGF1eFBpeGVsQXJyYXk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoa2VybmVsU2l6ZVkpIHsKKyAgICAgICAgICAgIGtlcm5l
bFBvc2l0aW9uKGksIGtlcm5lbFNpemVZLCBhcmd1bWVudHNZLmRpc3RhbmNlTGVmdCwgYXJndW1l
bnRzWS5kaXN0YW5jZVJpZ2h0KTsKKyAgICAgICAgICAgIGFyZ3VtZW50c1kuaW52ZXJ0ZWRLZXJu
ZWxTaXplID0gMSAvIHN0YXRpY19jYXN0PGZsb2F0PihrZXJuZWxTaXplWSk7CisgICAgICAgICAg
ICBpZiAoaXNBbHBoYUltYWdlKCkpCisgICAgICAgICAgICAgICAgbmVvbkRyYXdBbHBoYUNoYW5u
ZWxHYXVzc2lhbkJsdXIodG1wUGl4ZWxBcnJheS0+ZGF0YSgpLCBzcmNQaXhlbEFycmF5LT5kYXRh
KCksICZhcmd1bWVudHNZKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZW9u
RHJhd0FsbENoYW5uZWxHYXVzc2lhbkJsdXIodG1wUGl4ZWxBcnJheS0+ZGF0YSgpLCBzcmNQaXhl
bEFycmF5LT5kYXRhKCksICZhcmd1bWVudHNZKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIEJ5dGVBcnJheSogYXV4UGl4ZWxBcnJheSA9IHRtcFBpeGVsQXJyYXk7CisgICAgICAgICAg
ICB0bXBQaXhlbEFycmF5ID0gc3JjUGl4ZWxBcnJheTsKKyAgICAgICAgICAgIHNyY1BpeGVsQXJy
YXkgPSBhdXhQaXhlbEFycmF5OworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdDQykKKwor
I2VuZGlmIC8vIEZFR2F1c3NpYW5CbHVyTkVPTl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5j
cHAKaW5kZXggMzgwN2YxZi4uYzFlOGE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNw
cApAQCAtMjksMTQgKzI5LDE0IEBACiAKICNpZiBDUFUoQVJNX05FT04pICYmIENPTVBJTEVSKEdD
QykKIAotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQWxpZ25tZW50Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhlc2UgY29uc3RhbnRzIGFyZSBjb3BpZWQg
dG8gdGhlIGZvbGxvd2luZyBTSU1EIHJlZ2lzdGVyczoKIC8vICAgQUxQSEFYX1EgQUxQSEFZX1Eg
UkVNQVBYX0QgUkVNQVBZX0QKIAotV1RGX0FMSUdORUQoc2hvcnQsIHNfRkVMaWdodGluZ0NvbnN0
YW50c0Zvck5lb25bXSwgMTYpID0geworc3RhdGljIFdURl9BTElHTkVEKHNob3J0LCBzX0ZFTGln
aHRpbmdDb25zdGFudHNGb3JOZW9uW10sIDE2KSA9IHsKICAgICAvLyBBbHBoYSBjb2VmZmljaWVu
dHMuCiAgICAgLTIsIDEsIDAsIC0xLCAyLCAxLCAwLCAtMSwKICAgICAwLCAtMSwgLTIsIC0xLCAw
LCAxLCAyLCAxLApAQCAtNjAsNyArNjAsNyBAQCBzaG9ydCogZmVMaWdodGluZ0NvbnN0YW50c0Zv
ck5lb24oKQogI2RlZmluZSBTUEVDVUxBUl9FWFBPTkVOVF9PRkZTRVQgVE9TVFJJTkcoMTYpCiAj
ZGVmaW5lIENPTkVfRVhQT05FTlRfT0ZGU0VUIFRPU1RSSU5HKDIwKQogI2RlZmluZSBGTE9BVF9B
UkdVTUVOVFNfT0ZGU0VUIFRPU1RSSU5HKDI0KQotI2RlZmluZSBEUkFXSU5HX0NPTlNUQU5UU19P
RkZTRVQgVE9TVFJJTkcoMjgpCisjZGVmaW5lIFBBSU5USU5HX0NPTlNUQU5UU19PRkZTRVQgVE9T
VFJJTkcoMjgpCiAjZGVmaW5lIE5MICJcbiIKIAogLy8gUmVnaXN0ZXIgYWxsb2NhdGlvbgpAQCAt
MjE5LDcgKzIxOSw3IEBAIFRPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAogCiAgICAg
Ly8gVGhlIGZvbGxvd2luZyB0d28gYXJndW1lbnRzIGFyZSBsb2FkZWQgdG8gU0lNRCByZWdpc3Rl
cnMuCiAgICAgImxkciByMCwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIEZMT0FUX0FSR1VNRU5U
U19PRkZTRVQgIl0iIE5MCi0gICAgImxkciByMSwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIERS
QVdJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKKyAgICAibGRyIHIxLCBbIiBQQUlOVElOR19E
QVRBX1IgIiwgIyIgUEFJTlRJTkdfQ09OU1RBTlRTX09GRlNFVCAiXSIgTkwKICAgICAibGRyICIg
UElYRUxTX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFBJWEVMU19PRkZTRVQgIl0iIE5M
CiAgICAgImxkciAiIFdJRFRIX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIsICMiIFdJRFRIX09G
RlNFVCAiXSIgTkwKICAgICAibGRyICIgSEVJR0hUX1IgIiwgWyIgUEFJTlRJTkdfREFUQV9SICIs
ICMiIEhFSUdIVF9PRkZTRVQgIl0iIE5MCkBAIC0yNDYsNyArMjQ2LDcgQEAgVE9TVFJJTkcobmVv
bkRyYXdMaWdodGluZykgIjoiIE5MCiAgICAgInZtb3YuZjMyICIgU1BPVF9DT0xPUl9RICIsICIg
Q09MT1JfUSBOTAogICAgICJtb3YgIiBSRVNFVF9XSURUSF9SICIsICIgV0lEVEhfUiBOTAogCi0i
Lm1haW5sb29wOiIgTkwKKyIubWFpbkxvb3A6IiBOTAogICAgICJtb3YgcjMsICMzIiBOTAogICAg
ICJ2bW92LmYzMiAiIFBPU0lUSU9OX1hfUyAiLCAiIENPTlNUX09ORV9TIE5MCiAKQEAgLTQxNyw3
ICs0MTcsNyBAQCBUT1NUUklORyhuZW9uRHJhd0xpZ2h0aW5nKSAiOiIgTkwKICAgICAidmFkZC5m
MzIgIiBQT1NJVElPTl9ZX1MgIiwgIiBDT05TVF9PTkVfUyBOTAogICAgICJtb3YgIiBXSURUSF9S
ICIsICIgUkVTRVRfV0lEVEhfUiBOTAogICAgICJzdWJzICIgSEVJR0hUX1IgIiwgIiBIRUlHSFRf
UiAiLCAjMSIgTkwKLSAgICAiYm5lIC5tYWlubG9vcCIgTkwKKyAgICAiYm5lIC5tYWluTG9vcCIg
TkwKIAogICAgIC8vIFJldHVybi4KICAgICAidmxkbWlhIHNwISwge2Q4LWQxNX0iIE5MCkBAIC00
NTksNiArNDU5LDQwIEBAIFRPU1RSSU5HKG5lb25EcmF3TGlnaHRpbmcpICI6IiBOTAogICAgICJi
IC5saWdodFN0cmVuZ3RoQ2FsY3VsYXRlZCIgTkwKICk7IC8vIE5PTElOVAogCitpbnQgRkVMaWdo
dGluZzo6Z2V0UG93ZXJDb2VmZmljaWVudHMoZmxvYXQgZXhwb25lbnQpCit7CisgICAgLy8gQ2Fs
bGluZyBhIHBvd2YgZnVuY3Rpb24gZnJvbSB0aGUgYXNzZW1ibHkgY29kZSB3b3VsZCByZXF1aXJl
IHRvIHNhdmUKKyAgICAvLyBhbmQgcmVsb2FkIGEgbG90IG9mIE5FT04gcmVnaXN0ZXJzLiBTaW5j
ZSB0aGUgYmFzZSBpcyBpbiByYW5nZSBbMC4uMV0KKyAgICAvLyBhbmQgb25seSA4IGJpdCBwcmVj
aXNpb24gaXMgcmVxdWlyZWQsIHdlIHVzZSBvdXIgb3duIHBvd2YgZnVuY3Rpb24uCisgICAgLy8g
VGhpcyBpcyBwcm9iYWJseSBub3QgdGhlIGJlc3QsIGJ1dCBpdCB1c2VzIG9ubHkgYSBmZXcgcmVn
aXN0ZXJzIGFuZAorICAgIC8vIGdpdmVzIHVzIGVub3VnaCBwcmVjaXNpb24gKG1vZGlmeWluZyB0
aGUgZXhwb25lbnQgZmllbGQgZGlyZWN0bHkgd291bGQKKyAgICAvLyBhbHNvIGJlIHBvc3NpYmxl
KS4KKworICAgIC8vIEZpcnN0LCB3ZSBsaW1pdCB0aGUgZXhwb25lbnQgdG8gbWF4aW11bSBvZiA2
NCwgd2hpY2ggZ2l2ZXMgdXMgZW5vdWdoCisgICAgLy8gcHJlY2lzaW9uLiBXZSBzcGxpdCB0aGUg
ZXhwb25lbnQgdG8gYW4gaW50ZWdlciBhbmQgZnJhY3Rpb24gcGFydCwKKyAgICAvLyBzaW5jZSBh
XnggPSAoYV55KSooYV56KSB3aGVyZSB4ID0geSt6LiBUaGUgaW50ZWdlciBleHBvbmVudCBvZiB0
aGUKKyAgICAvLyBwb3dlciBpcyBlc3RpbWF0ZWQgYnkgc3F1YXJlLCBhbmQgdGhlIGZyYWN0aW9u
IGV4cG9uZW50IG9mIHRoZSBwb3dlcgorICAgIC8vIGlzIGVzdGltYXRlZCBieSBzcXVhcmUgcm9v
dCBhc3NlbWJseSBpbnN0cnVjdGlvbnMuCisgICAgaW50IGksIHJlc3VsdDsKKworICAgIGlmIChl
eHBvbmVudCA8IDApCisgICAgICAgIGV4cG9uZW50ID0gMSAvICgtZXhwb25lbnQpOworCisgICAg
aWYgKGV4cG9uZW50ID4gNjMuOTkpCisgICAgICAgIGV4cG9uZW50ID0gNjMuOTk7CisKKyAgICBl
eHBvbmVudCAvPSA2NDsKKyAgICByZXN1bHQgPSAwOworICAgIGZvciAoaSA9IDExOyBpID49IDA7
IC0taSkgeworICAgICAgICBleHBvbmVudCAqPSAyOworICAgICAgICBpZiAoZXhwb25lbnQgPj0g
MSkgeworICAgICAgICAgICAgcmVzdWx0IHw9IDEgPDwgaTsKKyAgICAgICAgICAgIGV4cG9uZW50
IC09IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQ1BVKEFSTV9ORU9OKSAmJiBDT01QSUxFUihH
Q0MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L2FybS9GRUxpZ2h0aW5nTkVPTi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uaAppbmRleCBkODNiN2ZlLi5lYzVlYWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxp
Z2h0aW5nTkVPTi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgKQEAgLTMxLDYgKzMxLDkgQEAKIAogI2lmIENQVShBUk1f
TkVPTikgJiYgQ09NUElMRVIoR0NDKQogCisjaW5jbHVkZSAiRkVMaWdodGluZy5oIgorI2luY2x1
ZGUgPHd0Zi9BbGlnbm1lbnQuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBPdGhlcndp
c2U6IERpc3RhbnQgTGlnaHQuCkBAIC04OSw2ICs5Miw4MSBAQCBleHRlcm4gIkMiIHsKIHZvaWQg
bmVvbkRyYXdMaWdodGluZyhGRUxpZ2h0aW5nUGFpbnRpbmdEYXRhRm9yTmVvbiopOwogfQogCitp
bmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFwcGx5TmVvbihMaWdodGluZ0RhdGEmIGRh
dGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSkKK3sKKyAgICBXVEZf
QUxJR05FRChGRUxpZ2h0aW5nRmxvYXRBcmd1bWVudHNGb3JOZW9uLCBmbG9hdEFyZ3VtZW50cywg
MTYpOworCisgICAgRkVMaWdodGluZ1BhaW50aW5nRGF0YUZvck5lb24gbmVvbkRhdGEgPSB7Cisg
ICAgICAgIGRhdGEucGl4ZWxzLT5kYXRhKCksCisgICAgICAgIGRhdGEud2lkdGhEZWNyZWFzZWRC
eU9uZSAtIDEsCisgICAgICAgIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgLSAxLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAmZmxvYXRBcmd1bWVudHMsCisg
ICAgICAgIGZlTGlnaHRpbmdDb25zdGFudHNGb3JOZW9uKCkKKyAgICB9OworCisgICAgLy8gU2V0
IGxpZ2h0IHNvdXJjZSBhcmd1bWVudHMuCisgICAgZmxvYXRBcmd1bWVudHMuY29uc3RPbmUgPSAx
OworCisgICAgZmxvYXRBcmd1bWVudHMuY29sb3JSZWQgPSBtX2xpZ2h0aW5nQ29sb3IucmVkKCk7
CisgICAgZmxvYXRBcmd1bWVudHMuY29sb3JHcmVlbiA9IG1fbGlnaHRpbmdDb2xvci5ncmVlbigp
OworICAgIGZsb2F0QXJndW1lbnRzLmNvbG9yQmx1ZSA9IG1fbGlnaHRpbmdDb2xvci5ibHVlKCk7
CisgICAgZmxvYXRBcmd1bWVudHMucGFkZGluZzQgPSAwOworCisgICAgaWYgKG1fbGlnaHRTb3Vy
Y2UtPnR5cGUoKSA9PSBMU19QT0lOVCkgeworICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFH
X1BPSU5UX0xJR0hUOworICAgICAgICBQb2ludExpZ2h0U291cmNlKiBwb2ludExpZ2h0U291cmNl
ID0gc3RhdGljX2Nhc3Q8UG9pbnRMaWdodFNvdXJjZSo+KG1fbGlnaHRTb3VyY2UuZ2V0KCkpOwor
ICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBwb2ludExpZ2h0U291cmNlLT5wb3NpdGlv
bigpLngoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMubGlnaHRZID0gcG9pbnRMaWdodFNvdXJj
ZS0+cG9zaXRpb24oKS55KCk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHBvaW50
TGlnaHRTb3VyY2UtPnBvc2l0aW9uKCkueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5wYWRk
aW5nMiA9IDA7CisgICAgfSBlbHNlIGlmIChtX2xpZ2h0U291cmNlLT50eXBlKCkgPT0gTFNfU1BP
VCkgeworICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQT1RfTElHSFQ7CisgICAgICAg
IFNwb3RMaWdodFNvdXJjZSogc3BvdExpZ2h0U291cmNlID0gc3RhdGljX2Nhc3Q8U3BvdExpZ2h0
U291cmNlKj4obV9saWdodFNvdXJjZS5nZXQoKSk7CisgICAgICAgIGZsb2F0QXJndW1lbnRzLmxp
Z2h0WCA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS54KCk7CisgICAgICAgIGZsb2F0QXJn
dW1lbnRzLmxpZ2h0WSA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS55KCk7CisgICAgICAg
IGZsb2F0QXJndW1lbnRzLmxpZ2h0WiA9IHNwb3RMaWdodFNvdXJjZS0+cG9zaXRpb24oKS56KCk7
CisgICAgICAgIGZsb2F0QXJndW1lbnRzLnBhZGRpbmcyID0gMDsKKworICAgICAgICBmbG9hdEFy
Z3VtZW50cy5kaXJlY3Rpb25YID0gcGFpbnRpbmdEYXRhLmRpcmVjdGlvblZlY3Rvci54KCk7Cisg
ICAgICAgIGZsb2F0QXJndW1lbnRzLmRpcmVjdGlvblkgPSBwYWludGluZ0RhdGEuZGlyZWN0aW9u
VmVjdG9yLnkoKTsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuZGlyZWN0aW9uWiA9IHBhaW50aW5n
RGF0YS5kaXJlY3Rpb25WZWN0b3IueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5wYWRkaW5n
MyA9IDA7CisKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUN1dE9mZkxpbWl0ID0gcGFpbnRp
bmdEYXRhLmNvbmVDdXRPZmZMaW1pdDsKKyAgICAgICAgZmxvYXRBcmd1bWVudHMuY29uZUZ1bGxM
aWdodCA9IHBhaW50aW5nRGF0YS5jb25lRnVsbExpZ2h0OworICAgICAgICBmbG9hdEFyZ3VtZW50
cy5jb25lQ3V0T2ZmUmFuZ2UgPSBwYWludGluZ0RhdGEuY29uZUN1dE9mZkxpbWl0IC0gcGFpbnRp
bmdEYXRhLmNvbmVGdWxsTGlnaHQ7CisgICAgICAgIG5lb25EYXRhLmNvbmVFeHBvbmVudCA9IGdl
dFBvd2VyQ29lZmZpY2llbnRzKHNwb3RMaWdodFNvdXJjZS0+c3BlY3VsYXJFeHBvbmVudCgpKTsK
KyAgICAgICAgaWYgKHNwb3RMaWdodFNvdXJjZS0+c3BlY3VsYXJFeHBvbmVudCgpID09IDEpCisg
ICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX0NPTkVfRVhQT05FTlRfSVNfMTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBBU1NFUlQobV9saWdodFNvdXJjZS50eXBlID09IExTX0RJU1RB
TlQpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFggPSBwYWludGluZ0RhdGEubGlnaHRW
ZWN0b3IueCgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFkgPSBwYWludGluZ0RhdGEu
bGlnaHRWZWN0b3IueSgpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5saWdodFogPSBwYWludGlu
Z0RhdGEubGlnaHRWZWN0b3IueigpOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5wYWRkaW5nMiA9
IDE7CisgICAgfQorCisgICAgLy8gU2V0IGxpZ2h0aW5nIGFyZ3VtZW50cy4KKyAgICBmbG9hdEFy
Z3VtZW50cy5zdXJmYWNlU2NhbGUgPSBkYXRhLnN1cmZhY2VTY2FsZTsKKyAgICBmbG9hdEFyZ3Vt
ZW50cy5taW51c1N1cmZhY2VTY2FsZURpdmlkZWRCeUZvdXIgPSAtZGF0YS5zdXJmYWNlU2NhbGUg
LyA0OworICAgIGlmIChtX2xpZ2h0aW5nVHlwZSA9PSBGRUxpZ2h0aW5nOjpEaWZmdXNlTGlnaHRp
bmcpCisgICAgICAgIGZsb2F0QXJndW1lbnRzLmRpZmZ1c2VDb25zdGFudCA9IG1fZGlmZnVzZUNv
bnN0YW50OworICAgIGVsc2UgeworICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQRUNV
TEFSX0xJR0hUOworICAgICAgICBmbG9hdEFyZ3VtZW50cy5kaWZmdXNlQ29uc3RhbnQgPSBtX3Nw
ZWN1bGFyQ29uc3RhbnQ7CisgICAgICAgIG5lb25EYXRhLnNwZWN1bGFyRXhwb25lbnQgPSBnZXRQ
b3dlckNvZWZmaWNpZW50cyhtX3NwZWN1bGFyRXhwb25lbnQpOworICAgICAgICBpZiAobV9zcGVj
dWxhckV4cG9uZW50ID09IDEpCisgICAgICAgICAgICBuZW9uRGF0YS5mbGFncyB8PSBGTEFHX1NQ
RUNVTEFSX0VYUE9ORU5UX0lTXzE7CisgICAgfQorICAgIGlmIChmbG9hdEFyZ3VtZW50cy5kaWZm
dXNlQ29uc3RhbnQgPT0gMSkKKyAgICAgICAgbmVvbkRhdGEuZmxhZ3MgfD0gRkxBR19ESUZGVVNF
X0NPTlNUX0lTXzE7CisKKyAgICBuZW9uRHJhd0xpZ2h0aW5nKCZuZW9uRGF0YSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENQVShBUk1fTkVPTikgJiYgQ09NUElM
RVIoR0NDKQotLSAKMS43LjIuMwoK
</data>
<flag name="review"
          id="84307"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>