<?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>147293</bug_id>
          
          <creation_ts>2015-07-24 23:24:40 -0700</creation_ts>
          <short_desc>Implement WebAssembly module parser</short_desc>
          <delta_ts>2015-07-31 13:35:03 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147397</dependson>
    
    <dependson>147400</dependson>
    
    <dependson>147420</dependson>
    
    <dependson>147443</dependson>
          <blocked>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sukolsak</cc>
    
    <cc>teppeis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112202</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-24 23:24:40 -0700</bug_when>
    <thetext>Implement WebAssembly module parser for WebAssembly files produced by pack-asmjs &lt;https://github.com/WebAssembly/polyfill-prototype-1&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112203</commentid>
    <comment_count>1</comment_count>
      <attachid>257511</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-24 23:36:18 -0700</bug_when>
    <thetext>Created attachment 257511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112398</commentid>
    <comment_count>2</comment_count>
      <attachid>257558</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-27 05:28:58 -0700</bug_when>
    <thetext>Created attachment 257558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112588</commentid>
    <comment_count>3</comment_count>
      <attachid>257558</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-27 16:44:43 -0700</bug_when>
    <thetext>Comment on attachment 257558
Patch

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

r=me with some mixups

&gt; Source/JavaScriptCore/parser/SourceProvider.h:90
&gt; +#if ENABLE(WEBASSEMBLY)
&gt; +        virtual bool isStringSource() const override
&gt; +        {
&gt; +            return true;
&gt; +        }
&gt; +#endif

SourceProvider has a subclass named &quot;StringSourceProvider&quot;. This function is too easily confused with that class. 

For now, I think you should remove this function. Instead of performing an isStringSource() check, I think you should just go with the [WebAssembly Source] source string you&apos;ve provided. In the future, we&apos;ll have to see what the spec says about toString on a WebAssembly function.

&gt; Source/JavaScriptCore/wasm/WASMFormat.h:33
&gt; +static const uint32_t wasmMagicNumber = 0x6d736177;

This file should be named WASMMagicNumber.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112589</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-27 16:44:56 -0700</bug_when>
    <thetext>*fixups</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112675</commentid>
    <comment_count>5</comment_count>
      <attachid>257632</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-27 22:36:56 -0700</bug_when>
    <thetext>Created attachment 257632
remove isStringSource()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112679</commentid>
    <comment_count>6</comment_count>
      <attachid>257632</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-27 22:44:09 -0700</bug_when>
    <thetext>Comment on attachment 257632
remove isStringSource()

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

&gt; Source/JavaScriptCore/ChangeLog:29
&gt; +        * wasm/WASMFormat.h: Added.

You missed Geoff’s comment to rename this file as WASMMagicNumber.h because thats what it contains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112680</commentid>
    <comment_count>7</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-27 22:46:25 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #3)
&gt; Comment on attachment 257558 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257558&amp;action=review
&gt; 
&gt; r=me with some mixups
&gt; 
&gt; &gt; Source/JavaScriptCore/parser/SourceProvider.h:90
&gt; &gt; +#if ENABLE(WEBASSEMBLY)
&gt; &gt; +        virtual bool isStringSource() const override
&gt; &gt; +        {
&gt; &gt; +            return true;
&gt; &gt; +        }
&gt; &gt; +#endif
&gt; 
&gt; SourceProvider has a subclass named &quot;StringSourceProvider&quot;. This function is
&gt; too easily confused with that class. 
&gt; 
&gt; For now, I think you should remove this function. Instead of performing an
&gt; isStringSource() check, I think you should just go with the [WebAssembly
&gt; Source] source string you&apos;ve provided. In the future, we&apos;ll have to see what
&gt; the spec says about toString on a WebAssembly function.

I originally named it isStringSourceProvider() but renamed it to isStringSource() after realizing that OpaqueJSScript was another subclass of SourceProvider that should have this method return true.

The reason I used this method was that SourceCode::toUTF8() returns &quot;m_provider-&gt;source().impl()-&gt;utf8ForRange(m_startChar, m_endChar - m_startChar)&quot;. This will crash if source() is &quot;[WebAssembly source]&quot; and m_startChar and m_endChar are out of range. Come to think of it, maybe I shouldn&apos;t have m_startChar and m_endChar out of range in the first place.

&gt; &gt; Source/JavaScriptCore/wasm/WASMFormat.h:33
&gt; &gt; +static const uint32_t wasmMagicNumber = 0x6d736177;
&gt; 
&gt; This file should be named WASMMagicNumber.h.

This file will have more constants and enums that define the WASM file format. It will be very similar to &lt;https://github.com/WebAssembly/polyfill-prototype-1/blob/master/src/shared.h&gt; Should I rename it to WASMMagicNumber.h for now? Or maybe WASMConstants.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112818</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-28 12:56:10 -0700</bug_when>
    <thetext>&gt; The reason I used this method was that SourceCode::toUTF8() returns
&gt; &quot;m_provider-&gt;source().impl()-&gt;utf8ForRange(m_startChar, m_endChar -
&gt; m_startChar)&quot;. This will crash if source() is &quot;[WebAssembly source]&quot; and
&gt; m_startChar and m_endChar are out of range. Come to think of it, maybe I
&gt; shouldn&apos;t have m_startChar and m_endChar out of range in the first place.

Right: It is always an error for m_startChar and m_endChar to be out of range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112820</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-28 12:58:17 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Source/JavaScriptCore/wasm/WASMFormat.h:33
&gt; &gt; &gt; +static const uint32_t wasmMagicNumber = 0x6d736177;
&gt; &gt; 
&gt; &gt; This file should be named WASMMagicNumber.h.
&gt; 
&gt; This file will have more constants and enums that define the WASM file
&gt; format. It will be very similar to
&gt; &lt;https://github.com/WebAssembly/polyfill-prototype-1/blob/master/src/shared.
&gt; h&gt; Should I rename it to WASMMagicNumber.h for now? Or maybe WASMConstants.h?

Which constants and enums do you plan to add?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112870</commentid>
    <comment_count>10</comment_count>
      <attachid>257686</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-28 14:19:02 -0700</bug_when>
    <thetext>Created attachment 257686
rename WASMFormat.h to WASMMagicNumber.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112877</commentid>
    <comment_count>11</comment_count>
      <attachid>257688</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-28 14:34:48 -0700</bug_when>
    <thetext>Created attachment 257688
rename WASMFormat.h to WASMMagicNumber.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112879</commentid>
    <comment_count>12</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-28 14:36:44 -0700</bug_when>
    <thetext>Per Geoff&apos;s suggestion on IRC, it would be good to separate the WASM representation in memory from the binary format, which includes the magic number. Put wasmMagicNumber in WASMMagicNumber.h for now. I will rename it later as more constants are added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112940</commentid>
    <comment_count>13</comment_count>
      <attachid>257688</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-28 17:05:05 -0700</bug_when>
    <thetext>Comment on attachment 257688
rename WASMFormat.h to WASMMagicNumber.h

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112978</commentid>
    <comment_count>14</comment_count>
      <attachid>257688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-28 17:56:45 -0700</bug_when>
    <thetext>Comment on attachment 257688
rename WASMFormat.h to WASMMagicNumber.h

Clearing flags on attachment: 257688

Committed r187531: &lt;http://trac.webkit.org/changeset/187531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112979</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-28 17:56:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113000</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-28 19:02:40 -0700</bug_when>
    <thetext>This broke the Windows build:
.\runtime\JSGlobalObject.cpp(95): fatal error C1083: Cannot open include file: &apos;JSWASMModule.h&apos;: No such file or directory [C:\cygwin\home\buildbot\slave\win-debug\build\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCore.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113020</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-28 20:24:30 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 147397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113046</commentid>
    <comment_count>18</comment_count>
      <attachid>257738</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-28 23:07:17 -0700</bug_when>
    <thetext>Created attachment 257738
Reupload the patch since r187539 should fix the JSWASMModule.h issue in the Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113102</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-29 10:12:54 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=147400 adds the wasm directory to the Windows projects files.  This fixes the condition that necessitated the rollout of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113104</commentid>
    <comment_count>20</comment_count>
      <attachid>257738</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-29 10:13:30 -0700</bug_when>
    <thetext>Comment on attachment 257738
Reupload the patch since r187539 should fix the JSWASMModule.h issue in the Windows build.

Rubber stamp to re-land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113116</commentid>
    <comment_count>21</comment_count>
      <attachid>257738</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-29 11:01:04 -0700</bug_when>
    <thetext>Comment on attachment 257738
Reupload the patch since r187539 should fix the JSWASMModule.h issue in the Windows build.

Rejecting attachment 257738 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 257738, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 187547 = 1fe8dd202bcea1baed52ec0873a511fdfcc32f45
r187548 = f10aaab6466f27e566d939dadd6f573fc55c4cf0
r187549 = 7bcaccefc8816a6065b6d627cb84cff6a20ae0e7
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.appspot.com/results/5948503670915072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113118</commentid>
    <comment_count>22</comment_count>
      <attachid>257758</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-29 11:13:19 -0700</bug_when>
    <thetext>Created attachment 257758
Rebase to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113119</commentid>
    <comment_count>23</comment_count>
      <attachid>257758</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-29 11:14:25 -0700</bug_when>
    <thetext>Comment on attachment 257758
Rebase to ToT.

Try landing again via commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113134</commentid>
    <comment_count>24</comment_count>
      <attachid>257758</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-29 12:05:03 -0700</bug_when>
    <thetext>Comment on attachment 257758
Rebase to ToT.

Clearing flags on attachment: 257758

Committed r187550: &lt;http://trac.webkit.org/changeset/187550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113135</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-29 12:05:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113178</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-29 14:32:07 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 147420</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113624</commentid>
    <comment_count>27</comment_count>
      <attachid>257894</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-30 19:03:41 -0700</bug_when>
    <thetext>Created attachment 257894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113673</commentid>
    <comment_count>28</comment_count>
      <attachid>257894</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-07-31 00:25:19 -0700</bug_when>
    <thetext>Comment on attachment 257894
Patch

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

&gt; Source/JavaScriptCore/wasm/WASMReader.cpp:38
&gt; +    result = m_cursor[0] | m_cursor[1] &lt;&lt; 8 | m_cursor[2] &lt;&lt; 16 | m_cursor[3] &lt;&lt; 24;

Out of curiosity, why does byte order not matter here but matter below?
Also, does WASM follow network byte order?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113686</commentid>
    <comment_count>29</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-31 01:04:21 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Comment on attachment 257894 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257894&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/WASMReader.cpp:38
&gt; &gt; +    result = m_cursor[0] | m_cursor[1] &lt;&lt; 8 | m_cursor[2] &lt;&lt; 16 | m_cursor[3] &lt;&lt; 24;
&gt; 
&gt; Out of curiosity, why does byte order not matter here but matter below?

Because the shift operator takes care of that. Say, m_cursor[0] = A, m_cursor[1] = B, m_cursor[2] = C, and m_cursor[3] = D.

On a little-endian machine,
A       = A 0 0 0
B &lt;&lt; 8  = 0 B 0 0
C &lt;&lt; 16 = 0 0 C 0
D &lt;&lt; 24 = 0 0 0 D
result  = A B C D

On a big-endian machine,
A       = 0 0 0 A
B &lt;&lt; 8  = 0 0 B 0
C &lt;&lt; 16 = 0 C 0 0
D &lt;&lt; 24 = D 0 0 0
result  = D C B A

which is as it should be.

&gt; Also, does WASM follow network byte order?

The binary format hasn&apos;t been standardized yet. We are using the file format of an experimental WebAssembly polyfill &lt;https://github.com/WebAssembly/polyfill-prototype-1&gt;, which uses the little endian format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113694</commentid>
    <comment_count>30</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-07-31 01:26:32 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; Comment on attachment 257894 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=257894&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/wasm/WASMReader.cpp:38
&gt; &gt; &gt; +    result = m_cursor[0] | m_cursor[1] &lt;&lt; 8 | m_cursor[2] &lt;&lt; 16 | m_cursor[3] &lt;&lt; 24;
&gt; &gt; 
&gt; &gt; Out of curiosity, why does byte order not matter here but matter below?
&gt; 
&gt; Because the shift operator takes care of that. Say, m_cursor[0] = A,
&gt; m_cursor[1] = B, m_cursor[2] = C, and m_cursor[3] = D.
&gt; 
&gt; On a little-endian machine,
&gt; A       = A 0 0 0
&gt; B &lt;&lt; 8  = 0 B 0 0
&gt; C &lt;&lt; 16 = 0 0 C 0
&gt; D &lt;&lt; 24 = 0 0 0 D
&gt; result  = A B C D
&gt; 
&gt; On a big-endian machine,
&gt; A       = 0 0 0 A
&gt; B &lt;&lt; 8  = 0 0 B 0
&gt; C &lt;&lt; 16 = 0 C 0 0
&gt; D &lt;&lt; 24 = D 0 0 0
&gt; result  = D C B A
&gt; 
&gt; which is as it should be.
Makes sense. This is a cool illustration.
It&apos;s a little worrisome that this is wrong though
if it&apos;s decided that WASM binary format is big endian.
I&apos;m not sure there is an alternative, though. 

&gt; 
&gt; &gt; Also, does WASM follow network byte order?
&gt; 
&gt; The binary format hasn&apos;t been standardized yet. We are using the file format
&gt; of an experimental WebAssembly polyfill
&gt; &lt;https://github.com/WebAssembly/polyfill-prototype-1&gt;, which uses the little
&gt; endian format.
Do we think it is likely that WASM binary format will stay
little endian? Would a lot of parsing code have to change if it&apos;s
big endian? It seems like it wouldn&apos;t be a lot but I haven&apos;t read
all the WASM code you&apos;ve been working on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113696</commentid>
    <comment_count>31</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-31 02:09:15 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Do we think it is likely that WASM binary format will stay
&gt; little endian?

I&apos;m not sure, but my guess is yes. The design document says &quot;WebAssembly portability assumes that execution environments offer the following characteristics: ... Little-endian byte ordering.&quot; &lt;https://github.com/WebAssembly/design/blob/master/Portability.md&gt; So, the little-endian ordering is probably preferred.

&gt; Would a lot of parsing code have to change if it&apos;s
&gt; big endian? It seems like it wouldn&apos;t be a lot but I haven&apos;t read
&gt; all the WASM code you&apos;ve been working on.

The final format will likely be very different from what we are using. So, a lot of code will have to change anyway. For the WASMReader class, I think there are only 5 methods would have to change, i.e., int16, int32, int64, float, and double.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113779</commentid>
    <comment_count>32</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-31 12:20:58 -0700</bug_when>
    <thetext>I have verified that https://bugs.webkit.org/show_bug.cgi?id=147443 fixes the build issue on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113787</commentid>
    <comment_count>33</comment_count>
      <attachid>257894</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-31 12:34:20 -0700</bug_when>
    <thetext>Comment on attachment 257894
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Reupload the patch, since r187591 should fix the &quot;..\..\jsc.cpp(46):
&gt; +        fatal error C1083: Cannot open include file: &apos;JSWASMModule.h&apos;&quot; issue.

I think you should include the original description here (from https://bugs.webkit.org/attachment.cgi?id=257688&amp;action=review).  It&apos;s ok to prefix with it with a &quot;Re-landing after fix for ...&quot; but it is useful for the ChangeLog to actually describe what this change is about.  Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113794</commentid>
    <comment_count>34</comment_count>
      <attachid>257946</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-31 12:41:33 -0700</bug_when>
    <thetext>Created attachment 257946
Fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113795</commentid>
    <comment_count>35</comment_count>
      <attachid>257946</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-31 12:43:40 -0700</bug_when>
    <thetext>Comment on attachment 257946
Fix ChangeLog

Rubber stamp to re-land after Windows build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113827</commentid>
    <comment_count>36</comment_count>
      <attachid>257946</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-31 13:34:57 -0700</bug_when>
    <thetext>Comment on attachment 257946
Fix ChangeLog

Clearing flags on attachment: 257946

Committed r187677: &lt;http://trac.webkit.org/changeset/187677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113828</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-31 13:35:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257511</attachid>
            <date>2015-07-24 23:36:18 -0700</date>
            <delta_ts>2015-07-27 05:28:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147293-20150724233501.patch</filename>
            <type>text/plain</type>
            <size>35211</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YmI0Y2E1Zjg0NDRmMTA3MWVkOWZiZDNmNDNiMDNiNDEyNzkwYzYwLi43MzA3OGRmM2M3Zjk1Nzc2
MmFjZjlhNTM0NWJhMmJlZDEzMjFhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wNy0yNCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IFdlYkFzc2VtYmx5IG1vZHVsZSBwYXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2Vk
IGJ5IHBhY2stYXNtanMKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9w
b2x5ZmlsbC1wcm90b3R5cGUtMT4uIFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhl
IG1hZ2ljIG51bWJlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0
aGUgcmVzdCB3aWxsIGJlCisgICAgICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aC4KKworICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkpOgorICAg
ICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6
dG9VVEY4KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKEpT
Qzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5
U291cmNlUHJvdmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0Ojp3YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNtL1dBU01Gb3JtYXQu
aDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmNw
cC4KKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVsZVBhcnNlcik6CisgICAgICAgIChKU0M6
OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNl
cjo6cGFyc2VNb2R1bGUpOgorICAgICAgICAoSlNDOjpwYXJzZVdlYkFzc2VtYmx5KToKKyAgICAg
ICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmNwcC4KKyAgICAgICAgKiB3YXNtL1dBU01SZWFkZXIu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUu
Y3BwLgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMik6CisgICAg
ICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWRGbG9hdCk6CisgICAgICAgIChKU0M6OldBU01SZWFk
ZXI6OnJlYWREb3VibGUpOgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuY3BwLgorICAgICAgICAo
SlNDOjpXQVNNUmVhZGVyOjpXQVNNUmVhZGVyKToKKwogMjAxNS0wNy0yNCAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBBdm9pZCAyIHRpbWVzIG5hbWUg
aXRlcmF0aW9uIGluIE9iamVjdC5hc3NpZ24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Nj
cmlwdFJlZi5jcHAKaW5kZXggYzIwYWY2ZGYyZjBmOWMyYWI5NGU4NmI3MWYxMzkzMTEyZGI4MTEz
ZS4uMzljMjM5OTM0NzRlZWU3YzZlOTM2MjgwOTRjZGFkZjQyZGQ2NzM1YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTQ2LDYgKzQ2LDEzIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwg
dXJsLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKyAgICB2aXJ0dWFsIGJvb2wgaXNTdHJpbmdTb3VyY2UoKSBjb25zdCBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisKICAgICB2
aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIHJldHVybiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmMzI5NWU1Zjg1YzQwNjhiZjFlMGFiZDFkY2UxOTZkNGJkMzUzYmQ3Li5jZjI1NjgyMWUxNzk1
ZDY2NTU0YTEwNTRhYTExZDhiZGJiNzBlMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC00MTEsNiArNDExLDggQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAogCiAgICAgd2FzbS9KU1dBU01Nb2R1bGUu
Y3BwCisgICAgd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcAorICAgIHdhc20vV0FTTVJlYWRlci5j
cHAKIAogICAgIHlhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCiAgICAgeWFyci9ZYXJyQ2Fub25p
Y2FsaXplVUNTMi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4
IDkzMmZjYWNlMzMwZWRkZjRkZmRhMWQ1OGJiNTAyMDZhMDFlZGNjZDYuLjI5NGY3NDZiZWY2MmVk
NDlmNWQ4M2E1NjJhNzNiNmM5YWI1ZDllOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvagpAQCAtODY3LDYgKzg2Nyw4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llx0b29sc1xKU0RvbGxhclZNLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRv
b2xzXEpTRG9sbGFyVk1Qcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHdhc21cV0FTTVJlYWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJy
XFJlZ3VsYXJFeHByZXNzaW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlh
cnJcWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ceWFyclxZYXJySW50ZXJwcmV0ZXIuY3BwIiAvPgpAQCAtMTczMSw2ICsxNzMzLDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXFByb2ZpbGVUcmVlTm9kZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcVGllcmVkTU1hcEFycmF5LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNRm9ybWF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHdhc21cV0FTTVJlYWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ceWFyclxSZWd1bGFyRXhwcmVzc2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ceWFyclxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJD
YW5vbmljYWxpemVVQ1MyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOGU2NTU3MWQ0N2ZmOGYzYTQ3ZWFmODM3ZTc0NDNlZDNm
YmY1NDYxNS4uMmY4MmY1NDUyYzgyZTU5NmMxMzU0ZTMxZmMzZjI1NWMwODRhYjM0NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTc5
Miw2ICsxNzkyLDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1v
ZHVsZS5jcHAiPgogICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPndh
c208L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3Jv
dXA+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxBUElcQVBJQ2FsbGJhY2tGdW5jdGlvbi5o
Ij4KQEAgLTQyODgsNiArNDI5NCwxNSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2Fz
bVxKU1dBU01Nb2R1bGUuaCI+CiAgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTUZvcm1hdC5oIj4K
KyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgiPgorICAgICAgPEZpbHRl
cj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3YXNtXFdBU01SZWFkZXIuaCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPE5vbmUg
SW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQcmVMaW5rLmNtZCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTFjMzFjNjczMDdkYWM1YjFhZDFmMDk2Njk1OWI5NTBlOWQ4ZDJiOS4u
ZjIzNTljMDgyMTZhMjE1MjI2NWQyMzdjZjU3ZDUxMzcwMDI0M2E2MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwMjMsNiArMTAyMywxMSBAQAogCQk3MEVDQTYwOTFBRkRCRUEy
MDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBs
YXRlUmVnaXN0cnlLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVF
MEJGRDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJ
CTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1
MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZCNCAvKiBX
QVNNTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCMzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNw
cCAqLzsgfTsKKwkJN0IzOUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZB
MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NkYxQjYyREUzMjAwMzYwRkI0
IC8qIFdBU01Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCMzlGNzZCMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNRm9ybWF0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzAxQjYyREUz
MjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3
NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdB
U01SZWFkZXIuY3BwICovOyB9OwogCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0IxQTQgLyogSlNXQVNN
TW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovOyB9OwogCQk3
Qjk4RDEzNzFCNjBDRDYyMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQg
LyogSlNXQVNNTW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVk
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDA4
Q0Q4MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi87IH07CkBAIC0y
NzY5LDYgKzI3NzQsMTEgQEAKIAkJNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRl
UmVnaXN0cnlLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVtcGxhdGVS
ZWdpc3RyeUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJGRDFCNEFG
Qjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52
aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFibGVFbnZp
cm9ubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2OTFCNjJERTIy
MDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXQVNNTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0IzOUY3NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTU1vZHVsZVBhcnNlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2QjFCNjJERTIyMDAzNjBGQjQgLyogV0FT
TUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNRm9ybWF0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAv
KiBXQVNNUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdBU01SZWFk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NzExQjYzNTc0QjAwMzYw
RkI0IC8qIFdBU01SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0FTTVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM0
MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXQVNNTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dBU01Nb2R1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURl
ZmVycmVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvbWlz
ZURlZmVycmVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyOTMsNiArNDMw
MywxMSBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8q
IEpTV0FTTU1vZHVsZS5jcHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5oICovLAorCQkJCTdCMzlGNzZCMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNRm9y
bWF0LmggKi8sCisJCQkJN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJz
ZXIuY3BwICovLAorCQkJCTdCMzlGNzZBMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFy
c2VyLmggKi8sCisJCQkJN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3Bw
ICovLAorCQkJCTdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IHdhc207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjE4
Nyw2ICs2MjAyLDcgQEAKIAkJCQkwRjVBMTI3NDE5MkQ5RkRGMDA4NzY0QTMgLyogREZHRG9lc0dD
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkY2
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCMzlGNzZFMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNN
TW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyMTBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDg2MTg5QjFC
N0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJs
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02Mjc1LDYgKzYyOTEsNyBAQAogCQkJCUJDMThDNTJFMEUx
NkZDRTEwMEIzNDQ2MCAvKiBMZXhlci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RDNCM0Mz
MTAxNTlEN0YwMDI4NjVFNyAvKiBMaW5rQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQz
MTczODE0NkJBQzY5MDA3RTM4OTAgLyogTGlzdGFibGVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3QjM5Rjc2RjFCNjJERTMyMDAzNjBGQjQgLyogV0FTTUZvcm1hdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdFMkVBNkIwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMEZDNDVBMTRCRDE1RjUwMEI4MTE1NCAvKiBMTEludENhbGxMaW5r
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDM0NEMDAxOUFEQTQxMDAwNkFDNzJBIC8qIERG
R0Jsb2NrV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNjUzMSw2ICs2NTQ4LDcgQEAKIAkJ
CQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdCNjAxODIxNjM5RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29k
ZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyog
VW51c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0IzOUY3NzAxQjYyREUzMjAwMzYw
RkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTYzQjM4MTNGQzZGRTkw
MDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDI2QTQ4MTQ2
MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlD
NUU1RjE4RTM1RjVFMDBENDMxQzMgLyogRlRMRFdBUkZSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC03MTY1LDYgKzcxODMsNyBAQAogCQkJCTBGOUQzMzk2MTdGRkM0RTYwMDczQzJCQyAvKiBE
RkdGbHVzaGVkQXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0
REZCIC8qIERGR0NsZWFuVXBQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGNzE3
QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
N0IzOUY3NkQxQjYyREUyRTAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYzQTFCRjkxQTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2lu
Z1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAv
KiBERkdHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3
RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03NTc5LDYgKzc1
OTgsNyBAQAogCQkJCTBGMjRFNTUwMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTYyRDJEMzhGMUFERjEwM0YwMDAyMDZDMSAvKiBGdW5jdGlvblJhcmVE
YXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzcwMDkyMTQwMkZGM0MwMDc4RUIzOSAvKiBT
YW1wbGluZ0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0IzOUY3NzIxQjYzNTc0RDAw
MzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ4ODUwRUQy
MUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVD
MEVDNjFBQTBEN0RBMDBCNkFBRkEgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTVGRDAwNjcxODlBRkU5QzAwNjMzMjMxIC8qIFNjcmlwdEFyZ3VtZW50
cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggOGRiZGM4NWU0NjE1
MjI3NjZiN2RmZmRmOTQ0YmY1MTMwMzhhNGUzYy4uY2VlOGY2N2JmN2IxYzY5MjExMjE2NThhZGMy
OTQ3NmI3OGRkMDBmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNp
bmNsdWRlICJKU09OT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJE
YXRhYmFzZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlN0YWNrVmlz
aXRvci5oIgpAQCAtNTAsNiArNTEsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5s
aW5lcy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9m
aWxlckxvZy5oIgorI2luY2x1ZGUgIldBU01Nb2R1bGVQYXJzZXIuaCIKICNpbmNsdWRlIDxtYXRo
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ5Miw2ICs0
OTQsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJldHVy
blR5cGVGb3IoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enooRXhlY1N0YXRlKik7CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2Fk
V2ViQXNzZW1ibHkoRXhlY1N0YXRlKik7CisjZW5kaWYKIAogI2lmIEVOQUJMRShTQU1QTElOR19G
TEFHUykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2Ft
cGxpbmdGbGFncyhFeGVjU3RhdGUqKTsKQEAgLTY1NSw2ICs2NjAsMTAgQEAgcHJvdGVjdGVkOgog
CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5hYmxlRXhjZXB0aW9uRnV6eiIsIGZ1bmN0aW9u
RW5hYmxlRXhjZXB0aW9uRnV6eiwgMCk7CiAgICAgICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJsb2FkV2ViQXNzZW1ibHkiLCBmdW5jdGlvbkxv
YWRXZWJBc3NlbWJseSwgMSk7CisjZW5kaWYKKwogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNv
bnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsRXhlYygpLCAwKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBhcnJheS0+cHV0
RGlyZWN0SW5kZXgoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3Vt
ZW50c1tpXSkpOwpAQCAtMTE4Myw2ICsxMTkyLDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25GdXp6KEV4ZWNTdGF0ZSopCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1i
bHkoRXhlY1N0YXRlKiBleGVjKQoreworICAgIFN0cmluZyBmaWxlTmFtZSA9IGV4ZWMtPmFyZ3Vt
ZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBWZWN0b3I8Y2hhcj4gYnVm
ZmVyOworICAgIGlmICghZmlsbEJ1ZmZlcldpdGhDb250ZW50c09mRmlsZShmaWxlTmFtZSwgYnVm
ZmVyKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IG9w
ZW4gZmlsZS4iKSkpKTsKKyAgICBSZWZQdHI8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291
cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUocmVpbnRlcnBy
ZXRfY2FzdDxWZWN0b3I8dWludDhfdD4mPihidWZmZXIpLCBmaWxlTmFtZSk7CisgICAgU291cmNl
Q29kZSBzb3VyY2Uoc291cmNlUHJvdmlkZXIpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cisg
ICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBwYXJzZVdlYkFzc2VtYmx5KGV4ZWMsIHNvdXJjZSwg
ZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAoIW1vZHVsZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9y
KGV4ZWMsIGVycm9yTWVzc2FnZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1vZHVs
ZSk7Cit9CisjZW5kaWYKKwogLy8gVXNlIFNFSCBmb3IgUmVsZWFzZSBidWlsZHMgb25seSB0byBn
ZXQgcmlkIG9mIHRoZSBjcmFzaCByZXBvcnQgZGlhbG9nCiAvLyAobHVja2lseSB0aGUgc2FtZSB0
ZXN0cyBmYWlsIGluIFJlbGVhc2UgYW5kIERlYnVnIGJ1aWxkcyBzbyBmYXIpLiBOZWVkIHRvCiAv
LyBiZSBpbiBhIHNlcGFyYXRlIG1haW4gZnVuY3Rpb24gYmVjYXVzZSB0aGUganNjbWFpbiBmdW5j
dGlvbiByZXF1aXJlcyBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlQ29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZUNvZGUuY3BwCmluZGV4IDhlZjE2OGRlYWE5MmMzNWE4MWE0MjdkODY2MDg5YzAxODk1MmNmMjEu
LmI2NTkzNzk1OTgwNjRmZTg2YzFiMTk0ZTVjMGZmMWQ1MzVhYTcxZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmNwcApAQCAtMzYsNiArMzYsMTEgQEAgQ1N0
cmluZyBTb3VyY2VDb2RlOjp0b1VURjgoKSBjb25zdAogICAgIGlmICghbV9wcm92aWRlcikKICAg
ICAgICAgcmV0dXJuIENTdHJpbmcoIiIsIDApOwogICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyAgICBpZiAoIW1fcHJvdmlkZXItPmlzU3RyaW5nU291cmNlKCkpCisgICAgICAgIHJldHVy
biBDU3RyaW5nKCIiLCAwKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIG1fcHJvdmlkZXItPnNvdXJj
ZSgpLmltcGwoKS0+dXRmOEZvclJhbmdlKG1fc3RhcnRDaGFyLCBtX2VuZENoYXIgLSBtX3N0YXJ0
Q2hhcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlk
ZXIuaAppbmRleCBjY2NhYmYzNjk2NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2YjQ3Li44MDVk
Yjk2OTgyY2ZiMGRlODBiN2RiNTc3MmY0OWJjYzZhOWM3MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC00Myw2ICs0Myw5IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflNvdXJjZVBy
b3ZpZGVyKCk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc1N0cmluZ1NvdXJjZSgpIGNvbnN0ID0gMDsKKyNlbmRpZgogICAgICAgICB2aXJ0dWFsIGNv
bnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgPSAwOwogICAgICAgICBTdHJpbmcgZ2V0UmFuZ2Uo
aW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogICAgICAgICB7CkBAIC03OSw2ICs4MiwxMyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKHNvdXJjZSwgdXJsLCBzdGFydFBvc2l0aW9uKSk7CiAgICAgICAgIH0KIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgdmlydHVhbCBib29sIGlzU3RyaW5nU291
cmNlKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UoKSBjb25zdCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9zb3Vy
Y2U7CkBAIC05NCw2ICsxMDQsNDIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0cmluZyBt
X3NvdXJjZTsKICAgICB9OwogICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBjbGFz
cyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyIDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4g
Y3JlYXRlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgU3RyaW5nJiB1cmwpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5U291
cmNlUHJvdmlkZXIoZGF0YSwgdXJsKSk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNTdHJpbmdTb3VyY2UoKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmlu
ZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IG1fc291cmNlOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBk
YXRhKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICAg
ICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihj
b25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIGNvbnN0IFN0cmluZyYgdXJsKQorICAgICAgICAg
ICAgOiBTb3VyY2VQcm92aWRlcih1cmwsIFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkp
CisgICAgICAgICAgICAsIG1fc291cmNlKCJbV2ViQXNzZW1ibHkgc291cmNlXSIpCisgICAgICAg
ICAgICAsIG1fZGF0YShkYXRhKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTdHJp
bmcgbV9zb3VyY2U7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBtX2RhdGE7CisgICAgfTsKKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFNvdXJjZVByb3ZpZGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApp
bmRleCA3Zjc0MWFkZjVkNzk4MWUzOTVkZTEzOTRmNTQzNTRmNzI3YTM5Mzc2Li4yMzQ4YWRjMDhh
OGI1NWNkMmFlMWNhNmRiNzdlNGRhNmUyOTM3NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5j
bHVkZSAiSlNUeXBlZEFycmF5Q29uc3RydWN0b3JzLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5
UHJvdG90eXBlcy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKKyNpbmNsdWRlICJKU1dB
U01Nb2R1bGUuaCIKICNpbmNsdWRlICJKU1dlYWtNYXAuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQu
aCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgpAQCAtMzQwLDYgKzM0MSwxMCBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX3Byb21pc2VQcm90b3R5cGUuc2V0KHZt
LCB0aGlzLCBKU1Byb21pc2VQcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBKU1Byb21pc2VQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKSk7CiAgICAgbV9wcm9taXNlU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNQcm9taXNlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fcHJvbWlzZVByb3RvdHlwZS5nZXQoKSkpOwogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIG1fd2FzbU1vZHVsZVN0cnVjdHVyZS5zZXQodm0s
IHRoaXMsIEpTV0FTTU1vZHVsZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzKSk7CisjZW5kaWYK
KwogICAgIG1fcGFyc2VJbnRGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMiwgdm0ucHJvcGVydHlOYW1lcy0+cGFyc2VJbnQuc3RyaW5nKCksIGdsb2Jh
bEZ1bmNQYXJzZUludCwgTm9JbnRyaW5zaWMpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cGFyc2VJbnQsIG1fcGFyc2VJbnRGdW5jdGlvbi5n
ZXQoKSwgRG9udEVudW0gfCBGdW5jdGlvbik7CiAKQEAgLTc5OSw2ICs4MDQsOSBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZG9sbGFyVk1TdHJ1Y3R1
cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2ludGVybmFsRnVuY3Rpb25T
dHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Byb21pc2VTdHJ1
Y3R1cmUpOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV93YXNtTW9kdWxlU3RydWN0dXJlKTsKKyNlbmRpZgogCiAjZGVmaW5lIFZJU0lU
X1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNl
VHlwZSwganNOYW1lKSBcCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fICMjIGxv
d2VyTmFtZSAjIyBQcm90b3R5cGUpOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA2ZTY5NWQ0MWI5MDFlMDk1MGE1YTM1ODUzMWZkZTU2
NWUyYzgxNmIxLi4yNTg5ZjY5NDY5Mjk3YWJjZDJhNGUyZWZhZDNiMTYzY2ZmOWY4YzQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI0
Myw2ICsyNDMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9p
dGVyYXRvclJlc3VsdFN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Jl
Z0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X3Byb21pc2VTdHJ1Y3R1cmU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fd2FzbU1vZHVsZVN0cnVjdHVyZTsKKyNlbmRpZgogCiAjZGVmaW5l
IERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBw
cm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBp
dGFsTmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKQEAg
LTQ3NSw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHB0cmRpZmZfdCBpdGVyYXRvclJl
c3VsdFN0cnVjdHVyZU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9i
amVjdCwgbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZSk7IH0KICAgICBTdHJ1Y3R1cmUqIHJlZ0V4
cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnRXhwTWF0Y2hlc0Fy
cmF5U3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBwcm9taXNlU3RydWN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9taXNlU3RydWN0dXJlLmdldCgpOyB9CisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorICAgIFN0cnVjdHVyZSogd2FzbU1vZHVsZVN0cnVjdHVyZSgpIGNvbnN0IHsg
cmV0dXJuIG1fd2FzbU1vZHVsZVN0cnVjdHVyZS5nZXQoKTsgfQorI2VuZGlmCiAKICAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHNldFJlbW90ZURlYnVnZ2luZ0VuYWJsZWQoYm9vbCk7CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgYm9vbCByZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRm9ybWF0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRm9ybWF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyODJhZDJk
ODJiMDAxMDUyNmZjNGFmYTdjODViMTY1ZTY3N2UxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Gb3JtYXQuaApAQCAtMCwwICsxLDM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXQVNNRm9y
bWF0X2gKKyNkZWZpbmUgV0FTTUZvcm1hdF9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
K25hbWVzcGFjZSBKU0MgeworCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2FzbU1hZ2ljTnVtYmVy
ID0gMHg2ZDczNjE3NzsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNRm9ybWF0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE0NTRkMWRj
Yzk1NzhjYjVkMGMwNmJkYWY2NTZkYzRmMWE5MjhhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsNzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0FTTU1vZHVsZVBhcnNlci5oIgorCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTV0FT
TU1vZHVsZS5oIgorI2luY2x1ZGUgIldBU01Gb3JtYXQuaCIKKworI2RlZmluZSBGQUlMX1dJVEhf
TUVTU0FHRShlcnJvck1lc3NhZ2UpIGRvIHsgbV9lcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7
IHJldHVybiBmYWxzZTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9VTlNJR05FRF9JTlQzMl9P
Ul9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRVbnNpZ25lZElu
dDMyKHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorI2Rl
ZmluZSBSRUFEX0ZMT0FUX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFk
ZXIucmVhZEZsb2F0KHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxl
ICgwKQorI2RlZmluZSBSRUFEX0RPVUJMRV9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBp
ZiAoIW1fcmVhZGVyLnJlYWREb3VibGUoeCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2Fn
ZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIEZBSUxfSUZfRkFMU0UoY29uZGl0aW9uLCBlcnJvck1l
c3NhZ2UpIGRvIHsgaWYgKCEoY29uZGl0aW9uKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNz
YWdlKTsgfSB3aGlsZSAoMCkKKworbmFtZXNwYWNlIEpTQyB7CisKK1dBU01Nb2R1bGVQYXJzZXI6
OldBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYgc291cmNlKQorICAgIDogbV9yZWFk
ZXIoc3RhdGljX2Nhc3Q8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcio+KHNvdXJjZS5wcm92aWRl
cigpKS0+ZGF0YSgpKQoreworfQorCitKU1dBU01Nb2R1bGUqIFdBU01Nb2R1bGVQYXJzZXI6OnBh
cnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpCit7CisgICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBKU1dBU01Nb2R1bGU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LT53YXNtTW9kdWxlU3RydWN0dXJlKCkpOworICAgIHBhcnNlTW9k
dWxlKCk7CisgICAgaWYgKCFtX2Vycm9yTWVzc2FnZS5pc051bGwoKSkgeworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBtX2Vycm9yTWVzc2FnZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorICAgIHJldHVybiBtb2R1bGU7Cit9CisKK2Jvb2wgV0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VN
b2R1bGUoKQoreworICAgIHVpbnQzMl90IG1hZ2ljTnVtYmVyOworICAgIFJFQURfVU5TSUdORURf
SU5UMzJfT1JfRkFJTChtYWdpY051bWJlciwgIkNhbm5vdCByZWFkIHRoZSBtYWdpYyBudW1iZXIu
Iik7CisgICAgRkFJTF9JRl9GQUxTRShtYWdpY051bWJlciA9PSB3YXNtTWFnaWNOdW1iZXIsICJU
aGUgbWFnaWMgbnVtYmVyIGlzIGluY29ycmVjdC4iKTsKKworICAgIC8vIFRPRE86IHBhcnNlIHRo
ZSByZXN0CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSlNXQVNNTW9kdWxlKiBwYXJzZVdlYkFz
c2VtYmx5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkKK3sKKyAgICBXQVNNTW9kdWxlUGFyc2VyIFdBU01Nb2R1bGVQYXJzZXIo
c291cmNlKTsKKyAgICByZXR1cm4gV0FTTU1vZHVsZVBhcnNlci5wYXJzZShleGVjLT52bSgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGVycm9yTWVzc2FnZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZDZhMzE3
ODllMTMxMGQ0NzcyZDU4MTI4ZWRhYTRkNjZkM2M0MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmgKQEAgLTAsMCArMSw2MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0FTTU1vZHVsZVBhcnNlcl9oCisjZGVmaW5lIFdBU01Nb2R1bGVQYXJzZXJfaAorCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiV0FTTVJlYWRlci5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRXhlY1N0YXRl
OworY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBKU1dBU01Nb2R1bGU7CitjbGFzcyBTb3Vy
Y2VDb2RlOworY2xhc3MgVk07CisKK2NsYXNzIFdBU01Nb2R1bGVQYXJzZXIgeworcHVibGljOgor
ICAgIFdBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYpOworICAgIEpTV0FTTU1vZHVs
ZSogcGFyc2UoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKwor
cHJpdmF0ZToKKyAgICBib29sIHBhcnNlTW9kdWxlKCk7CisKKyAgICBXQVNNUmVhZGVyIG1fcmVh
ZGVyOworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKK307CisKK0pTX0VYUE9SVF9QUklWQVRF
IEpTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJseShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VD
b2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8vIFdBU01Nb2R1bGVQYXJzZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
OGE3ZDgwMTMzZTZkZWM4ODJlNmQ3ZGFiZjJjNzNjNTJlZGEyMjBiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKQEAgLTAsMCArMSw4
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXQVNNUmVhZGVyLmgiCisKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKKyNkZWZpbmUgQ0hFQ0tfUkVBRChsZW5ndGgpIGRvIHsgaWYgKG1fY3Vyc29y
ICsgbGVuZ3RoID4gbV9idWZmZXIuZW5kKCkpIHJldHVybiBmYWxzZTsgfSB3aGlsZSAoMCkKKwor
bmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZFVuc2lnbmVkSW50MzIodWlu
dDMyX3QmIHJlc3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDQpOworICAgIHJlc3VsdCA9IG1fY3Vy
c29yWzBdIHwgbV9jdXJzb3JbMV0gPDwgOCB8IG1fY3Vyc29yWzJdIDw8IDE2IHwgbV9jdXJzb3Jb
M10gPDwgMjQ7CisgICAgbV9jdXJzb3IgKz0gNDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBXQVNNUmVhZGVyOjpyZWFkRmxvYXQoZmxvYXQmIHJlc3VsdCkKK3sKKyAgICBDSEVDS19SRUFE
KDQpOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhfdCBieXRlc1s0XTsKKyAgICAgICAgZmxv
YXQgZmxvYXRWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJR19FTkRJQU4pCisgICAgICAg
IHsgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMF0gfQor
I2Vsc2UKKyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzJdLCBt
X2N1cnNvclszXSB9CisjZW5kaWYKKyAgICB9OworICAgIHJlc3VsdCA9IHUuZmxvYXRWYWx1ZTsK
KyAgICBtX2N1cnNvciArPSA0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdBU01SZWFk
ZXI6OnJlYWREb3VibGUoZG91YmxlJiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg4KTsKKyAg
ICB1bmlvbiB7CisgICAgICAgIHVpbnQ4X3QgYnl0ZXNbOF07CisgICAgICAgIGRvdWJsZSBkb3Vi
bGVWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJR19FTkRJQU4pCisgICAgICAgIHsgbV9j
dXJzb3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbM10sIG1fY3Vyc29y
WzRdLCBtX2N1cnNvcls1XSwgbV9jdXJzb3JbNl0sIG1fY3Vyc29yWzddIH0KKyNlbHNlCisgICAg
ICAgIHsgbV9jdXJzb3JbN10sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls1XSwgbV9jdXJzb3JbNF0s
IG1fY3Vyc29yWzNdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzBdIH0KKyNl
bmRpZgorICAgIH07CisgICAgcmVzdWx0ID0gdS5kb3VibGVWYWx1ZTsKKyAgICBtX2N1cnNvciAr
PSA4OworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYjQxOWZlYzRiOGU3ZDVmMDQ5OWFmZDFiMTc4YWM3NjFkMmNhMzNk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRl
ci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdBU01SZWFkZXJfaAorI2RlZmluZSBXQVNNUmVhZGVyX2gKKwor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIFdBU01SZWFkZXIgeworcHVibGljOgorICAgIFdBU01SZWFk
ZXIoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIHVuc2lnbmVkIGluaXRpYWxJbmRleCA9
IDApCisgICAgICAgIDogbV9idWZmZXIoYnVmZmVyKQorICAgICAgICAsIG1fY3Vyc29yKGJ1ZmZl
ci5kYXRhKCkgKyBpbml0aWFsSW5kZXgpCisgICAgeworICAgIH0KKworICAgIGJvb2wgcmVhZFVu
c2lnbmVkSW50MzIodWludDMyX3QmIHJlc3VsdCk7CisgICAgYm9vbCByZWFkRmxvYXQoZmxvYXQm
IHJlc3VsdCk7CisgICAgYm9vbCByZWFkRG91YmxlKGRvdWJsZSYgcmVzdWx0KTsKKworcHJpdmF0
ZToKKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIG1fYnVmZmVyOworICAgIGNvbnN0IHVpbnQ4
X3QqIG1fY3Vyc29yOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNUmVhZGVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257558</attachid>
            <date>2015-07-27 05:28:58 -0700</date>
            <delta_ts>2015-07-27 22:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147293-20150727052738.patch</filename>
            <type>text/plain</type>
            <size>34975</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmRkYWY4ZmQwYjVlY2YxMDE3Njk0NWQxYjcxOWM5M2JlYjlhMjBhLi5kM2I1ZDA2YWMyYTNhZmFk
YmIxMmFmMGI1NjVjYTFhMzM4YWE4YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wNy0yNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IFdlYkFzc2VtYmx5IG1vZHVsZSBwYXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2Vk
IGJ5IHBhY2stYXNtanMKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9w
b2x5ZmlsbC1wcm90b3R5cGUtMT4uIFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhl
IG1hZ2ljIG51bWJlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0
aGUgcmVzdCB3aWxsIGJlCisgICAgICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aC4KKworICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkpOgorICAg
ICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6
dG9VVEY4KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKEpT
Qzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5
U291cmNlUHJvdmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0Ojp3YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNtL1dBU01Gb3JtYXQu
aDogQWRkZWQuCisgICAgICAgICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OldBU01Nb2R1bGVQYXJzZXIpOgorICAgICAg
ICAoSlNDOjpXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChKU0M6OldBU01Nb2R1
bGVQYXJzZXI6OnBhcnNlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6cGFyc2VXZWJBc3NlbWJseSk6
CisgICAgICAgICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIHdh
c20vV0FTTVJlYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpyZWFk
VW5zaWduZWRJbnQzMik6CisgICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWRGbG9hdCk6Cisg
ICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWREb3VibGUpOgorICAgICAgICAqIHdhc20vV0FT
TVJlYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6V0FTTVJlYWRlcik6
CisKIDIwMTUtMDctMjYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
ZGQgbWlzc2luZyBidWlsdGluIGZpbGVzIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBYY29kZSBwcm9q
ZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCmluZGV4IGMyMGFm
NmRmMmYwZjljMmFiOTRlODZiNzFmMTM5MzExMmRiODExM2UuLjM5YzIzOTkzNDc0ZWVlN2M2ZTkz
NjI4MDk0Y2RhZGY0MmRkNjczNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHRSZWYuY3BwCkBAIC00Niw2ICs0NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBXVEY6
OmFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVy
LCBzb3VyY2UpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgdmlydHVh
bCBib29sIGlzU3RyaW5nU291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNv
dXJjZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbV9zb3VyY2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTE5ZmNhZjQ2MTEzOWNmNzExODg2
ZjhkMTM0YTlkZGM1MWE4NjI1Ny4uYWZkYjQyMzZlZGZiZjBjYTE1N2E3YzlhZDUyOWI4MjUyMzUy
ZTRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDExLDYgKzQxMSw4
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgdG9vbHMvSlNEb2xsYXJWTVByb3Rv
dHlwZS5jcHAKIAogICAgIHdhc20vSlNXQVNNTW9kdWxlLmNwcAorICAgIHdhc20vV0FTTU1vZHVs
ZVBhcnNlci5jcHAKKyAgICB3YXNtL1dBU01SZWFkZXIuY3BwCiAKICAgICB5YXJyL1JlZ3VsYXJF
eHByZXNzaW9uLmNwcAogICAgIHlhcnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCAxMThhOTEzZGY1NDY4ODVjNDQ2Y2E1
YWIzZTQ2NzdjMzkyOGZmMDIyLi4xNTRiNDJhMzY0MzZjM2RiZWE1MDY4YTkxMmRkYjU0MTZjOTBl
NDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTg2OCw2ICs4
NjgsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJWTS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xKU0RvbGxhclZNUHJvdG90eXBl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmNw
cCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1vZHVsZVBhcnNlci5j
cHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFkZXIuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxSZWd1bGFyRXhwcmVzc2lvbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJDYW5vbmljYWxpemVVQ1My
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJcWWFyckludGVycHJldGVy
LmNwcCIgLz4KQEAgLTE3MzQsNiArMTczNiw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx0b29sc1xQcm9maWxlVHJlZU5vZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHRvb2xzXFRpZXJlZE1NYXBBcnJheS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d2FzbVxKU1dBU01Nb2R1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21c
V0FTTUZvcm1hdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9k
dWxlUGFyc2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFk
ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJlc3Np
b24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcWWFyci5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5oIiAvPgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4
IDYwYzY0OWE4MzNiZWZhNWIyYjliNDdmOTI1OTI1NGJiNWFlZDBmM2YuLmNiMzk5MDNmOGQ2MTNj
NjA2ODVmNzM1ZDRiNjRlNzY0MTA5ZmRlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE3OTUsNiArMTc5NSwxMiBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIj4KICAgICAgIDxGaWx0
ZXI+d2FzbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208L0Zp
bHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21c
V0FTTVJlYWRlci5jcHAiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cQVBJXEFQSUNhbGxiYWNrRnVuY3Rpb24uaCI+CkBAIC00Mjk3LDYgKzQzMDMsMTUg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiPgogICAg
ICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Gb3JtYXQuaCI+CisgICAgICA8RmlsdGVyPndhc208L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21c
V0FTTU1vZHVsZVBhcnNlci5oIj4KKyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmgi
PgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgIDwvSXRl
bUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxOb25lIEluY2x1ZGU9IkphdmFTY3JpcHRDb3Jl
UHJlTGluay5jbWQiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0YTMyOGI4
NjY0Y2QzNGIyNDkxOWVkMTAyMGU1NGQ2YzIzYTA2MTcuLmY2NjIyYTZjMjFmZGFjODJhMjg4M2Y2
YmNlMzlhMTBhMjAzMmE5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIz
LDYgKzEwMjMsMTEgQEAKIAkJNzBFQ0E2MDkxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVn
aXN0cnlLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlFRTBCRkYxQjRB
RkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlFRTBCRkQxQjRBRkI4NTAwMDM4NUM5IC8q
IFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwICovOyB9OwogCQk3OUVFMEMwMDFCNEFGQjg1MDAwMzg1
QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52
aXJvbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3QjM5Rjc2RDFCNjJERTJFMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2OTFCNjJE
RTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi87IH07CisJCTdCMzlGNzZFMUI2
MkRFMzIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2QTFCNjJERTIyMDAzNjBGQjQgLyogV0FT
TU1vZHVsZVBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTdCMzlGNzZGMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNRm9ybWF0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2QjFCNjJERTIy
MDAzNjBGQjQgLyogV0FTTUZvcm1hdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTdCMzlGNzcwMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNUmVhZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2
QzFCNjJERTIyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCMzlGNzcyMUI2MzU3NEQwMDM2MEZCNCAvKiBX
QVNNUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCMzlGNzcxMUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLzsgfTsKIAkJ
N0I5OEQxMzYxQjYwQ0Q1RjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNDFCNjBDRDVBMDAyM0Ix
QTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLzsgfTsKIAkJN0I5OEQxMzcxQjYwQ0Q2MjAwMjNCMUE0
IC8qIEpTV0FTTU1vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0RBMTg3
MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyog
SlNQcm9taXNlRGVmZXJyZWQuY3BwICovOyB9OwpAQCAtMjc3MSw2ICsyNzc2LDExIEBACiAJCTcw
RUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBsYXRlUmVnaXN0cnlLZXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkQxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxl
RW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFy
aWFibGVFbnZpcm9ubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RUUw
QkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQ
YXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0FTTU1vZHVs
ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzZBMUI2MkRF
MjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdBU01Nb2R1bGVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0IzOUY3NkIxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTUZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QjM5Rjc2QzFCNjJERTIyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTdCMzlGNzcxMUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdBU01SZWFkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNX
QVNNTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV0FT
TU1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM1MUI2MENE
NUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXQVNNTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4
Q0Q4MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb21pc2VEZWZlcnJlZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzA3LDYgKzQzMTcsMTEgQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovLAog
CQkJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLywKKwkJCQk3
QjM5Rjc2QjFCNjJERTIyMDAzNjBGQjQgLyogV0FTTUZvcm1hdC5oICovLAorCQkJCTdCMzlGNzY5
MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLywKKwkJCQk3QjM5Rjc2
QTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oICovLAorCQkJCTdCMzlGNzcx
MUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLywKKwkJCQk3QjM5Rjc2QzFCNjJE
RTIyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3YXNtOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYyMTMsNiArNjIyOCw3IEBACiAJCQkJMEY1
QTEyNzQxOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcw
MENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAt
NjMwMSw2ICs2MzE3LDcgQEAKIAkJCQlCQzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIu
bHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkQzQjNDMzEwMTU5RDdGMDAyODY1RTcgLyogTGlu
a0J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0MzE3MzgxNDZCQUM2OTAwN0UzODkwIC8q
IExpc3RhYmxlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0IzOUY3NkYxQjYyREUzMjAw
MzYwRkI0IC8qIFdBU01Gb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RTJFQTZCMEZCNDYw
Q0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBGQzQ1
QTE0QkQxNUY1MDBCODExNTQgLyogTExJbnRDYWxsTGlua0luZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzNDRDAwMTlBREE0MTAwMDZBQzcyQSAvKiBERkdCbG9ja1dvcmtsaXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTY1NTgsNiArNjU3NSw3IEBACiAJCQkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3
MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjYw
MTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTdCMzlGNzcwMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQcm9maWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYgLyogVmFsdWVS
ZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QzVFNUYxOEUzNUY1RTAwRDQzMUMzIC8q
IEZUTERXQVJGUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzE5Miw2ICs3MjEwLDcgQEAK
IAkJCQkwRjlEMzM5NjE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hlZEF0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOUQzNjk0MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjcxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Zs
dXNoRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0ExQkY5MUE5
RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NkVDOURDNzEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyRkNDRjkxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzYwNyw2ICs3NjI2LDcgQEAKIAkJCQkwRjI0RTU1MDE3
RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQyRDM4
RjFBREYxMDNGMDAwMjA2QzEgLyogRnVuY3Rpb25SYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjc3MDA5MjE0MDJGRjNDMDA3OEVCMzkgLyogU2FtcGxpbmdDb3VudGVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdCMzlGNzcyMUI2MzU3NEQwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjlEODg1MEVEMjFDM0QwMEI4OTYxOSAvKiBTYW1wbGlu
Z1Rvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQzBFQzYxQUEwRDdEQTAwQjZBQUZBIC8q
IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDY3
MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCmluZGV4IDhkYmRjODVlNDYxNTIyNzY2YjdkZmZkZjk0NGJmNTEzMDM4
YTRlM2MuLmNlZThmNjdiZjdiMWM2OTIxMTIxNjU4YWRjMjk0NzZiNzhkZDAwZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgog
I2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIkpT
V0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlICJT
YW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKQEAgLTUwLDYgKzUxLDcg
QEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlICJUZXN0
UnVubmVyVXRpbHMuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKKyNpbmNsdWRlICJX
QVNNTW9kdWxlUGFyc2VyLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+
CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC00OTIsNiArNDk0LDkgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZXR1cm5UeXBlRm9yKEV4ZWNTdGF0ZSopOwog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNCbG9j
a0V4ZWN1dGlvblJhbmdlcyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4ZWN1dGVkKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25G
dXp6KEV4ZWNTdGF0ZSopOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSop
OworI2VuZGlmCiAKICNpZiBFTkFCTEUoU0FNUExJTkdfRkxBR1MpCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MoRXhlY1N0YXRlKik7
CkBAIC02NTUsNiArNjYwLDEwIEBAIHByb3RlY3RlZDoKIAogICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImVuYWJsZUV4Y2VwdGlvbkZ1enoiLCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enosIDAp
OwogICAgICAgICAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAibG9hZFdlYkFzc2VtYmx5IiwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHksIDEpOworI2Vu
ZGlmCisKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2Jh
bEV4ZWMoKSwgMCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNp
emUoKTsgKytpKQogICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGdsb2JhbEV4ZWMo
KSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKQEAgLTExODMsNiAr
MTE5MiwyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxlRXhj
ZXB0aW9uRnV6eihFeGVjU3RhdGUqKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCitFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBTdHJpbmcgZmlsZU5hbWUgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcjsKKyAgICBpZiAoIWZpbGxCdWZm
ZXJXaXRoQ29udGVudHNPZkZpbGUoZmlsZU5hbWUsIGJ1ZmZlcikpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKSk7CisgICAgUmVm
UHRyPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNzZW1i
bHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8VmVjdG9yPHVpbnQ4X3Q+
Jj4oYnVmZmVyKSwgZmlsZU5hbWUpOworICAgIFNvdXJjZUNvZGUgc291cmNlKHNvdXJjZVByb3Zp
ZGVyKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIEpTV0FTTU1vZHVsZSogbW9kdWxl
ID0gcGFyc2VXZWJBc3NlbWJseShleGVjLCBzb3VyY2UsIGVycm9yTWVzc2FnZSk7CisgICAgaWYg
KCFtb2R1bGUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50aHJv
d0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCBlcnJvck1lc3NhZ2UpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtb2R1bGUpOworfQorI2VuZGlmCisKIC8vIFVz
ZSBTRUggZm9yIFJlbGVhc2UgYnVpbGRzIG9ubHkgdG8gZ2V0IHJpZCBvZiB0aGUgY3Jhc2ggcmVw
b3J0IGRpYWxvZwogLy8gKGx1Y2tpbHkgdGhlIHNhbWUgdGVzdHMgZmFpbCBpbiBSZWxlYXNlIGFu
ZCBEZWJ1ZyBidWlsZHMgc28gZmFyKS4gTmVlZCB0bwogLy8gYmUgaW4gYSBzZXBhcmF0ZSBtYWlu
IGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGpzY21haW4gZnVuY3Rpb24gcmVxdWlyZXMgb2JqZWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmNwcAppbmRleCA4ZWYxNjhk
ZWFhOTJjMzVhODFhNDI3ZDg2NjA4OWMwMTg5NTJjZjIxLi5iNjU5Mzc5NTk4MDY0ZmU4NmMxYjE5
NGU1YzBmZjFkNTM1YWE3MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1NvdXJjZUNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlQ29kZS5jcHAKQEAgLTM2LDYgKzM2LDExIEBAIENTdHJpbmcgU291cmNlQ29kZTo6dG9VVEY4
KCkgY29uc3QKICAgICBpZiAoIW1fcHJvdmlkZXIpCiAgICAgICAgIHJldHVybiBDU3RyaW5nKCIi
LCAwKTsKICAgICAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgaWYgKCFtX3Byb3ZpZGVy
LT5pc1N0cmluZ1NvdXJjZSgpKQorICAgICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7CisjZW5k
aWYKKwogICAgIHJldHVybiBtX3Byb3ZpZGVyLT5zb3VyY2UoKS5pbXBsKCktPnV0ZjhGb3JSYW5n
ZShtX3N0YXJ0Q2hhciwgbV9lbmRDaGFyIC0gbV9zdGFydENoYXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggY2NjYWJmMzY5NjRm
NDExYTY0Y2JhZTI1OTJkMjRmNDI0ZjAyNmI0Ny4uODA1ZGI5Njk4MmNmYjBkZTgwYjdkYjU3NzJm
NDliY2M2YTljNzMyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaApAQCAtNDMsNiArNDMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBK
U19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigpOwogCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdHJpbmdTb3VyY2UoKSBjb25z
dCA9IDA7CisjZW5kaWYKICAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNv
bnN0ID0gMDsKICAgICAgICAgU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29u
c3QKICAgICAgICAgewpAQCAtNzksNiArODIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHVy
bCwgc3RhcnRQb3NpdGlvbikpOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0cmluZ1NvdXJjZSgpIGNvbnN0IG92ZXJyaWRlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKKwog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG1fc291cmNlOwpAQCAtOTQsNiArMTA0LDQyIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgfTsKICAgICAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgY2xhc3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92
aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0
aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGRhdGEsIGNvbnN0IFN0cmluZyYgdXJsKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKGRhdGEsIHVybCkp
OworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBib29sIGlzU3RyaW5nU291cmNlKCkgY29u
c3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSgpIGNvbnN0CisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6Cisg
ICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBk
YXRhLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIodXJs
LCBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICAgICAgLCBtX3NvdXJj
ZSgiW1dlYkFzc2VtYmx5IHNvdXJjZV0iKQorICAgICAgICAgICAgLCBtX2RhdGEoZGF0YSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG1fc291cmNlOworICAgICAgICBW
ZWN0b3I8dWludDhfdD4gbV9kYXRhOworICAgIH07CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBTb3VyY2VQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggM2VmYTY2NzAwZjAzNGQ3MTUx
YjYyYzg3MTAxODllYzQ0ZTNkODM0MC4uZTA1ZmFkMDZkMGY2YmViMTVhMGRhZGRiYjI5NDlmZmMw
NzgzMDI1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkpTVHlwZWRBcnJheUNvbnN0
cnVjdG9ycy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCIKICNpbmNsdWRl
ICJKU1R5cGVkQXJyYXlzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCiAjaW5jbHVkZSAi
SlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAiSlNXaXRoU2Nv
cGUuaCIKQEAgLTM0MSw2ICszNDIsMTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYg
dm0pCiAgICAgbV9wcm9taXNlUHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNQcm9taXNlUHJvdG90
eXBlOjpjcmVhdGUoZXhlYywgdGhpcywgSlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fcHJvbWlzZVN0
cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtX3Byb21pc2VQcm90b3R5cGUuZ2V0KCkpKTsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
KyAgICBtX3dhc21Nb2R1bGVTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dBU01Nb2R1bGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcykpOworI2VuZGlmCisKICAgICBtX3BhcnNlSW50RnVuY3Rp
b24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZtLnByb3Bl
cnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5vSW50cmlu
c2ljKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwgRnVuY3Rp
b24pOwogCkBAIC04MDEsNiArODA2LDkgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tX2RvbGxhclZNU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB2aXNpdG9y
LmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm9taXNlU3RydWN0dXJlKTsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fd2FzbU1vZHVsZVN0
cnVjdHVyZSk7CisjZW5kaWYKIAogI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFt
ZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlKTsg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5k
ZXggNmU2OTVkNDFiOTAxZTA5NTBhNWEzNTg1MzFmZGU1NjVlMmM4MTZiMS4uMjU4OWY2OTQ2OTI5
N2FiY2QyYTRlMmVmYWQzYjE2M2NmZjlmOGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yNDMsNiArMjQzLDkgQEAgcHJvdGVjdGVk
OgogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmU7
CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1
cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcm9taXNlU3RydWN0dXJlOworI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3dhc21N
b2R1bGVTdHJ1Y3R1cmU7CisjZW5kaWYKIAogI2RlZmluZSBERUZJTkVfU1RPUkFHRV9GT1JfU0lN
UExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBl
LCBqc05hbWUpIFwKICAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5hbWUgIyMgUHJvdG90eXBlPiBt
XyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlOyBcCkBAIC00NzUsNiArNDc4LDkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBwdHJkaWZmX3QgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmVPZmZzZXQoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1faXRlcmF0b3JSZXN1bHRT
dHJ1Y3R1cmUpOyB9CiAgICAgU3RydWN0dXJlKiByZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUo
KSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZS5nZXQoKTsgfQog
ICAgIFN0cnVjdHVyZSogcHJvbWlzZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvbWlz
ZVN0cnVjdHVyZS5nZXQoKTsgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBTdHJ1Y3R1
cmUqIHdhc21Nb2R1bGVTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3dhc21Nb2R1bGVTdHJ1
Y3R1cmUuZ2V0KCk7IH0KKyNlbmRpZgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRS
ZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
cmVtb3RlRGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZvcm1hdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MjgyYWQyZDgyYjAwMTA1MjZmYzRhZmE3Yzg1YjE2
NWU2NzdlMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRm9ybWF0LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTUZvcm1hdF9oCisjZGVmaW5lIFdBU01Gb3Jt
YXRfaAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCituYW1lc3BhY2UgSlNDIHsKKworc3Rh
dGljIGNvbnN0IHVpbnQzMl90IHdhc21NYWdpY051bWJlciA9IDB4NmQ3MzYxNzc7CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYg
Ly8gV0FTTUZvcm1hdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNTW9kdWxlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1
bGVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNDU0ZDFkY2M5NTc4Y2I1ZDBjMDZiZGFmNjU2ZGM0
ZjFhOTI4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNTW9kdWxlUGFyc2VyLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldBU01Nb2R1bGVQYXJzZXIuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU1dBU01Nb2R1bGUuaCIKKyNpbmNsdWRlICJX
QVNNRm9ybWF0LmgiCisKKyNkZWZpbmUgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKSBk
byB7IG1fZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlOyByZXR1cm4gZmFsc2U7IH0gd2hpbGUg
KDApCisjZGVmaW5lIFJFQURfVU5TSUdORURfSU5UMzJfT1JfRkFJTCh4LCBlcnJvck1lc3NhZ2Up
IGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkVW5zaWduZWRJbnQzMih4KSkgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9GTE9BVF9PUl9GQUlM
KHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRGbG9hdCh4KSkgRkFJTF9X
SVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9ET1VC
TEVfT1JfRkFJTCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkRG91Ymxl
KHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorI2RlZmlu
ZSBGQUlMX0lGX0ZBTFNFKGNvbmRpdGlvbiwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghKGNvbmRp
dGlvbikpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisKK25h
bWVzcGFjZSBKU0MgeworCitXQVNNTW9kdWxlUGFyc2VyOjpXQVNNTW9kdWxlUGFyc2VyKGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSkKKyAgICA6IG1fcmVhZGVyKHN0YXRpY19jYXN0PFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXIqPihzb3VyY2UucHJvdmlkZXIoKSktPmRhdGEoKSkKK3sKK30KKwor
SlNXQVNNTW9kdWxlKiBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIEpTV0FTTU1v
ZHVsZSogbW9kdWxlID0gSlNXQVNNTW9kdWxlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+d2Fz
bU1vZHVsZVN0cnVjdHVyZSgpKTsKKyAgICBwYXJzZU1vZHVsZSgpOworICAgIGlmICghbV9lcnJv
ck1lc3NhZ2UuaXNOdWxsKCkpIHsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gbV9lcnJvck1lc3Nh
Z2U7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gbW9kdWxlOwor
fQorCitib29sIFdBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9kdWxlKCkKK3sKKyAgICB1aW50MzJf
dCBtYWdpY051bWJlcjsKKyAgICBSRUFEX1VOU0lHTkVEX0lOVDMyX09SX0ZBSUwobWFnaWNOdW1i
ZXIsICJDYW5ub3QgcmVhZCB0aGUgbWFnaWMgbnVtYmVyLiIpOworICAgIEZBSUxfSUZfRkFMU0Uo
bWFnaWNOdW1iZXIgPT0gd2FzbU1hZ2ljTnVtYmVyLCAiVGhlIG1hZ2ljIG51bWJlciBpcyBpbmNv
cnJlY3QuIik7CisKKyAgICAvLyBUT0RPOiBwYXJzZSB0aGUgcmVzdAorCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK0pTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJseShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAg
V0FTTU1vZHVsZVBhcnNlciBXQVNNTW9kdWxlUGFyc2VyKHNvdXJjZSk7CisgICAgcmV0dXJuIFdB
U01Nb2R1bGVQYXJzZXIucGFyc2UoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBlcnJvck1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01Nb2R1bGVQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01N
b2R1bGVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQ2YTMxNzg5ZTEzMTBkNDc3MmQ1ODEyOGVkYWE0
ZDY2ZDNjNDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTU1vZHVsZVBhcnNlci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01Nb2R1bGVQYXJzZXJfaAorI2Rl
ZmluZSBXQVNNTW9kdWxlUGFyc2VyX2gKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2lu
Y2x1ZGUgIldBU01SZWFkZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0
OworY2xhc3MgSlNXQVNNTW9kdWxlOworY2xhc3MgU291cmNlQ29kZTsKK2NsYXNzIFZNOworCitj
bGFzcyBXQVNNTW9kdWxlUGFyc2VyIHsKK3B1YmxpYzoKKyAgICBXQVNNTW9kdWxlUGFyc2VyKGNv
bnN0IFNvdXJjZUNvZGUmKTsKKyAgICBKU1dBU01Nb2R1bGUqIHBhcnNlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBwYXJz
ZU1vZHVsZSgpOworCisgICAgV0FTTVJlYWRlciBtX3JlYWRlcjsKKyAgICBTdHJpbmcgbV9lcnJv
ck1lc3NhZ2U7Cit9OworCitKU19FWFBPUlRfUFJJVkFURSBKU1dBU01Nb2R1bGUqIHBhcnNlV2Vi
QXNzZW1ibHkoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKKyNlbmRpZiAvLyBXQVNNTW9kdWxlUGFyc2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTVJlYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiZjkzOTQyYmFjMWJkNDkyYmY3NDMy
ODMwYmU3MTEwYmRhYTk3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01SZWFkZXIuY3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV0FTTVJlYWRlci5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZGVmaW5lIENI
RUNLX1JFQUQobGVuZ3RoKSBkbyB7IGlmIChtX2N1cnNvciArIGxlbmd0aCA+IG1fYnVmZmVyLmVu
ZCgpKSByZXR1cm4gZmFsc2U7IH0gd2hpbGUgKDApCisKK25hbWVzcGFjZSBKU0MgeworCitib29s
IFdBU01SZWFkZXI6OnJlYWRVbnNpZ25lZEludDMyKHVpbnQzMl90JiByZXN1bHQpCit7CisgICAg
Q0hFQ0tfUkVBRCg0KTsKKyAgICByZXN1bHQgPSBtX2N1cnNvclswXSB8IG1fY3Vyc29yWzFdIDw8
IDggfCBtX2N1cnNvclsyXSA8PCAxNiB8IG1fY3Vyc29yWzNdIDw8IDI0OworICAgIG1fY3Vyc29y
ICs9IDQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZEZsb2F0
KGZsb2F0JiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg0KTsKKyAgICB1bmlvbiB7CisgICAg
ICAgIHVpbnQ4X3QgYnl0ZXNbNF07CisgICAgICAgIGZsb2F0IGZsb2F0VmFsdWU7CisgICAgfSB1
ID0geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1fY3Vyc29yWzNdLCBtX2N1cnNv
clsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzBdIH0KKyNlbHNlCisgICAgICAgIHsgbV9jdXJz
b3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbM10gfQorI2VuZGlmCisg
ICAgfTsKKyAgICByZXN1bHQgPSB1LmZsb2F0VmFsdWU7CisgICAgbV9jdXJzb3IgKz0gNDsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXQVNNUmVhZGVyOjpyZWFkRG91YmxlKGRvdWJsZSYg
cmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoOCk7CisgICAgdW5pb24geworICAgICAgICB1aW50
OF90IGJ5dGVzWzhdOworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgfSB1ID0gewor
I2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1fY3Vyc29yWzddLCBtX2N1cnNvcls2XSwg
bV9jdXJzb3JbNV0sIG1fY3Vyc29yWzRdLCBtX2N1cnNvclszXSwgbV9jdXJzb3JbMl0sIG1fY3Vy
c29yWzFdLCBtX2N1cnNvclswXSB9CisjZWxzZQorICAgICAgICB7IG1fY3Vyc29yWzBdLCBtX2N1
cnNvclsxXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzNdLCBtX2N1cnNvcls0XSwgbV9jdXJzb3Jb
NV0sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls3XSB9CisjZW5kaWYKKyAgICB9OworICAgIHJlc3Vs
dCA9IHUuZG91YmxlVmFsdWU7CisgICAgbV9jdXJzb3IgKz0gODsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NkZWEy
YjkyZDgyZGU2ZGFhNzhjYjdkOGYzMzJhMjNmM2VmZmNlMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXQVNN
UmVhZGVyX2gKKyNkZWZpbmUgV0FTTVJlYWRlcl9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBX
QVNNUmVhZGVyIHsKK3B1YmxpYzoKKyAgICBXQVNNUmVhZGVyKGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikKKyAgICAgICAgLCBtX2N1cnNv
cihidWZmZXIuZGF0YSgpKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIHJlYWRVbnNpZ25lZElu
dDMyKHVpbnQzMl90JiByZXN1bHQpOworICAgIGJvb2wgcmVhZEZsb2F0KGZsb2F0JiByZXN1bHQp
OworICAgIGJvb2wgcmVhZERvdWJsZShkb3VibGUmIHJlc3VsdCk7CisKK3ByaXZhdGU6CisgICAg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtX2J1ZmZlcjsKKyAgICBjb25zdCB1aW50OF90KiBtX2N1
cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTVJlYWRlcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257632</attachid>
            <date>2015-07-27 22:36:56 -0700</date>
            <delta_ts>2015-07-28 14:18:57 -0700</delta_ts>
            <desc>remove isStringSource()</desc>
            <filename>bug-147293-20150727223535.patch</filename>
            <type>text/plain</type>
            <size>32864</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGQ4MmI1NmI3ZDBkNjI2ZTIxZDg0ZTU1YWZiNGNiN2E1MTk2NTk2Li44NjE1MjM1ZGY4YTZkMWEz
ZTNhMjgwZDUxOGZjNTljNjkwNzE4MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNS0wNy0yNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IFdlYkFzc2VtYmx5IG1vZHVsZSBwYXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2Vk
IGJ5IHBhY2stYXNtanMKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9w
b2x5ZmlsbC1wcm90b3R5cGUtMT4uIFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhl
IG1hZ2ljIG51bWJlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0
aGUgcmVzdCB3aWxsIGJlCisgICAgICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0
aW9uTG9hZFdlYkFzc2VtYmx5KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoK
KyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0Ojp3YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNt
L1dBU01Gb3JtYXQuaDogQWRkZWQuCisgICAgICAgICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OldBU01Nb2R1bGVQYXJz
ZXIpOgorICAgICAgICAoSlNDOjpXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChK
U0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6cGFyc2VX
ZWJBc3NlbWJseSk6CisgICAgICAgICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNN
UmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMik6CisgICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJl
YWRGbG9hdCk6CisgICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWREb3VibGUpOgorICAgICAg
ICAqIHdhc20vV0FTTVJlYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6
V0FTTVJlYWRlcik6CisKIDIwMTUtMDctMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0gSW1wbGVtZW50IFJlZmxlY3QucHJldmVudEV4dGVu
c2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzcwOTE4YTU1MmJm
YTIxNDY5ZWFlOWJjMWM0MjIyMTFkMjA0NDkxLi4xMzcyMTExNDZiODc2MmZmMWRiYzViNWRmMjMw
ZjZlYTU3ZmQyMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MTEs
NiArNDExLDggQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB0b29scy9KU0RvbGxh
clZNUHJvdG90eXBlLmNwcAogCiAgICAgd2FzbS9KU1dBU01Nb2R1bGUuY3BwCisgICAgd2FzbS9X
QVNNTW9kdWxlUGFyc2VyLmNwcAorICAgIHdhc20vV0FTTVJlYWRlci5jcHAKIAogICAgIHlhcnIv
UmVndWxhckV4cHJlc3Npb24uY3BwCiAgICAgeWFyci9ZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IDExOGE5MTNkZjU0Njg4
NWM0NDZjYTVhYjNlNDY3N2MzOTI4ZmYwMjIuLjE1NGI0MmEzNjQzNmMzZGJlYTUwNjhhOTEyZGRi
NTQxNmM5MGU0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAt
ODY4LDYgKzg2OCw4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xKU0RvbGxh
clZNLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk1Q
cm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01N
b2R1bGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxl
UGFyc2VyLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTVJlYWRl
ci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFJlZ3VsYXJFeHByZXNz
aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJcWWFyckNhbm9uaWNh
bGl6ZVVDUzIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxZYXJySW50
ZXJwcmV0ZXIuY3BwIiAvPgpAQCAtMTczNCw2ICsxNzM2LDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHRvb2xzXFByb2ZpbGVUcmVlTm9kZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cdG9vbHNcVGllcmVkTU1hcEFycmF5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd2FzbVxXQVNNRm9ybWF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNt
XFdBU01Nb2R1bGVQYXJzZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21c
V0FTTVJlYWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxSZWd1bGFy
RXhwcmVzc2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJDYW5vbmljYWxpemVVQ1My
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnMKaW5kZXggNjBjNjQ5YTgzM2JlZmE1YjJiOWI0N2Y5MjU5MjU0YmI1YWVkMGYzZi4uY2IzOTkw
M2Y4ZDYxM2M2MDY4NWY3MzVkNGI2NGU3NjQxMDlmZGViNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTc5NSw2ICsxNzk1LDEyIEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5jcHAiPgogICAg
ICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd2FzbVxXQVNNUmVhZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxBUElcQVBJQ2FsbGJhY2tGdW5jdGlvbi5oIj4KQEAgLTQyOTcsNiAr
NDMwMywxNSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUu
aCI+CiAgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTUZvcm1hdC5oIj4KKyAgICAgIDxGaWx0ZXI+
d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01S
ZWFkZXIuaCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNj
cmlwdENvcmVQcmVMaW5rLmNtZCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YjRhMzI4Yjg2NjRjZDM0YjI0OTE5ZWQxMDIwZTU0ZDZjMjNhMDYxNy4uZjY2MjJhNmMyMWZkYWM4
MmEyODgzZjZiY2UzOWExMGEyMDMyYTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEwMjMsNiArMTAyMywxMSBAQAogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVt
cGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVF
MEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAw
Mzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlG
NzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKKwkJN0Iz
OUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZBMUI2MkRFMjIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NkYxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Gb3JtYXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZC
MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNRm9ybWF0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdB
U01SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzIxQjYzNTc0RDAwMzYw
RkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwICov
OyB9OwogCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOThEMTM0MUI2MENE
NUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovOyB9OwogCQk3Qjk4RDEzNzFCNjBDRDYy
MDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0Mw
MDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0Q4MTg3MTI0QkIwMDk1
NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi87IH07CkBAIC0yNzcxLDYgKzI3NzYsMTEg
QEAKIAkJNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVtcGxhdGVSZWdpc3RyeUtleS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJGRDFCNEFGQjg1MDAwMzg1QzkgLyog
VmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBWYXJpYWJsZUVudmlyb25tZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFibGVFbnZpcm9ubWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2OTFCNjJERTIyMDAzNjBGQjQgLyogV0FT
TU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
QVNNTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3
NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0FTTU1vZHVsZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QjM5Rjc2QjFCNjJERTIyMDAzNjBGQjQgLyogV0FTTUZvcm1hdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdBU01SZWFkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0FTTVJlYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM0MUI2MENENUEwMDIzQjFB
NCAvKiBKU1dBU01Nb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXQVNNTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5OEQx
MzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dBU01Nb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvbWlzZURlZmVycmVkLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMDcsNiArNDMxNywxMSBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5j
cHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICov
LAorCQkJCTdCMzlGNzZCMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNRm9ybWF0LmggKi8sCisJCQkJ
N0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwICovLAorCQkJ
CTdCMzlGNzZBMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8sCisJCQkJ
N0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwICovLAorCQkJCTdCMzlG
NzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IHdhc207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjIxMyw2ICs2MjI4LDcgQEAK
IAkJCQkwRjVBMTI3NDE5MkQ5RkRGMDA4NzY0QTMgLyogREZHRG9lc0dDLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjJCNjZGNTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUz
RiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTdCMzlGNzZFMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyMTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNHbG9iYWxP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDg2MTg5QjFCN0UwMDYzMzIzMSAvKiBK
U0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMx
ODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MzAxLDYgKzYzMTcsNyBAQAogCQkJCUJDMThDNTJFMEUxNkZDRTEwMEIzNDQ2MCAv
KiBMZXhlci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RDNCM0MzMTAxNTlEN0YwMDI4NjVF
NyAvKiBMaW5rQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQzMTczODE0NkJBQzY5MDA3
RTM4OTAgLyogTGlzdGFibGVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjM5Rjc2RjFC
NjJERTMyMDAzNjBGQjQgLyogV0FTTUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdFMkVB
NkIwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMEZDNDVBMTRCRDE1RjUwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDM0NEMDAxOUFEQTQxMDAwNkFDNzJBIC8qIERGR0Jsb2NrV29ya2xpc3Qu
aCBpbiBIZWFkZXJzICovLApAQCAtNjU1OCw2ICs2NTc1LDcgQEAKIAkJCQkwRjVGMDhDRjE0NkM3
NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTdCNjAxODIxNjM5RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJN0IzOUY3NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTYzQjM4MTNGQzZGRTkwMDAyRDlCMiAvKiBWYWx1
ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDI2QTQ4MTQ2MENCQjMwMDEzMUY4RiAv
KiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlDNUU1RjE4RTM1RjVFMDBE
NDMxQzMgLyogRlRMRFdBUkZSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTkyLDYgKzcy
MTAsNyBAQAogCQkJCTBGOUQzMzk2MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFu
VXBQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGNzE3QTBCOENDMDA3NzNBRDgg
LyogREZHRmx1c2hGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0IzOUY3NkQxQjYyREUy
RTAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYz
QTFCRjkxQTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhT
YWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03NjA3LDYgKzc2MjYsNyBAQAogCQkJCTBG
MjRFNTUwMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTYyRDJEMzhGMUFERjEwM0YwMDAyMDZDMSAvKiBGdW5jdGlvblJhcmVEYXRhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNzcwMDkyMTQwMkZGM0MwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0IzOUY3NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdBU01S
ZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ4ODUwRUQyMUMzRDAwQjg5NjE5IC8q
IFNhbXBsaW5nVG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDMEVDNjFBQTBEN0RBMDBC
NkFBRkEgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTVGRDAwNjcxODlBRkU5QzAwNjMzMjMxIC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggOGRiZGM4NWU0NjE1MjI3NjZiN2RmZmRmOTQ0
YmY1MTMwMzhhNGUzYy4uY2VlOGY2N2JmN2IxYzY5MjExMjE2NThhZGMyOTQ3NmI3OGRkMDBmMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU09OT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5j
bHVkZSAiSlNXQVNNTW9kdWxlLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgpAQCAtNTAs
NiArNTEsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1
ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2lu
Y2x1ZGUgIldBU01Nb2R1bGVQYXJzZXIuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ5Miw2ICs0OTQsOSBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJldHVyblR5cGVGb3IoRXhlY1N0
YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBC
YXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJsZUV4
Y2VwdGlvbkZ1enooRXhlY1N0YXRlKik7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhl
Y1N0YXRlKik7CisjZW5kaWYKIAogI2lmIEVOQUJMRShTQU1QTElOR19GTEFHUykKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhFeGVj
U3RhdGUqKTsKQEAgLTY1NSw2ICs2NjAsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiZW5hYmxlRXhjZXB0aW9uRnV6eiIsIGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9u
RnV6eiwgMCk7CiAgICAgICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJsb2FkV2ViQXNzZW1ibHkiLCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseSwg
MSk7CisjZW5kaWYKKwogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJy
YXkoZ2xvYmFsRXhlYygpLCAwKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1
bWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZ2xv
YmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOwpAQCAt
MTE4Myw2ICsxMTkyLDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25F
bmFibGVFeGNlcHRpb25GdXp6KEV4ZWNTdGF0ZSopCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIFN0cmluZyBmaWxlTmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOworICAgIGlmICgh
ZmlsbEJ1ZmZlcldpdGhDb250ZW50c09mRmlsZShmaWxlTmFtZSwgYnVmZmVyKSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IG9wZW4gZmlsZS4iKSkpKTsK
KyAgICBSZWZQdHI8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBX
ZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxWZWN0b3I8
dWludDhfdD4mPihidWZmZXIpLCBmaWxlTmFtZSk7CisgICAgU291cmNlQ29kZSBzb3VyY2Uoc291
cmNlUHJvdmlkZXIpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgSlNXQVNNTW9kdWxl
KiBtb2R1bGUgPSBwYXJzZVdlYkFzc2VtYmx5KGV4ZWMsIHNvdXJjZSwgZXJyb3JNZXNzYWdlKTsK
KyAgICBpZiAoIW1vZHVsZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52
bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIGVycm9yTWVz
c2FnZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1vZHVsZSk7Cit9CisjZW5kaWYK
KwogLy8gVXNlIFNFSCBmb3IgUmVsZWFzZSBidWlsZHMgb25seSB0byBnZXQgcmlkIG9mIHRoZSBj
cmFzaCByZXBvcnQgZGlhbG9nCiAvLyAobHVja2lseSB0aGUgc2FtZSB0ZXN0cyBmYWlsIGluIFJl
bGVhc2UgYW5kIERlYnVnIGJ1aWxkcyBzbyBmYXIpLiBOZWVkIHRvCiAvLyBiZSBpbiBhIHNlcGFy
YXRlIG1haW4gZnVuY3Rpb24gYmVjYXVzZSB0aGUganNjbWFpbiBmdW5jdGlvbiByZXF1aXJlcyBv
YmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJv
dmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaApp
bmRleCBjY2NhYmYzNjk2NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2YjQ3Li5jMjYzYTEzOTA1
NTQzNjc5MDgyOTY4ZjA0OWRkYjFhYWZjY2Y3MTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC05NCw2ICs5NCwzNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgU3RyaW5nIG1fc291cmNlOwogICAgIH07CiAgICAgCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorICAgIGNsYXNzIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgOiBwdWJs
aWMgU291cmNlUHJvdmlkZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxXZWJB
c3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRh
LCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihkYXRhLCB1cmwpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CisgICAgICAgIH0KKwor
ICAgICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gbV9kYXRhOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0
YSwgY29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHVybCwg
VGV4dFBvc2l0aW9uOjptaW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgICAgICwgbV9zb3VyY2Uo
IltXZWJBc3NlbWJseSBzb3VyY2VdIikKKyAgICAgICAgICAgICwgbV9kYXRhKGRhdGEpCisgICAg
ICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKKyAgICAgICAgVmVj
dG9yPHVpbnQ4X3Q+IG1fZGF0YTsKKyAgICB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCiAjZW5kaWYgLy8gU291cmNlUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDNlZmE2NjcwMGYwMzRkNzE1MWI2
MmM4NzEwMTg5ZWM0NGUzZDgzNDAuLmUwNWZhZDA2ZDBmNmJlYjE1YTBkYWRkYmIyOTQ5ZmZjMDc4
MzAyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlDb25zdHJ1
Y3RvcnMuaCIKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmgiCiAjaW5jbHVkZSAi
SlNUeXBlZEFycmF5cy5oIgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIkpT
V2Vha01hcC5oIgogI2luY2x1ZGUgIkpTV2Vha1NldC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3Bl
LmgiCkBAIC0zNDEsNiArMzQyLDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZt
KQogICAgIG1fcHJvbWlzZVByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZVByb3RvdHlw
ZTo6Y3JlYXRlKGV4ZWMsIHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX3Byb21pc2VTdHJ1
Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1Byb21pc2U6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
bV9wcm9taXNlUHJvdG90eXBlLmdldCgpKSk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisg
ICAgbV93YXNtTW9kdWxlU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNXQVNNTW9kdWxlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMpKTsKKyNlbmRpZgorCiAgICAgbV9wYXJzZUludEZ1bmN0aW9u
LnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wYXJzZUludC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlSW50LCBOb0ludHJpbnNp
YykpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wYXJzZUludCwgbV9wYXJzZUludEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IEZ1bmN0aW9u
KTsKIApAQCAtODAxLDYgKzgwNiw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9kb2xsYXJWTVN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQo
JnRoaXNPYmplY3QtPm1faW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fcHJvbWlzZVN0cnVjdHVyZSk7CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3dhc21Nb2R1bGVTdHJ1
Y3R1cmUpOworI2VuZGlmCiAKICNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEUoQ2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICB2aXNp
dG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZSk7IFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4
IDZlNjk1ZDQxYjkwMWUwOTUwYTVhMzU4NTMxZmRlNTY1ZTJjODE2YjEuLjI1ODlmNjk0NjkyOTdh
YmNkMmE0ZTJlZmFkM2IxNjNjZmY5ZjhjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMjQzLDYgKzI0Myw5IEBAIHByb3RlY3RlZDoK
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlOwog
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJl
OwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcHJvbWlzZVN0cnVjdHVyZTsKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV93YXNtTW9k
dWxlU3RydWN0dXJlOworI2VuZGlmCiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBM
RV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwg
anNOYW1lKSBcCiAgICAgV3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZT4gbV8g
IyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZTsgXApAQCAtNDc1LDYgKzQ3OCw5IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgcHRyZGlmZl90IGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlT2Zmc2V0KCkgeyBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX2l0ZXJhdG9yUmVzdWx0U3Ry
dWN0dXJlKTsgfQogICAgIFN0cnVjdHVyZSogcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAg
ICBTdHJ1Y3R1cmUqIHByb21pc2VTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Byb21pc2VT
dHJ1Y3R1cmUuZ2V0KCk7IH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgU3RydWN0dXJl
KiB3YXNtTW9kdWxlU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV93YXNtTW9kdWxlU3RydWN0
dXJlLmdldCgpOyB9CisjZW5kaWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UmVt
b3RlRGVidWdnaW5nRW5hYmxlZChib29sKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHJl
bW90ZURlYnVnZ2luZ0VuYWJsZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01Gb3JtYXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTI4MmFkMmQ4MmIwMDEwNTI2ZmM0YWZhN2M4NWIxNjVl
Njc3ZTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZvcm1hdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01Gb3JtYXRfaAorI2RlZmluZSBXQVNNRm9ybWF0
X2gKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFtZXNwYWNlIEpTQyB7CisKK3N0YXRp
YyBjb25zdCB1aW50MzJfdCB3YXNtTWFnaWNOdW1iZXIgPSAweDZkNzM2MTc3OworCit9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8v
IFdBU01Gb3JtYXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TU1vZHVsZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxl
UGFyc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTQ1NGQxZGNjOTU3OGNiNWQwYzA2YmRhZjY1NmRjNGYx
YTkyOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TU1vZHVsZVBhcnNlci5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
QVNNTW9kdWxlUGFyc2VyLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCisjaW5jbHVkZSAiV0FT
TUZvcm1hdC5oIgorCisjZGVmaW5lIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSkgZG8g
eyBtX2Vycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTsgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgw
KQorI2RlZmluZSBSRUFEX1VOU0lHTkVEX0lOVDMyX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBk
byB7IGlmICghbV9yZWFkZXIucmVhZFVuc2lnbmVkSW50MzIoeCkpIEZBSUxfV0lUSF9NRVNTQUdF
KGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfRkxPQVRfT1JfRkFJTCh4
LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkRmxvYXQoeCkpIEZBSUxfV0lU
SF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfRE9VQkxF
X09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZERvdWJsZSh4
KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUg
RkFJTF9JRl9GQUxTRShjb25kaXRpb24sIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIShjb25kaXRp
b24pKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorCituYW1l
c3BhY2UgSlNDIHsKKworV0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVsZVBhcnNlcihjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UpCisgICAgOiBtX3JlYWRlcihzdGF0aWNfY2FzdDxXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyKj4oc291cmNlLnByb3ZpZGVyKCkpLT5kYXRhKCkpCit7Cit9CisKK0pT
V0FTTU1vZHVsZSogV0FTTU1vZHVsZVBhcnNlcjo6cGFyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBKU1dBU01Nb2R1
bGUqIG1vZHVsZSA9IEpTV0FTTU1vZHVsZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPndhc21N
b2R1bGVTdHJ1Y3R1cmUoKSk7CisgICAgcGFyc2VNb2R1bGUoKTsKKyAgICBpZiAoIW1fZXJyb3JN
ZXNzYWdlLmlzTnVsbCgpKSB7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IG1fZXJyb3JNZXNzYWdl
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIG1vZHVsZTsKK30K
KworYm9vbCBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZU1vZHVsZSgpCit7CisgICAgdWludDMyX3Qg
bWFnaWNOdW1iZXI7CisgICAgUkVBRF9VTlNJR05FRF9JTlQzMl9PUl9GQUlMKG1hZ2ljTnVtYmVy
LCAiQ2Fubm90IHJlYWQgdGhlIG1hZ2ljIG51bWJlci4iKTsKKyAgICBGQUlMX0lGX0ZBTFNFKG1h
Z2ljTnVtYmVyID09IHdhc21NYWdpY051bWJlciwgIlRoZSBtYWdpYyBudW1iZXIgaXMgaW5jb3Jy
ZWN0LiIpOworCisgICAgLy8gVE9ETzogcGFyc2UgdGhlIHJlc3QKKworICAgIHJldHVybiB0cnVl
OworfQorCitKU1dBU01Nb2R1bGUqIHBhcnNlV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIFdB
U01Nb2R1bGVQYXJzZXIgV0FTTU1vZHVsZVBhcnNlcihzb3VyY2UpOworICAgIHJldHVybiBXQVNN
TW9kdWxlUGFyc2VyLnBhcnNlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNTW9kdWxlUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9k
dWxlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVkNmEzMTc4OWUxMzEwZDQ3NzJkNTgxMjhlZGFhNGQ2
NmQzYzQyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01Nb2R1bGVQYXJzZXIuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXQVNNTW9kdWxlUGFyc2VyX2gKKyNkZWZp
bmUgV0FTTU1vZHVsZVBhcnNlcl9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNs
dWRlICJXQVNNUmVhZGVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKU0dsb2JhbE9iamVjdDsK
K2NsYXNzIEpTV0FTTU1vZHVsZTsKK2NsYXNzIFNvdXJjZUNvZGU7CitjbGFzcyBWTTsKKworY2xh
c3MgV0FTTU1vZHVsZVBhcnNlciB7CitwdWJsaWM6CisgICAgV0FTTU1vZHVsZVBhcnNlcihjb25z
dCBTb3VyY2VDb2RlJik7CisgICAgSlNXQVNNTW9kdWxlKiBwYXJzZShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIGJvb2wgcGFyc2VN
b2R1bGUoKTsKKworICAgIFdBU01SZWFkZXIgbV9yZWFkZXI7CisgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOworfTsKKworSlNfRVhQT1JUX1BSSVZBVEUgSlNXQVNNTW9kdWxlKiBwYXJzZVdlYkFz
c2VtYmx5KEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSk7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCisjZW5kaWYgLy8gV0FTTU1vZHVsZVBhcnNlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01SZWFkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YmY5Mzk0MmJhYzFiZDQ5MmJmNzQzMjgz
MGJlNzExMGJkYWE5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNUmVhZGVyLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldBU01SZWFkZXIuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2RlZmluZSBDSEVD
S19SRUFEKGxlbmd0aCkgZG8geyBpZiAobV9jdXJzb3IgKyBsZW5ndGggPiBtX2J1ZmZlci5lbmQo
KSkgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgwKQorCituYW1lc3BhY2UgSlNDIHsKKworYm9vbCBX
QVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMih1aW50MzJfdCYgcmVzdWx0KQoreworICAgIENI
RUNLX1JFQUQoNCk7CisgICAgcmVzdWx0ID0gbV9jdXJzb3JbMF0gfCBtX2N1cnNvclsxXSA8PCA4
IHwgbV9jdXJzb3JbMl0gPDwgMTYgfCBtX2N1cnNvclszXSA8PCAyNDsKKyAgICBtX2N1cnNvciAr
PSA0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdBU01SZWFkZXI6OnJlYWRGbG9hdChm
bG9hdCYgcmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoNCk7CisgICAgdW5pb24geworICAgICAg
ICB1aW50OF90IGJ5dGVzWzRdOworICAgICAgICBmbG9hdCBmbG9hdFZhbHVlOworICAgIH0gdSA9
IHsKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgeyBtX2N1cnNvclszXSwgbV9jdXJzb3Jb
Ml0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclswXSB9CisjZWxzZQorICAgICAgICB7IG1fY3Vyc29y
WzBdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzNdIH0KKyNlbmRpZgorICAg
IH07CisgICAgcmVzdWx0ID0gdS5mbG9hdFZhbHVlOworICAgIG1fY3Vyc29yICs9IDQ7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZERvdWJsZShkb3VibGUmIHJl
c3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDgpOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhf
dCBieXRlc1s4XTsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgIH0gdSA9IHsKKyNp
ZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgeyBtX2N1cnNvcls3XSwgbV9jdXJzb3JbNl0sIG1f
Y3Vyc29yWzVdLCBtX2N1cnNvcls0XSwgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNv
clsxXSwgbV9jdXJzb3JbMF0gfQorI2Vsc2UKKyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJz
b3JbMV0sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclszXSwgbV9jdXJzb3JbNF0sIG1fY3Vyc29yWzVd
LCBtX2N1cnNvcls2XSwgbV9jdXJzb3JbN10gfQorI2VuZGlmCisgICAgfTsKKyAgICByZXN1bHQg
PSB1LmRvdWJsZVZhbHVlOworICAgIG1fY3Vyc29yICs9IDg7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjZGVhMmI5
MmQ4MmRlNmRhYTc4Y2I3ZDhmMzMyYTIzZjNlZmZjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTVJl
YWRlcl9oCisjZGVmaW5lIFdBU01SZWFkZXJfaAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgV0FT
TVJlYWRlciB7CitwdWJsaWM6CisgICAgV0FTTVJlYWRlcihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlcihidWZmZXIpCisgICAgICAgICwgbV9jdXJzb3Io
YnVmZmVyLmRhdGEoKSkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCByZWFkVW5zaWduZWRJbnQz
Mih1aW50MzJfdCYgcmVzdWx0KTsKKyAgICBib29sIHJlYWRGbG9hdChmbG9hdCYgcmVzdWx0KTsK
KyAgICBib29sIHJlYWREb3VibGUoZG91YmxlJiByZXN1bHQpOworCitwcml2YXRlOgorICAgIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgbV9idWZmZXI7CisgICAgY29uc3QgdWludDhfdCogbV9jdXJz
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NF
TUJMWSkKKworI2VuZGlmIC8vIFdBU01SZWFkZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257686</attachid>
            <date>2015-07-28 14:19:02 -0700</date>
            <delta_ts>2015-07-28 14:34:42 -0700</delta_ts>
            <desc>rename WASMFormat.h to WASMMagicNumber.h</desc>
            <filename>bug-147293-20150728141741.patch</filename>
            <type>text/plain</type>
            <size>32998</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NjNjNDVhMjg3NzljMjdlNmU3NzM2OGJiZjFiNmU0MjAwNDBlMDUzLi42NmRjNTk1NmEyZDZkYTUz
ZDg0ODFjYmUzMTU0ZTczNmIzOWM3NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNS0wNy0yOCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IFdlYkFzc2VtYmx5IG1vZHVsZSBwYXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2Vk
IGJ5IHBhY2stYXNtanMKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9w
b2x5ZmlsbC1wcm90b3R5cGUtMT4uIFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhl
IG1hZ2ljIG51bWJlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0
aGUgcmVzdCB3aWxsIGJlCisgICAgICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0
aW9uTG9hZFdlYkFzc2VtYmx5KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoK
KyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0Ojp3YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNt
L1dBU01NYWdpY051bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJz
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVs
ZVBhcnNlcik6CisgICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlKToKKyAgICAg
ICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VNb2R1bGUpOgorICAgICAgICAoSlNDOjpw
YXJzZVdlYkFzc2VtYmx5KToKKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuaDogQWRk
ZWQuCisgICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OldBU01SZWFkZXI6OnJlYWRVbnNpZ25lZEludDMyKToKKyAgICAgICAgKEpTQzo6V0FTTVJlYWRl
cjo6cmVhZEZsb2F0KToKKyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6cmVhZERvdWJsZSk6Cisg
ICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNUmVh
ZGVyOjpXQVNNUmVhZGVyKToKKwogMjAxNS0wNy0yOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIERGRzo6UHV0U3RhY2tTaW5raW5nUGhhc2Ugc2hvdWxkIGJlIG1v
cmUgYWdncmVzc2l2ZSBhYm91dCBpdHMgIm5vIEdldFN0YWNrIHVudGlsIHB1dCIgcnVsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGMzNjU0NzVkZTRlOTU1NDE5MjZhMjA1
YmUzZDA1ZGQ5YTA2Y2I4OGUuLmJhMzQyZTE5OTkwYTYyMDMyZTY5Yzk2YWM2ZjRhY2M3NDkxNDAx
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQxMSw2ICs0MTEsOCBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHRvb2xzL0pTRG9sbGFyVk1Qcm90b3R5
cGUuY3BwCiAKICAgICB3YXNtL0pTV0FTTU1vZHVsZS5jcHAKKyAgICB3YXNtL1dBU01Nb2R1bGVQ
YXJzZXIuY3BwCisgICAgd2FzbS9XQVNNUmVhZGVyLmNwcAogCiAgICAgeWFyci9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAKICAgICB5YXJyL1lhcnJDYW5vbmljYWxpemVVQ1MyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggMjQ0YmExOTQxNDk4ZTIzODAyYWFmNGY2
MzgwODA5MWM0ZDFlN2FkYS4uNjRhODgyMjBlMzljZTI5Y2Y3MzYyZGQ2YTNhODZkYjU3N2YzNTc2
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC04NjksNiArODY5
LDggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk0uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJWTVByb3RvdHlwZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5jcHAi
IC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3Bw
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJlc3Npb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJJbnRlcnByZXRlci5j
cHAiIC8+CkBAIC0xNzM2LDYgKzE3MzgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
dG9vbHNcUHJvZmlsZVRyZWVOb2RlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0
b29sc1xUaWVyZWRNTWFwQXJyYXkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdh
c21cSlNXQVNNTW9kdWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdB
U01NYWdpY051bWJlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNN
TW9kdWxlUGFyc2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01S
ZWFkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJl
c3Npb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcWWFyci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5oIiAv
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IGM1YmQ1NDk4ZGYzYTg1N2JiOGU1ZGQ5Y2IwOGQxY2IzYTk2ZGVkN2MuLjFkZDdmMzdjZDEx
MDg2ZGE5NzQ2YzRjNjEzNzA0MjcyOWQwYTY3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE3OTgsNiArMTc5OCwxMiBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIj4KICAgICAgIDxG
aWx0ZXI+d2FzbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdh
c21cV0FTTVJlYWRlci5jcHAiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cQVBJXEFQSUNhbGxiYWNrRnVuY3Rpb24uaCI+CkBAIC00MzAzLDYgKzQzMDks
MTUgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiPgog
ICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01NYWdpY051bWJlci5oIj4KKyAgICAgIDxGaWx0ZXI+
d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01S
ZWFkZXIuaCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNj
cmlwdENvcmVQcmVMaW5rLmNtZCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YjRhY2MxOTQwMTg1OTM0NzIzODc1YzAyNWI1NmE2NTkzNWJhZTQ4Mi4uZjgzM2EwMWFiNDA0NGFj
ODQ0NGE0NTlmMWNlMDRkYzgyOWYxMjE1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEwMjMsNiArMTAyMywxMSBAQAogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVt
cGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVF
MEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAw
Mzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlG
NzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKKwkJN0Iz
OUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZBMUI2MkRFMjIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NkYxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01NYWdpY051
bWJlci5oLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjM5Rjc2QjFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1hZ2ljTnVtYmVyLmguaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3MDFCNjJERTMy
MDAzNjBGQjQgLyogV0FTTVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3
MjFCNjM1NzREMDAzNjBGQjQgLyogV0FTTVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FT
TVJlYWRlci5jcHAgKi87IH07CiAJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01N
b2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi87IH07CiAJCTdC
OThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAv
KiBKU1dBU01Nb2R1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzAwOENEQTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhD
RDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKQEAgLTI3
NzMsNiArMjc3OCwxMSBAQAogCQk3MEVDQTYwNDFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVS
ZWdpc3RyeUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wbGF0ZVJl
Z2lzdHJ5S2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RUUwQkZEMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZp
cm9ubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYXJpYWJsZUVudmly
b25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzY5MUI2MkRFMjIw
MDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdBU01Nb2R1bGVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QjM5Rjc2QTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNTW9kdWxlUGFyc2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzZCMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNN
TWFnaWNOdW1iZXIuaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNTWFn
aWNOdW1iZXIuaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2QzFCNjJE
RTIyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXQVNNUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzcx
MUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdBU01SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01N
b2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXQVNNTW9kdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4Q0Q4MTg3MTI0QkIwMDk1NUMyNCAv
KiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1Byb21pc2VEZWZlcnJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MzExLDYgKzQzMjEsMTEgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdCOThEMTM0MUI2MENE
NUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovLAogCQkJCTdCOThEMTM1MUI2MENENUEw
MDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLywKKwkJCQk3QjM5Rjc2QjFCNjJERTIyMDAzNjBG
QjQgLyogV0FTTU1hZ2ljTnVtYmVyLmguaCAqLywKKwkJCQk3QjM5Rjc2OTFCNjJERTIyMDAzNjBG
QjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi8sCisJCQkJN0IzOUY3NkExQjYyREUyMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAqLywKKwkJCQk3QjM5Rjc3MTFCNjM1NzRCMDAzNjBG
QjQgLyogV0FTTVJlYWRlci5jcHAgKi8sCisJCQkJN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8q
IFdBU01SZWFkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2FzbTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC02MjIwLDYgKzYyMzUsNyBAQAogCQkJCTBGNUExMjc0MTkyRDlGREYw
MDg3NjRBMyAvKiBERkdEb2VzR0MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkY1MTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQjY2RjYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0IzOUY3NkUxQjYy
REUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDIxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVGRDAwODYxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4MjQ3NDQ3MDBDQzM4NDMgLyogSlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLywKQEAgLTYzMDgsNiArNjMyNCw3
IEBACiAJCQkJQkMxOEM1MkUwRTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZEM0IzQzMxMDE1OUQ3RjAwMjg2NUU3IC8qIExpbmtCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDMxNzM4MTQ2QkFDNjkwMDdFMzg5MCAvKiBMaXN0YWJsZUhhbmRs
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCMzlGNzZGMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNN
TWFnaWNOdW1iZXIuaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdFMkVBNkIwRkI0NjBDRjAwNjAx
RjA2IC8qIExpdGVyYWxQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEZDNDVBMTRCRDE1
RjUwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
M0NEMDAxOUFEQTQxMDAwNkFDNzJBIC8qIERGR0Jsb2NrV29ya2xpc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtNjU2NSw2ICs2NTgyLDcgQEAKIAkJCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyog
VW5jb25kaXRpb25hbEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCNjAxODIxNjM5
RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0IzOUY3NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOTYzQjM4MTNGQzZGRTkwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDI2QTQ4MTQ2MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlDNUU1RjE4RTM1RjVFMDBENDMxQzMgLyogRlRMRFdB
UkZSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTk5LDYgKzcyMTcsNyBAQAogCQkJCTBG
OUQzMzk2MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFuVXBQaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0Q4OUNGNzE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3Jt
YXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0IzOUY3NkQxQjYyREUyRTAwMzYwRkI0IC8qIFdB
U01Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzQTFCRjkxQTlFQ0I3RDAw
MERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC03NjE0LDYgKzc2MzMsNyBAQAogCQkJCTBGMjRFNTUwMTdFRTI3NDkw
MEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyRDJEMzhGMUFERjEw
M0YwMDAyMDZDMSAvKiBGdW5jdGlvblJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NzcwMDkyMTQwMkZGM0MwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJN0IzOUY3NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQyOUQ4ODUwRUQyMUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDMEVDNjFBQTBEN0RBMDBCNkFBRkEgLyogU3RyaW5n
SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNjcxODlBRkU5
QzAwNjMzMjMxIC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggOGRiZGM4NWU0NjE1MjI3NjZiN2RmZmRmOTQ0YmY1MTMwMzhhNGUzYy4u
Y2VlOGY2N2JmN2IxYzY5MjExMjE2NThhZGMyOTQ3NmI3OGRkMDBmMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9k
dWxlLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5n
VG9vbC5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgpAQCAtNTAsNiArNTEsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJV
dGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldBU01Nb2R1
bGVQYXJzZXIuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs
dWRlIDxzdGRsaWIuaD4KQEAgLTQ5Miw2ICs0OTQsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJldHVyblR5cGVGb3IoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0
aW9uUmFuZ2VzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enooRXhl
Y1N0YXRlKik7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhlY1N0YXRlKik7CisjZW5k
aWYKIAogI2lmIEVOQUJMRShTQU1QTElOR19GTEFHUykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhFeGVjU3RhdGUqKTsKQEAgLTY1
NSw2ICs2NjAsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5h
YmxlRXhjZXB0aW9uRnV6eiIsIGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9uRnV6eiwgMCk7CiAgICAg
ICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJs
b2FkV2ViQXNzZW1ibHkiLCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseSwgMSk7CisjZW5kaWYKKwog
ICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsRXhlYygp
LCAwKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgpOyAr
K2kpCiAgICAgICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsRXhlYygpLCBpLCBq
c1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOwpAQCAtMTE4Myw2ICsxMTkyLDIz
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25G
dXp6KEV4ZWNTdGF0ZSopCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBleGVjKQoreworICAgIFN0
cmluZyBmaWxlTmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKKyAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOworICAgIGlmICghZmlsbEJ1ZmZlcldpdGhD
b250ZW50c09mRmlsZShmaWxlTmFtZSwgYnVmZmVyKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IG9wZW4gZmlsZS4iKSkpKTsKKyAgICBSZWZQdHI8V2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxWZWN0b3I8dWludDhfdD4mPihidWZm
ZXIpLCBmaWxlTmFtZSk7CisgICAgU291cmNlQ29kZSBzb3VyY2Uoc291cmNlUHJvdmlkZXIpOwor
ICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBwYXJz
ZVdlYkFzc2VtYmx5KGV4ZWMsIHNvdXJjZSwgZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAoIW1vZHVs
ZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZSkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1vZHVsZSk7Cit9CisjZW5kaWYKKwogLy8gVXNlIFNFSCBm
b3IgUmVsZWFzZSBidWlsZHMgb25seSB0byBnZXQgcmlkIG9mIHRoZSBjcmFzaCByZXBvcnQgZGlh
bG9nCiAvLyAobHVja2lseSB0aGUgc2FtZSB0ZXN0cyBmYWlsIGluIFJlbGVhc2UgYW5kIERlYnVn
IGJ1aWxkcyBzbyBmYXIpLiBOZWVkIHRvCiAvLyBiZSBpbiBhIHNlcGFyYXRlIG1haW4gZnVuY3Rp
b24gYmVjYXVzZSB0aGUganNjbWFpbiBmdW5jdGlvbiByZXF1aXJlcyBvYmplY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCBjY2NhYmYzNjk2
NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2YjQ3Li5jMjYzYTEzOTA1NTQzNjc5MDgyOTY4ZjA0
OWRkYjFhYWZjY2Y3MTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oCkBAIC05NCw2ICs5NCwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
U3RyaW5nIG1fc291cmNlOwogICAgIH07CiAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
ICAgIGNsYXNzIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlk
ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhLCBjb25zdCBTdHJpbmcm
IHVybCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcihkYXRhLCB1cmwpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZp
cnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGRhdGEoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbV9kYXRhOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgU3RyaW5n
JiB1cmwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHVybCwgVGV4dFBvc2l0aW9uOjpt
aW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgICAgICwgbV9zb3VyY2UoIltXZWJBc3NlbWJseSBz
b3VyY2VdIikKKyAgICAgICAgICAgICwgbV9kYXRhKGRhdGEpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1f
ZGF0YTsKKyAgICB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
U291cmNlUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IDI2MTgzZWY5ZWZlYTQ3OTE0NjExNjVhOTYyOTVlYzQ0NmE5
MTU5MmQuLjUxMWE1ZTliZTY4ZDhjMGMwMzgzNjlmNGY4YzRiODgxMjU1OGJkZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTkz
LDYgKzkzLDcgQEAKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCIKICNpbmNs
dWRlICJKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5cy5o
IgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2lu
Y2x1ZGUgIkpTV2Vha1NldC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCkBAIC0zNDIsNiAr
MzQzLDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIG1fcHJvbWlz
ZVByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMs
IHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX3Byb21pc2VTdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBKU1Byb21pc2U6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9wcm9taXNlUHJvdG90
eXBlLmdldCgpKSk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgbV93YXNtTW9kdWxl
U3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNXQVNNTW9kdWxlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMpKTsKKyNlbmRpZgorCiAgICAgbV9wYXJzZUludEZ1bmN0aW9uLnNldCh2bSwgdGhpcywg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUlu
dC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlSW50LCBOb0ludHJpbnNpYykpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUludCwgbV9w
YXJzZUludEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKIApAQCAtODA0LDYg
KzgwOSw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9kb2xsYXJWTVN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
aW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fcHJvbWlzZVN0cnVjdHVyZSk7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3dhc21Nb2R1bGVTdHJ1Y3R1cmUpOworI2VuZGlm
CiAKICNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEUoQ2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZSk7IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDk5ODc5ZDEyYjRhNTEx
ODVkNDM5ZjlhY2E4N2E5NmYxM2E5MDU1YzUuLmU5NDg1MGVmOTA1MTQ3MTg4ODVlMDYwMjZiYjVi
NGIxZDMxM2FkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtMjQ0LDYgKzI0NCw5IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJp
ZXI8U3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlOwogICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlOwogICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fcHJvbWlzZVN0cnVjdHVyZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV93YXNtTW9kdWxlU3RydWN0dXJlOwor
I2VuZGlmCiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAg
V3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZT4gbV8gIyMgbG93ZXJOYW1lICMj
IFByb3RvdHlwZTsgXApAQCAtNDc3LDYgKzQ4MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgcHRy
ZGlmZl90IGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlKTsgfQogICAg
IFN0cnVjdHVyZSogcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUqIHBy
b21pc2VTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Byb21pc2VTdHJ1Y3R1cmUuZ2V0KCk7
IH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgU3RydWN0dXJlKiB3YXNtTW9kdWxlU3Ry
dWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV93YXNtTW9kdWxlU3RydWN0dXJlLmdldCgpOyB9Cisj
ZW5kaWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UmVtb3RlRGVidWdnaW5nRW5h
YmxlZChib29sKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHJlbW90ZURlYnVnZ2luZ0Vu
YWJsZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01NYWdpY051bWJlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1hZ2ljTnVt
YmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGFkZDJmYTI3ZjI4YjNmYTBiM2JjYjkyNzZkZDk3NTA5YzZhMDY0
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01NYWdp
Y051bWJlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01NYWdpY051bWJlcl9oCisjZGVmaW5lIFdBU01N
YWdpY051bWJlcl9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFjZSBKU0Mg
eworCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2FzbU1hZ2ljTnVtYmVyID0gMHg2ZDczNjE3NzsK
KworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
KyNlbmRpZiAvLyBXQVNNTWFnaWNOdW1iZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGQzMGY1MzhjNzRmMDg5ZDRm
YTVlNjkzZjFkMzEyOTUzZjE0YmYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXQVNNTW9kdWxlUGFyc2VyLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgi
CisjaW5jbHVkZSAiV0FTTU1hZ2ljTnVtYmVyLmgiCisKKyNkZWZpbmUgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKSBkbyB7IG1fZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlOyByZXR1
cm4gZmFsc2U7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfVU5TSUdORURfSU5UMzJfT1JfRkFJ
TCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkVW5zaWduZWRJbnQzMih4
KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUg
UkVBRF9GTE9BVF9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJl
YWRGbG9hdCh4KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkK
KyNkZWZpbmUgUkVBRF9ET1VCTEVfT1JfRkFJTCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFt
X3JlYWRlci5yZWFkRG91YmxlKHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9
IHdoaWxlICgwKQorI2RlZmluZSBGQUlMX0lGX0ZBTFNFKGNvbmRpdGlvbiwgZXJyb3JNZXNzYWdl
KSBkbyB7IGlmICghKGNvbmRpdGlvbikpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7
IH0gd2hpbGUgKDApCisKK25hbWVzcGFjZSBKU0MgeworCitXQVNNTW9kdWxlUGFyc2VyOjpXQVNN
TW9kdWxlUGFyc2VyKGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKKyAgICA6IG1fcmVhZGVyKHN0
YXRpY19jYXN0PFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIqPihzb3VyY2UucHJvdmlkZXIoKSkt
PmRhdGEoKSkKK3sKK30KKworSlNXQVNNTW9kdWxlKiBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cmluZyYgZXJyb3JNZXNzYWdl
KQoreworICAgIEpTV0FTTU1vZHVsZSogbW9kdWxlID0gSlNXQVNNTW9kdWxlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdC0+d2FzbU1vZHVsZVN0cnVjdHVyZSgpKTsKKyAgICBwYXJzZU1vZHVsZSgp
OworICAgIGlmICghbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkpIHsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gbV9lcnJvck1lc3NhZ2U7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICByZXR1cm4gbW9kdWxlOworfQorCitib29sIFdBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9kdWxl
KCkKK3sKKyAgICB1aW50MzJfdCBtYWdpY051bWJlcjsKKyAgICBSRUFEX1VOU0lHTkVEX0lOVDMy
X09SX0ZBSUwobWFnaWNOdW1iZXIsICJDYW5ub3QgcmVhZCB0aGUgbWFnaWMgbnVtYmVyLiIpOwor
ICAgIEZBSUxfSUZfRkFMU0UobWFnaWNOdW1iZXIgPT0gd2FzbU1hZ2ljTnVtYmVyLCAiVGhlIG1h
Z2ljIG51bWJlciBpcyBpbmNvcnJlY3QuIik7CisKKyAgICAvLyBUT0RPOiBwYXJzZSB0aGUgcmVz
dAorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0pTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJs
eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpCit7CisgICAgV0FTTU1vZHVsZVBhcnNlciBXQVNNTW9kdWxlUGFyc2VyKHNvdXJj
ZSk7CisgICAgcmV0dXJuIFdBU01Nb2R1bGVQYXJzZXIucGFyc2UoZXhlYy0+dm0oKSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBlcnJvck1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQ2YTMxNzg5ZTEz
MTBkNDc3MmQ1ODEyOGVkYWE0ZDY2ZDNjNDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01N
b2R1bGVQYXJzZXJfaAorI2RlZmluZSBXQVNNTW9kdWxlUGFyc2VyX2gKKworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldBU01SZWFkZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKK2Ns
YXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNXQVNNTW9kdWxlOworY2xhc3MgU291cmNlQ29k
ZTsKK2NsYXNzIFZNOworCitjbGFzcyBXQVNNTW9kdWxlUGFyc2VyIHsKK3B1YmxpYzoKKyAgICBX
QVNNTW9kdWxlUGFyc2VyKGNvbnN0IFNvdXJjZUNvZGUmKTsKKyAgICBKU1dBU01Nb2R1bGUqIHBh
cnNlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisKK3ByaXZh
dGU6CisgICAgYm9vbCBwYXJzZU1vZHVsZSgpOworCisgICAgV0FTTVJlYWRlciBtX3JlYWRlcjsK
KyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cit9OworCitKU19FWFBPUlRfUFJJVkFURSBKU1dB
U01Nb2R1bGUqIHBhcnNlV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYs
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNTW9kdWxlUGFyc2VyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiZjkz
OTQyYmFjMWJkNDkyYmY3NDMyODMwYmU3MTEwYmRhYTk3NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwCkBAIC0wLDAgKzEsODEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0FTTVJlYWRlci5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCisjZGVmaW5lIENIRUNLX1JFQUQobGVuZ3RoKSBkbyB7IGlmIChtX2N1cnNvciArIGxl
bmd0aCA+IG1fYnVmZmVyLmVuZCgpKSByZXR1cm4gZmFsc2U7IH0gd2hpbGUgKDApCisKK25hbWVz
cGFjZSBKU0MgeworCitib29sIFdBU01SZWFkZXI6OnJlYWRVbnNpZ25lZEludDMyKHVpbnQzMl90
JiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg0KTsKKyAgICByZXN1bHQgPSBtX2N1cnNvclsw
XSB8IG1fY3Vyc29yWzFdIDw8IDggfCBtX2N1cnNvclsyXSA8PCAxNiB8IG1fY3Vyc29yWzNdIDw8
IDI0OworICAgIG1fY3Vyc29yICs9IDQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FT
TVJlYWRlcjo6cmVhZEZsb2F0KGZsb2F0JiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg0KTsK
KyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ4X3QgYnl0ZXNbNF07CisgICAgICAgIGZsb2F0IGZs
b2F0VmFsdWU7CisgICAgfSB1ID0geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1f
Y3Vyc29yWzNdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzBdIH0KKyNlbHNl
CisgICAgICAgIHsgbV9jdXJzb3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsyXSwgbV9jdXJz
b3JbM10gfQorI2VuZGlmCisgICAgfTsKKyAgICByZXN1bHQgPSB1LmZsb2F0VmFsdWU7CisgICAg
bV9jdXJzb3IgKz0gNDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXQVNNUmVhZGVyOjpy
ZWFkRG91YmxlKGRvdWJsZSYgcmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoOCk7CisgICAgdW5p
b24geworICAgICAgICB1aW50OF90IGJ5dGVzWzhdOworICAgICAgICBkb3VibGUgZG91YmxlVmFs
dWU7CisgICAgfSB1ID0geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1fY3Vyc29y
WzddLCBtX2N1cnNvcls2XSwgbV9jdXJzb3JbNV0sIG1fY3Vyc29yWzRdLCBtX2N1cnNvclszXSwg
bV9jdXJzb3JbMl0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclswXSB9CisjZWxzZQorICAgICAgICB7
IG1fY3Vyc29yWzBdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzNdLCBtX2N1
cnNvcls0XSwgbV9jdXJzb3JbNV0sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls3XSB9CisjZW5kaWYK
KyAgICB9OworICAgIHJlc3VsdCA9IHUuZG91YmxlVmFsdWU7CisgICAgbV9jdXJzb3IgKz0gODsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNUmVhZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2NkZWEyYjkyZDgyZGU2ZGFhNzhjYjdkOGYzMzJhMjNmM2VmZmNlMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXQVNNUmVhZGVyX2gKKyNkZWZpbmUgV0FTTVJlYWRlcl9oCisKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBXQVNNUmVhZGVyIHsKK3B1YmxpYzoKKyAgICBXQVNNUmVhZGVyKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikK
KyAgICAgICAgLCBtX2N1cnNvcihidWZmZXIuZGF0YSgpKQorICAgIHsKKyAgICB9CisKKyAgICBi
b29sIHJlYWRVbnNpZ25lZEludDMyKHVpbnQzMl90JiByZXN1bHQpOworICAgIGJvb2wgcmVhZEZs
b2F0KGZsb2F0JiByZXN1bHQpOworICAgIGJvb2wgcmVhZERvdWJsZShkb3VibGUmIHJlc3VsdCk7
CisKK3ByaXZhdGU6CisgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtX2J1ZmZlcjsKKyAgICBj
b25zdCB1aW50OF90KiBtX2N1cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTVJlYWRlcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257688</attachid>
            <date>2015-07-28 14:34:48 -0700</date>
            <delta_ts>2015-07-28 23:07:10 -0700</delta_ts>
            <desc>rename WASMFormat.h to WASMMagicNumber.h</desc>
            <filename>bug-147293-20150728143326.patch</filename>
            <type>text/plain</type>
            <size>32998</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NjNjNDVhMjg3NzljMjdlNmU3NzM2OGJiZjFiNmU0MjAwNDBlMDUzLi42NmRjNTk1NmEyZDZkYTUz
ZDg0ODFjYmUzMTU0ZTczNmIzOWM3NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNS0wNy0yOCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IFdlYkFzc2VtYmx5IG1vZHVsZSBwYXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2Vk
IGJ5IHBhY2stYXNtanMKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9w
b2x5ZmlsbC1wcm90b3R5cGUtMT4uIFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhl
IG1hZ2ljIG51bWJlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0
aGUgcmVzdCB3aWxsIGJlCisgICAgICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0
aW9uTG9hZFdlYkFzc2VtYmx5KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoK
KyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0Ojp3YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNt
L1dBU01NYWdpY051bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJz
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVs
ZVBhcnNlcik6CisgICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlKToKKyAgICAg
ICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VNb2R1bGUpOgorICAgICAgICAoSlNDOjpw
YXJzZVdlYkFzc2VtYmx5KToKKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuaDogQWRk
ZWQuCisgICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OldBU01SZWFkZXI6OnJlYWRVbnNpZ25lZEludDMyKToKKyAgICAgICAgKEpTQzo6V0FTTVJlYWRl
cjo6cmVhZEZsb2F0KToKKyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6cmVhZERvdWJsZSk6Cisg
ICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNUmVh
ZGVyOjpXQVNNUmVhZGVyKToKKwogMjAxNS0wNy0yOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIERGRzo6UHV0U3RhY2tTaW5raW5nUGhhc2Ugc2hvdWxkIGJlIG1v
cmUgYWdncmVzc2l2ZSBhYm91dCBpdHMgIm5vIEdldFN0YWNrIHVudGlsIHB1dCIgcnVsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGMzNjU0NzVkZTRlOTU1NDE5MjZhMjA1
YmUzZDA1ZGQ5YTA2Y2I4OGUuLmJhMzQyZTE5OTkwYTYyMDMyZTY5Yzk2YWM2ZjRhY2M3NDkxNDAx
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQxMSw2ICs0MTEsOCBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHRvb2xzL0pTRG9sbGFyVk1Qcm90b3R5
cGUuY3BwCiAKICAgICB3YXNtL0pTV0FTTU1vZHVsZS5jcHAKKyAgICB3YXNtL1dBU01Nb2R1bGVQ
YXJzZXIuY3BwCisgICAgd2FzbS9XQVNNUmVhZGVyLmNwcAogCiAgICAgeWFyci9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAKICAgICB5YXJyL1lhcnJDYW5vbmljYWxpemVVQ1MyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggMjQ0YmExOTQxNDk4ZTIzODAyYWFmNGY2
MzgwODA5MWM0ZDFlN2FkYS4uNjRhODgyMjBlMzljZTI5Y2Y3MzYyZGQ2YTNhODZkYjU3N2YzNTc2
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC04NjksNiArODY5
LDggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk0uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJWTVByb3RvdHlwZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5jcHAi
IC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3Bw
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJlc3Npb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJJbnRlcnByZXRlci5j
cHAiIC8+CkBAIC0xNzM2LDYgKzE3MzgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
dG9vbHNcUHJvZmlsZVRyZWVOb2RlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0
b29sc1xUaWVyZWRNTWFwQXJyYXkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdh
c21cSlNXQVNNTW9kdWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdB
U01NYWdpY051bWJlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNN
TW9kdWxlUGFyc2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01S
ZWFkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJl
c3Npb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHlhcnJcWWFyci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5oIiAv
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IGM1YmQ1NDk4ZGYzYTg1N2JiOGU1ZGQ5Y2IwOGQxY2IzYTk2ZGVkN2MuLjFkZDdmMzdjZDEx
MDg2ZGE5NzQ2YzRjNjEzNzA0MjcyOWQwYTY3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE3OTgsNiArMTc5OCwxMiBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIj4KICAgICAgIDxG
aWx0ZXI+d2FzbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdh
c21cV0FTTVJlYWRlci5jcHAiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cQVBJXEFQSUNhbGxiYWNrRnVuY3Rpb24uaCI+CkBAIC00MzAzLDYgKzQzMDks
MTUgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiPgog
ICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01NYWdpY051bWJlci5oIj4KKyAgICAgIDxGaWx0ZXI+
d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01S
ZWFkZXIuaCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNj
cmlwdENvcmVQcmVMaW5rLmNtZCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YjRhY2MxOTQwMTg1OTM0NzIzODc1YzAyNWI1NmE2NTkzNWJhZTQ4Mi4uZjg3NTM1MDRlYzRlMjY0
MzllOTlhZTc4ZmNkMjAxYjcyMDU5NTY4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEwMjMsNiArMTAyMywxMSBAQAogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVt
cGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVF
MEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAw
Mzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlG
NzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKKwkJN0Iz
OUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZBMUI2MkRFMjIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZD
MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdB
U01SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwICovOyB9OworCQk3
QjdBNUUyNzFCNjgyODhDMDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjdBNUUyNjFCNjgyODg0MDAyN0NB
RDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0I5OEQxMzYxQjYwQ0Q1RjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4
RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLzsgfTsKIAkJN0I5OEQx
MzcxQjYwQ0Q2MjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENEODE4
NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwICovOyB9OwpAQCAtMjc3Myw2
ICsyNzc4LDExIEBACiAJCTcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lz
dHJ5S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBsYXRlUmVnaXN0
cnlLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkQxQjRBRkI4NTAw
MDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVmFyaWFibGVFbnZpcm9ubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25t
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NjkxQjYyREUyMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0FTTU1vZHVsZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCMzlGNzZBMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdBU01Nb2R1bGVQYXJzZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTVJlYWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FT
TVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXQVNNUmVh
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I3QTVFMjYxQjY4Mjg4NDAw
MjdDQUQwIC8qIFdBU01NYWdpY051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXQVNNTWFnaWNOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5
OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dBU01Nb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9t
aXNlRGVmZXJyZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQ
cm9taXNlRGVmZXJyZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDMxMSw2
ICs0MzIxLDExIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0Ix
QTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLywKIAkJCQk3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQg
LyogSlNXQVNNTW9kdWxlLmggKi8sCisJCQkJN0I3QTVFMjYxQjY4Mjg4NDAwMjdDQUQwIC8qIFdB
U01NYWdpY051bWJlci5oICovLAorCQkJCTdCMzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNN
TW9kdWxlUGFyc2VyLmNwcCAqLywKKwkJCQk3QjM5Rjc2QTFCNjJERTIyMDAzNjBGQjQgLyogV0FT
TU1vZHVsZVBhcnNlci5oICovLAorCQkJCTdCMzlGNzcxMUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNN
UmVhZGVyLmNwcCAqLywKKwkJCQk3QjM5Rjc2QzFCNjJERTIyMDAzNjBGQjQgLyogV0FTTVJlYWRl
ci5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3YXNtOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTYyMjAsNiArNjIzNSw3IEBACiAJCQkJMEY1QTEyNzQxOTJEOUZERjAwODc2NEEzIC8q
IERGR0RvZXNHQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNG
IC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjJCNjZGNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBG
QjQgLyogV0FTTU1vZHVsZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2
RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZE
MDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAtNjQzMiw2ICs2NDQ4LDcgQEAKIAkJCQlC
QzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlOYW1lQXJyYXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhGNURBQSAvKiBQcm9wZXJ0eU9mZnNldC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTc4NUY2QkMxOEM1NTNGRTAwRjEwNjI2IC8qIFNwaWxsUmVnaXN0
ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I3QTVFMjcxQjY4Mjg4QzAwMjdDQUQwIC8q
IFdBU01NYWdpY051bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NTUwRTE2RjVDRDAw
QjM0NDYwIC8qIFByb3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOUMxNUVE
OEU0NjAwRjE2N0IyIC8qIFByb3BlcnR5U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
RkM3NTExOTYxMTBBODAwRTFEMDJEIC8qIENvbXBsZXhHZXRTdGF0dXMuaCBpbiBIZWFkZXJzICov
LApAQCAtNjU2NSw2ICs2NTgyLDcgQEAKIAkJCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyog
VW5jb25kaXRpb25hbEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCNjAxODIxNjM5
RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJN0IzOUY3NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOTYzQjM4MTNGQzZGRTkwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDI2QTQ4MTQ2MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlDNUU1RjE4RTM1RjVFMDBENDMxQzMgLyogRlRMRFdB
UkZSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTk5LDYgKzcyMTcsNyBAQAogCQkJCTBG
OUQzMzk2MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFuVXBQaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0Q4OUNGNzE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3Jt
YXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0IzOUY3NkQxQjYyREUyRTAwMzYwRkI0IC8qIFdB
U01Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzQTFCRjkxQTlFQ0I3RDAw
MERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZlcG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC03NjE0LDYgKzc2MzMsNyBAQAogCQkJCTBGMjRFNTUwMTdFRTI3NDkw
MEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyRDJEMzhGMUFERjEw
M0YwMDAyMDZDMSAvKiBGdW5jdGlvblJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NzcwMDkyMTQwMkZGM0MwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJN0IzOUY3NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQyOUQ4ODUwRUQyMUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDMEVDNjFBQTBEN0RBMDBCNkFBRkEgLyogU3RyaW5n
SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNjcxODlBRkU5
QzAwNjMzMjMxIC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggOGRiZGM4NWU0NjE1MjI3NjZiN2RmZmRmOTQ0YmY1MTMwMzhhNGUzYy4u
Y2VlOGY2N2JmN2IxYzY5MjExMjE2NThhZGMyOTQ3NmI3OGRkMDBmMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU09OT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9k
dWxlLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5n
VG9vbC5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgpAQCAtNTAsNiArNTEsNyBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJV
dGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldBU01Nb2R1
bGVQYXJzZXIuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs
dWRlIDxzdGRsaWIuaD4KQEAgLTQ5Miw2ICs0OTQsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJldHVyblR5cGVGb3IoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0
aW9uUmFuZ2VzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enooRXhl
Y1N0YXRlKik7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhlY1N0YXRlKik7CisjZW5k
aWYKIAogI2lmIEVOQUJMRShTQU1QTElOR19GTEFHUykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhFeGVjU3RhdGUqKTsKQEAgLTY1
NSw2ICs2NjAsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5h
YmxlRXhjZXB0aW9uRnV6eiIsIGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9uRnV6eiwgMCk7CiAgICAg
ICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJs
b2FkV2ViQXNzZW1ibHkiLCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseSwgMSk7CisjZW5kaWYKKwog
ICAgICAgICBKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsRXhlYygp
LCAwKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgpOyAr
K2kpCiAgICAgICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsRXhlYygpLCBpLCBq
c1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOwpAQCAtMTE4Myw2ICsxMTkyLDIz
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25G
dXp6KEV4ZWNTdGF0ZSopCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBleGVjKQoreworICAgIFN0
cmluZyBmaWxlTmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKKyAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOworICAgIGlmICghZmlsbEJ1ZmZlcldpdGhD
b250ZW50c09mRmlsZShmaWxlTmFtZSwgYnVmZmVyKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IG9wZW4gZmlsZS4iKSkpKTsKKyAgICBSZWZQdHI8V2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxWZWN0b3I8dWludDhfdD4mPihidWZm
ZXIpLCBmaWxlTmFtZSk7CisgICAgU291cmNlQ29kZSBzb3VyY2Uoc291cmNlUHJvdmlkZXIpOwor
ICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBwYXJz
ZVdlYkFzc2VtYmx5KGV4ZWMsIHNvdXJjZSwgZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAoIW1vZHVs
ZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZSkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1vZHVsZSk7Cit9CisjZW5kaWYKKwogLy8gVXNlIFNFSCBm
b3IgUmVsZWFzZSBidWlsZHMgb25seSB0byBnZXQgcmlkIG9mIHRoZSBjcmFzaCByZXBvcnQgZGlh
bG9nCiAvLyAobHVja2lseSB0aGUgc2FtZSB0ZXN0cyBmYWlsIGluIFJlbGVhc2UgYW5kIERlYnVn
IGJ1aWxkcyBzbyBmYXIpLiBOZWVkIHRvCiAvLyBiZSBpbiBhIHNlcGFyYXRlIG1haW4gZnVuY3Rp
b24gYmVjYXVzZSB0aGUganNjbWFpbiBmdW5jdGlvbiByZXF1aXJlcyBvYmplY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCBjY2NhYmYzNjk2
NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2YjQ3Li5jMjYzYTEzOTA1NTQzNjc5MDgyOTY4ZjA0
OWRkYjFhYWZjY2Y3MTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oCkBAIC05NCw2ICs5NCwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
U3RyaW5nIG1fc291cmNlOwogICAgIH07CiAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
ICAgIGNsYXNzIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlk
ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhLCBjb25zdCBTdHJpbmcm
IHVybCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcihkYXRhLCB1cmwpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZp
cnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGRhdGEoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbV9kYXRhOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgU3RyaW5n
JiB1cmwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHVybCwgVGV4dFBvc2l0aW9uOjpt
aW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgICAgICwgbV9zb3VyY2UoIltXZWJBc3NlbWJseSBz
b3VyY2VdIikKKyAgICAgICAgICAgICwgbV9kYXRhKGRhdGEpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1f
ZGF0YTsKKyAgICB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
U291cmNlUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IDI2MTgzZWY5ZWZlYTQ3OTE0NjExNjVhOTYyOTVlYzQ0NmE5
MTU5MmQuLjUxMWE1ZTliZTY4ZDhjMGMwMzgzNjlmNGY4YzRiODgxMjU1OGJkZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTkz
LDYgKzkzLDcgQEAKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCIKICNpbmNs
dWRlICJKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5cy5o
IgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2lu
Y2x1ZGUgIkpTV2Vha1NldC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCkBAIC0zNDIsNiAr
MzQzLDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIG1fcHJvbWlz
ZVByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMs
IHRoaXMsIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX3Byb21pc2VTdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBKU1Byb21pc2U6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9wcm9taXNlUHJvdG90
eXBlLmdldCgpKSk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgbV93YXNtTW9kdWxl
U3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNXQVNNTW9kdWxlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMpKTsKKyNlbmRpZgorCiAgICAgbV9wYXJzZUludEZ1bmN0aW9uLnNldCh2bSwgdGhpcywg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUlu
dC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlSW50LCBOb0ludHJpbnNpYykpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUludCwgbV9w
YXJzZUludEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKIApAQCAtODA0LDYg
KzgwOSw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9kb2xsYXJWTVN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
aW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fcHJvbWlzZVN0cnVjdHVyZSk7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3dhc21Nb2R1bGVTdHJ1Y3R1cmUpOworI2VuZGlm
CiAKICNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEUoQ2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZSk7IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDk5ODc5ZDEyYjRhNTEx
ODVkNDM5ZjlhY2E4N2E5NmYxM2E5MDU1YzUuLmU5NDg1MGVmOTA1MTQ3MTg4ODVlMDYwMjZiYjVi
NGIxZDMxM2FkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtMjQ0LDYgKzI0NCw5IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJp
ZXI8U3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlOwogICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlOwogICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fcHJvbWlzZVN0cnVjdHVyZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV93YXNtTW9kdWxlU3RydWN0dXJlOwor
I2VuZGlmCiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAg
V3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZT4gbV8gIyMgbG93ZXJOYW1lICMj
IFByb3RvdHlwZTsgXApAQCAtNDc3LDYgKzQ4MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgcHRy
ZGlmZl90IGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlKTsgfQogICAg
IFN0cnVjdHVyZSogcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUqIHBy
b21pc2VTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Byb21pc2VTdHJ1Y3R1cmUuZ2V0KCk7
IH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgU3RydWN0dXJlKiB3YXNtTW9kdWxlU3Ry
dWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV93YXNtTW9kdWxlU3RydWN0dXJlLmdldCgpOyB9Cisj
ZW5kaWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UmVtb3RlRGVidWdnaW5nRW5h
YmxlZChib29sKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHJlbW90ZURlYnVnZ2luZ0Vu
YWJsZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01NYWdpY051bWJlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1hZ2ljTnVt
YmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGFkZDJmYTI3ZjI4YjNmYTBiM2JjYjkyNzZkZDk3NTA5YzZhMDY0
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01NYWdp
Y051bWJlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01NYWdpY051bWJlcl9oCisjZGVmaW5lIFdBU01N
YWdpY051bWJlcl9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFjZSBKU0Mg
eworCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2FzbU1hZ2ljTnVtYmVyID0gMHg2ZDczNjE3NzsK
KworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
KyNlbmRpZiAvLyBXQVNNTWFnaWNOdW1iZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGQzMGY1MzhjNzRmMDg5ZDRm
YTVlNjkzZjFkMzEyOTUzZjE0YmYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXQVNNTW9kdWxlUGFyc2VyLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgi
CisjaW5jbHVkZSAiV0FTTU1hZ2ljTnVtYmVyLmgiCisKKyNkZWZpbmUgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKSBkbyB7IG1fZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlOyByZXR1
cm4gZmFsc2U7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfVU5TSUdORURfSU5UMzJfT1JfRkFJ
TCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkVW5zaWduZWRJbnQzMih4
KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUg
UkVBRF9GTE9BVF9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJl
YWRGbG9hdCh4KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkK
KyNkZWZpbmUgUkVBRF9ET1VCTEVfT1JfRkFJTCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFt
X3JlYWRlci5yZWFkRG91YmxlKHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9
IHdoaWxlICgwKQorI2RlZmluZSBGQUlMX0lGX0ZBTFNFKGNvbmRpdGlvbiwgZXJyb3JNZXNzYWdl
KSBkbyB7IGlmICghKGNvbmRpdGlvbikpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7
IH0gd2hpbGUgKDApCisKK25hbWVzcGFjZSBKU0MgeworCitXQVNNTW9kdWxlUGFyc2VyOjpXQVNN
TW9kdWxlUGFyc2VyKGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKKyAgICA6IG1fcmVhZGVyKHN0
YXRpY19jYXN0PFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIqPihzb3VyY2UucHJvdmlkZXIoKSkt
PmRhdGEoKSkKK3sKK30KKworSlNXQVNNTW9kdWxlKiBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cmluZyYgZXJyb3JNZXNzYWdl
KQoreworICAgIEpTV0FTTU1vZHVsZSogbW9kdWxlID0gSlNXQVNNTW9kdWxlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdC0+d2FzbU1vZHVsZVN0cnVjdHVyZSgpKTsKKyAgICBwYXJzZU1vZHVsZSgp
OworICAgIGlmICghbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkpIHsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gbV9lcnJvck1lc3NhZ2U7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICByZXR1cm4gbW9kdWxlOworfQorCitib29sIFdBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9kdWxl
KCkKK3sKKyAgICB1aW50MzJfdCBtYWdpY051bWJlcjsKKyAgICBSRUFEX1VOU0lHTkVEX0lOVDMy
X09SX0ZBSUwobWFnaWNOdW1iZXIsICJDYW5ub3QgcmVhZCB0aGUgbWFnaWMgbnVtYmVyLiIpOwor
ICAgIEZBSUxfSUZfRkFMU0UobWFnaWNOdW1iZXIgPT0gd2FzbU1hZ2ljTnVtYmVyLCAiVGhlIG1h
Z2ljIG51bWJlciBpcyBpbmNvcnJlY3QuIik7CisKKyAgICAvLyBUT0RPOiBwYXJzZSB0aGUgcmVz
dAorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0pTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJs
eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpCit7CisgICAgV0FTTU1vZHVsZVBhcnNlciBXQVNNTW9kdWxlUGFyc2VyKHNvdXJj
ZSk7CisgICAgcmV0dXJuIFdBU01Nb2R1bGVQYXJzZXIucGFyc2UoZXhlYy0+dm0oKSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBlcnJvck1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQ2YTMxNzg5ZTEz
MTBkNDc3MmQ1ODEyOGVkYWE0ZDY2ZDNjNDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01N
b2R1bGVQYXJzZXJfaAorI2RlZmluZSBXQVNNTW9kdWxlUGFyc2VyX2gKKworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldBU01SZWFkZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKK2Ns
YXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3MgSlNXQVNNTW9kdWxlOworY2xhc3MgU291cmNlQ29k
ZTsKK2NsYXNzIFZNOworCitjbGFzcyBXQVNNTW9kdWxlUGFyc2VyIHsKK3B1YmxpYzoKKyAgICBX
QVNNTW9kdWxlUGFyc2VyKGNvbnN0IFNvdXJjZUNvZGUmKTsKKyAgICBKU1dBU01Nb2R1bGUqIHBh
cnNlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisKK3ByaXZh
dGU6CisgICAgYm9vbCBwYXJzZU1vZHVsZSgpOworCisgICAgV0FTTVJlYWRlciBtX3JlYWRlcjsK
KyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cit9OworCitKU19FWFBPUlRfUFJJVkFURSBKU1dB
U01Nb2R1bGUqIHBhcnNlV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYs
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNTW9kdWxlUGFyc2VyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiZjkz
OTQyYmFjMWJkNDkyYmY3NDMyODMwYmU3MTEwYmRhYTk3NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwCkBAIC0wLDAgKzEsODEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0FTTVJlYWRlci5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCisjZGVmaW5lIENIRUNLX1JFQUQobGVuZ3RoKSBkbyB7IGlmIChtX2N1cnNvciArIGxl
bmd0aCA+IG1fYnVmZmVyLmVuZCgpKSByZXR1cm4gZmFsc2U7IH0gd2hpbGUgKDApCisKK25hbWVz
cGFjZSBKU0MgeworCitib29sIFdBU01SZWFkZXI6OnJlYWRVbnNpZ25lZEludDMyKHVpbnQzMl90
JiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg0KTsKKyAgICByZXN1bHQgPSBtX2N1cnNvclsw
XSB8IG1fY3Vyc29yWzFdIDw8IDggfCBtX2N1cnNvclsyXSA8PCAxNiB8IG1fY3Vyc29yWzNdIDw8
IDI0OworICAgIG1fY3Vyc29yICs9IDQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FT
TVJlYWRlcjo6cmVhZEZsb2F0KGZsb2F0JiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg0KTsK
KyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ4X3QgYnl0ZXNbNF07CisgICAgICAgIGZsb2F0IGZs
b2F0VmFsdWU7CisgICAgfSB1ID0geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1f
Y3Vyc29yWzNdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzBdIH0KKyNlbHNl
CisgICAgICAgIHsgbV9jdXJzb3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsyXSwgbV9jdXJz
b3JbM10gfQorI2VuZGlmCisgICAgfTsKKyAgICByZXN1bHQgPSB1LmZsb2F0VmFsdWU7CisgICAg
bV9jdXJzb3IgKz0gNDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXQVNNUmVhZGVyOjpy
ZWFkRG91YmxlKGRvdWJsZSYgcmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoOCk7CisgICAgdW5p
b24geworICAgICAgICB1aW50OF90IGJ5dGVzWzhdOworICAgICAgICBkb3VibGUgZG91YmxlVmFs
dWU7CisgICAgfSB1ID0geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICB7IG1fY3Vyc29y
WzddLCBtX2N1cnNvcls2XSwgbV9jdXJzb3JbNV0sIG1fY3Vyc29yWzRdLCBtX2N1cnNvclszXSwg
bV9jdXJzb3JbMl0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclswXSB9CisjZWxzZQorICAgICAgICB7
IG1fY3Vyc29yWzBdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzNdLCBtX2N1
cnNvcls0XSwgbV9jdXJzb3JbNV0sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls3XSB9CisjZW5kaWYK
KyAgICB9OworICAgIHJlc3VsdCA9IHUuZG91YmxlVmFsdWU7CisgICAgbV9jdXJzb3IgKz0gODsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNUmVhZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2NkZWEyYjkyZDgyZGU2ZGFhNzhjYjdkOGYzMzJhMjNmM2VmZmNlMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXQVNNUmVhZGVyX2gKKyNkZWZpbmUgV0FTTVJlYWRlcl9oCisKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBXQVNNUmVhZGVyIHsKK3B1YmxpYzoKKyAgICBXQVNNUmVhZGVyKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikK
KyAgICAgICAgLCBtX2N1cnNvcihidWZmZXIuZGF0YSgpKQorICAgIHsKKyAgICB9CisKKyAgICBi
b29sIHJlYWRVbnNpZ25lZEludDMyKHVpbnQzMl90JiByZXN1bHQpOworICAgIGJvb2wgcmVhZEZs
b2F0KGZsb2F0JiByZXN1bHQpOworICAgIGJvb2wgcmVhZERvdWJsZShkb3VibGUmIHJlc3VsdCk7
CisKK3ByaXZhdGU6CisgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtX2J1ZmZlcjsKKyAgICBj
b25zdCB1aW50OF90KiBtX2N1cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTVJlYWRlcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257738</attachid>
            <date>2015-07-28 23:07:17 -0700</date>
            <delta_ts>2015-07-29 11:13:10 -0700</delta_ts>
            <desc>Reupload the patch since r187539 should fix the JSWASMModule.h issue in the Windows build.</desc>
            <filename>bug-147293-20150728230555.patch</filename>
            <type>text/plain</type>
            <size>32864</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ODg3NjM0NGUxOWFhZTJmNGU4M2YyMzE0Y2Q1NzA0NTI4NzA4NTI4Li45NjVlNDc2ZjAwNDJiODQz
YzA3MjhiMzI5MWQ2NDNlOWE1MjA3MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NSBAQAorMjAxNS0wNy0yOCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV1cGxvYWQg
dGhlIHBhdGNoIHNpbmNlIHIxODc1Mzkgc2hvdWxkIGZpeCB0aGUgIkNhbm5vdCBvcGVuIGluY2x1
ZGUgZmlsZToKKyAgICAgICAgJ0pTV0FTTU1vZHVsZS5oJyIgaXNzdWUgaW4gdGhlIFdpbmRvd3Mg
YnVpbGQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChm
dW5jdGlvbkxvYWRXZWJBc3NlbWJseSk6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmRhdGEpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVy
KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlz
aXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6d2FzbU1vZHVsZVN0cnVjdHVyZSk6CisgICAgICAgICog
d2FzbS9XQVNNTWFnaWNOdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd2FzbS9XQVNNTW9kdWxl
UGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OldBU01N
b2R1bGVQYXJzZXIpOgorICAgICAgICAoSlNDOjpXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZSk6Cisg
ICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9kdWxlKToKKyAgICAgICAgKEpT
Qzo6cGFyc2VXZWJBc3NlbWJseSk6CisgICAgICAgICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmg6
IEFkZGVkLgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
SlNDOjpXQVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMik6CisgICAgICAgIChKU0M6OldBU01S
ZWFkZXI6OnJlYWRGbG9hdCk6CisgICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWREb3VibGUp
OgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FT
TVJlYWRlcjo6V0FTTVJlYWRlcik6CisKIDIwMTUtMDctMjggIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIHRoZSAid2FzbSIgZGlyZWN0b3J5
IHRvIFZpc3VhbCBTdHVkaW8gcHJvamVjdCBmaWxlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDAwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBhMjczZTQwMzkyMzBjYjhmZTEyMGQ2NzcwOTNlYmQ5ZmZlZjI5NjgyLi4w
ZWFjMzY2ZTVjNzU5NzJkNDAyM2RjNWU4YTVmMTU0YzNkMjZiMWJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MTEsNiArNDExLDggQEAgc2V0KEphdmFTY3JpcHRDb3Jl
X1NPVVJDRVMKICAgICB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAogCiAgICAgd2FzbS9K
U1dBU01Nb2R1bGUuY3BwCisgICAgd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcAorICAgIHdhc20v
V0FTTVJlYWRlci5jcHAKIAogICAgIHlhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCiAgICAgeWFy
ci9ZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qCmluZGV4IGE0NWFiNjZkMGU5YWU2YmM4Yzk0ODY1OTI4YTlmYjEzY2NjOGEyZDQuLjdh
ODU3ZjE4NmNlNjk0MzhhYTE0ODY0ZDRjYmUzMmI0YmJkMzlhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtODY4LDYgKzg2OCw4IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx0b29sc1xKU0RvbGxhclZNLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk1Qcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCIgLz4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHdhc21cV0FTTVJlYWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx5YXJyXFJlZ3VsYXJFeHByZXNzaW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHlhcnJcWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ceWFyclxZYXJySW50ZXJwcmV0ZXIuY3BwIiAvPgpAQCAtMTczNCw2ICsx
NzM2LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXFByb2ZpbGVUcmVlTm9k
ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcVGllcmVkTU1hcEFycmF5
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTWFnaWNOdW1iZXIuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1vZHVsZVBhcnNlci5oIiAvPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFJlZ3VsYXJFeHByZXNzaW9uLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHlhcnJcWWFyckNhbm9uaWNhbGl6ZVVDUzIuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA2Y2UzNjc3NDZlN2FjOWI3
OGJkMTQ5YTM4NjA4MGM0NjRkNWU0ZmUzLi41NmY0ZDg0YzQzOWY1MThiODgyZjhjMTcwMWJjYzg0
Y2IzZTExZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzCkBAIC0xNzk3LDYgKzE3OTcsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1v
ZHVsZVBhcnNlci5jcHAiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFkZXIuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICA8L0l0ZW1H
cm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEFQSVxBUElD
YWxsYmFja0Z1bmN0aW9uLmgiPgpAQCAtNDMwMSw2ICs0MzA3LDE1IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5oIj4KICAgICAgIDxGaWx0ZXI+d2FzbTwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2Fz
bVxXQVNNTWFnaWNOdW1iZXIuaCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1vZHVsZVBh
cnNlci5oIj4KKyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmgiPgorICAgICAgPEZp
bHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgIDwvSXRlbUdyb3VwPgogICA8
SXRlbUdyb3VwPgogICAgIDxOb25lIEluY2x1ZGU9IkphdmFTY3JpcHRDb3JlUHJlTGluay5jbWQi
IC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY5OWU3YTY2NjU3ZjgxOTQyNzk1
ODk3MDRhZjE2NDQwZWIzZGJjYTguLmMwNjY5YzdmZTM1MGJhNWVhNDUzMWFhYzU1Mzg3NDhlOWY5
MzY1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIxLDYgKzEwMjEsMTEg
QEAKIAkJNzBFQ0E2MDkxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwRUNBNjA0MUFG
REJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlFRTBCRkYxQjRBRkI4NTAwMDM4NUM5
IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzlFRTBCRkQxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52
aXJvbm1lbnQuY3BwICovOyB9OwogCQk3OUVFMEMwMDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFi
bGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc2
RDFCNjJERTJFMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2OTFCNjJERTIyMDAzNjBGQjQg
LyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi87IH07CisJCTdCMzlGNzZFMUI2MkRFMzIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QjM5Rjc2QTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdC
MzlGNzcwMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc2QzFCNjJERTIyMDAzNjBGQjQgLyog
V0FTTVJlYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCMzlGNzcyMUI2MzU3NEQwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzcxMUI2MzU3NEIw
MDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLzsgfTsKKwkJN0I3QTVFMjcxQjY4Mjg4QzAwMjdD
QUQwIC8qIFdBU01NYWdpY051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0I3QTVFMjYxQjY4Mjg4NDAwMjdDQUQwIC8qIFdBU01NYWdpY051bWJl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdC
OThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0
IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi87IH07CiAJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAv
KiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAwOENEQTE4NzEy
NEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpT
UHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKQEAgLTI3NjksNiArMjc3NCwxMSBAQAogCQk3MEVD
QTYwNDFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wbGF0ZVJlZ2lzdHJ5S2V5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc5RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVu
dmlyb25tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhcmlh
YmxlRW52aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJG
RTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCMzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFy
c2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdBU01Nb2R1bGVQ
YXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2QTFCNjJERTIy
MDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXQVNNTW9kdWxlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdBU01SZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0FTTVJlYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTdCN0E1RTI2MUI2ODI4ODQwMDI3Q0FEMCAvKiBXQVNNTWFnaWNO
dW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTU1hZ2ljTnVtYmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM0MUI2MENENUEwMDIzQjFB
NCAvKiBKU1dBU01Nb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXQVNNTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5OEQx
MzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dBU01Nb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvbWlzZURlZmVycmVkLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMDcsNiArNDMxNywxMSBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5j
cHAgKi8sCiAJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICov
LAorCQkJCTdCN0E1RTI2MUI2ODI4ODQwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1iZXIuaCAqLywK
KwkJCQk3QjM5Rjc2OTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi8s
CisJCQkJN0IzOUY3NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAqLywK
KwkJCQk3QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FTTVJlYWRlci5jcHAgKi8sCisJCQkJ
N0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gd2FzbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MjE0LDYgKzYyMjks
NyBAQAogCQkJCTBGNUExMjc0MTkyRDlGREYwMDg3NjRBMyAvKiBERkdEb2VzR0MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkY1MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjYxN0I2QjVBQjAw
QTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJN0IzOUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJz
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0ds
b2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVGRDAwODYxODlCMUI3RTAwNjMzMjMx
IC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0
NTU5MzE4MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTY0MjUsNiArNjQ0MSw3IEBACiAJCQkJQkMxOEM0NTQwRTE2RjVDRDAwQjM0
NDYwIC8qIFByb3BlcnR5TmFtZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MTY4QzE1
QTNCMjM1MDA4RjVEQUEgLyogUHJvcGVydHlPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
ODVGNkJDMThDNTUzRkUwMEYxMDYyNiAvKiBTcGlsbFJlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTdCN0E1RTI3MUI2ODI4OEMwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1iZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0eVNs
b3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdCMiAvKiBQcm9w
ZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkZDNzUxMTk2MTEwQTgwMEUxRDAy
RCAvKiBDb21wbGV4R2V0U3RhdHVzLmggaW4gSGVhZGVycyAqLywKQEAgLTY1NTgsNiArNjU3NSw3
IEBACiAJCQkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxp
bmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0
RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCMzlGNzcwMUI2MkRF
MzIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2M0IzODEz
RkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQy
NkE0ODE0NjBDQkIzMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5QzVFNUYxOEUzNUY1RTAwRDQzMUMzIC8qIEZUTERXQVJGUmVnaXN0ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtNzE5Miw2ICs3MjEwLDcgQEAKIAkJCQkwRjlEMzM5NjE3RkZDNEU2MDA3M0My
QkMgLyogREZHRmx1c2hlZEF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzNjk0MUFFOUND
MzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdE
ODlDRjcxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTdCMzlGNzZEMUI2MkRFMkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGM0ExQkY5MUE5RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFj
a1NpbmtpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkVDOURDNzEzMjhERjgyMDAy
QjJBRDcgLyogREZHR3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyRkNDRjkxOEE2MDA3
MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2FmZXBvaW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzYw
Niw2ICs3NjI1LDcgQEAKIAkJCQkwRjI0RTU1MDE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQyRDM4RjFBREYxMDNGMDAwMjA2QzEgLyogRnVuY3Rp
b25SYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc3MDA5MjE0MDJGRjNDMDA3OEVC
MzkgLyogU2FtcGxpbmdDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCMzlGNzcyMUI2
MzU3NEQwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjlE
ODg1MEVEMjFDM0QwMEI4OTYxOSAvKiBTYW1wbGluZ1Rvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzBFQzBFQzYxQUEwRDdEQTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDY3MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRB
cmd1bWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDhkYmRj
ODVlNDYxNTIyNzY2YjdkZmZkZjk0NGJmNTEzMDM4YTRlM2MuLmNlZThmNjdiZjdiMWM2OTIxMTIx
NjU4YWRjMjk0NzZiNzhkZDAwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC00Myw2ICs0Myw3
IEBACiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIlBy
b2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlICJT
dGFja1Zpc2l0b3IuaCIKQEAgLTUwLDYgKzUxLDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJl
RGF0YUlubGluZXMuaCIKICNpbmNsdWRlICJUZXN0UnVubmVyVXRpbHMuaCIKICNpbmNsdWRlICJU
eXBlUHJvZmlsZXJMb2cuaCIKKyNpbmNsdWRlICJXQVNNTW9kdWxlUGFyc2VyLmgiCiAjaW5jbHVk
ZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC00
OTIsNiArNDk0LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZXR1cm5UeXBlRm9yKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcyhFeGVjU3RhdGUq
KTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25GdXp6KEV4ZWNTdGF0ZSopOworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uTG9hZFdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSopOworI2VuZGlmCiAKICNpZiBFTkFCTEUoU0FN
UExJTkdfRkxBR1MpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blNldFNhbXBsaW5nRmxhZ3MoRXhlY1N0YXRlKik7CkBAIC02NTUsNiArNjYwLDEwIEBAIHByb3Rl
Y3RlZDoKIAogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImVuYWJsZUV4Y2VwdGlvbkZ1enoiLCBm
dW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enosIDApOwogICAgICAgICAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAibG9hZFdlYkFzc2VtYmx5IiwgZnVu
Y3Rpb25Mb2FkV2ViQXNzZW1ibHksIDEpOworI2VuZGlmCisKICAgICAgICAgSlNBcnJheSogYXJy
YXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbEV4ZWMoKSwgMCk7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgYXJy
YXktPnB1dERpcmVjdEluZGV4KGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygp
LCBhcmd1bWVudHNbaV0pKTsKQEAgLTExODMsNiArMTE5MiwyMyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9uRnV6eihFeGVjU3RhdGUqKQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFdl
YkFzc2VtYmx5KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgVmVjdG9yPGNo
YXI+IGJ1ZmZlcjsKKyAgICBpZiAoIWZpbGxCdWZmZXJXaXRoQ29udGVudHNPZkZpbGUoZmlsZU5h
bWUsIGJ1ZmZlcikpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50
aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNvdWxk
IG5vdCBvcGVuIGZpbGUuIikpKSk7CisgICAgUmVmUHRyPFdlYkFzc2VtYmx5U291cmNlUHJvdmlk
ZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8VmVjdG9yPHVpbnQ4X3Q+Jj4oYnVmZmVyKSwgZmlsZU5hbWUpOworICAg
IFNvdXJjZUNvZGUgc291cmNlKHNvdXJjZVByb3ZpZGVyKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNz
YWdlOworICAgIEpTV0FTTU1vZHVsZSogbW9kdWxlID0gcGFyc2VXZWJBc3NlbWJseShleGVjLCBz
b3VyY2UsIGVycm9yTWVzc2FnZSk7CisgICAgaWYgKCFtb2R1bGUpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTeW50
YXhFcnJvcihleGVjLCBlcnJvck1lc3NhZ2UpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShtb2R1bGUpOworfQorI2VuZGlmCisKIC8vIFVzZSBTRUggZm9yIFJlbGVhc2UgYnVpbGRzIG9u
bHkgdG8gZ2V0IHJpZCBvZiB0aGUgY3Jhc2ggcmVwb3J0IGRpYWxvZwogLy8gKGx1Y2tpbHkgdGhl
IHNhbWUgdGVzdHMgZmFpbCBpbiBSZWxlYXNlIGFuZCBEZWJ1ZyBidWlsZHMgc28gZmFyKS4gTmVl
ZCB0bwogLy8gYmUgaW4gYSBzZXBhcmF0ZSBtYWluIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGpzY21h
aW4gZnVuY3Rpb24gcmVxdWlyZXMgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggY2NjYWJmMzY5NjRmNDExYTY0Y2JhZTI1OTJkMjRm
NDI0ZjAyNmI0Ny4uYzI2M2ExMzkwNTU0MzY3OTA4Mjk2OGYwNDlkZGIxYWFmY2NmNzEwYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaApAQCAtOTQs
NiArOTQsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKICAg
ICB9OwogICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBjbGFzcyBXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyIDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIo
ZGF0YSwgdXJsKSk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYg
c291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1f
c291cmNlOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRh
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihjb25z
dCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIGNvbnN0IFN0cmluZyYgdXJsKQorICAgICAgICAgICAg
OiBTb3VyY2VQcm92aWRlcih1cmwsIFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCisg
ICAgICAgICAgICAsIG1fc291cmNlKCJbV2ViQXNzZW1ibHkgc291cmNlXSIpCisgICAgICAgICAg
ICAsIG1fZGF0YShkYXRhKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcg
bV9zb3VyY2U7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBtX2RhdGE7CisgICAgfTsKKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFNvdXJjZVByb3ZpZGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCAyOWYxMDM3ODczZTVhZmRiMmMwMTM3OWU2OTllZGI1ZTA0ZTEzNWM0Li4wOWRkNTZhZWZlMTc4
MWVhOWUwNjU5NjU2NGNiNjA0YzFiYTFhMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVk
ZSAiSlNUeXBlZEFycmF5Q29uc3RydWN0b3JzLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5UHJv
dG90eXBlcy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKKyNpbmNsdWRlICJKU1dBU01N
b2R1bGUuaCIKICNpbmNsdWRlICJKU1dlYWtNYXAuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIK
ICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgpAQCAtMzQwLDYgKzM0MSwxMCBAQCB2b2lkIEpTR2xv
YmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX3Byb21pc2VQcm90b3R5cGUuc2V0KHZtLCB0
aGlzLCBKU1Byb21pc2VQcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBKU1Byb21pc2VQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
KSk7CiAgICAgbV9wcm9taXNlU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNQcm9taXNlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fcHJvbWlzZVByb3RvdHlwZS5nZXQoKSkpOwogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIG1fd2FzbU1vZHVsZVN0cnVjdHVyZS5zZXQodm0sIHRo
aXMsIEpTV0FTTU1vZHVsZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzKSk7CisjZW5kaWYKKwog
ICAgIG1fcGFyc2VJbnRGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMiwgdm0ucHJvcGVydHlOYW1lcy0+cGFyc2VJbnQuc3RyaW5nKCksIGdsb2JhbEZ1
bmNQYXJzZUludCwgTm9JbnRyaW5zaWMpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cGFyc2VJbnQsIG1fcGFyc2VJbnRGdW5jdGlvbi5nZXQo
KSwgRG9udEVudW0gfCBGdW5jdGlvbik7CiAKQEAgLTgwMSw2ICs4MDYsOSBAQCB2b2lkIEpTR2xv
YmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZG9sbGFyVk1TdHJ1Y3R1cmUp
OwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2ludGVybmFsRnVuY3Rpb25TdHJ1
Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Byb21pc2VTdHJ1Y3R1
cmUpOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV93YXNtTW9kdWxlU3RydWN0dXJlKTsKKyNlbmRpZgogCiAjZGVmaW5lIFZJU0lUX1NJ
TVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fICMjIGxvd2Vy
TmFtZSAjIyBQcm90b3R5cGUpOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAppbmRleCA1NzkyYWMyZTEwYmE4YWFkZGYyODhlM2NkYjgwZTQ5MTIz
NzMzZTk2Li4wNTRlNDZjNTYxMThjMDI2ZWYxMzEwMjAwYjY5MzUxNTAyMWEwYzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI0Myw2
ICsyNDMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9pdGVy
YXRvclJlc3VsdFN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4
cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3By
b21pc2VTdHJ1Y3R1cmU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fd2FzbU1vZHVsZVN0cnVjdHVyZTsKKyNlbmRpZgogCiAjZGVmaW5lIERF
RklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9w
ZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBpdGFs
TmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKQEAgLTQ3
NSw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHB0cmRpZmZfdCBpdGVyYXRvclJlc3Vs
dFN0cnVjdHVyZU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVj
dCwgbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZSk7IH0KICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cE1h
dGNoZXNBcnJheVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnRXhwTWF0Y2hlc0FycmF5
U3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBwcm9taXNlU3RydWN0dXJlKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9taXNlU3RydWN0dXJlLmdldCgpOyB9CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorICAgIFN0cnVjdHVyZSogd2FzbU1vZHVsZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fd2FzbU1vZHVsZVN0cnVjdHVyZS5nZXQoKTsgfQorI2VuZGlmCiAKICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIHNldFJlbW90ZURlYnVnZ2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCByZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTWFnaWNOdW1iZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01NYWdpY051bWJlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRh
ZGQyZmEyN2YyOGIzZmEwYjNiY2I5Mjc2ZGQ5NzUwOWM2YTA2NDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTWFnaWNOdW1iZXIuaApAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXQVNNTWFnaWNOdW1iZXJfaAorI2RlZmluZSBXQVNNTWFnaWNOdW1iZXJfaAorCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQorCituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIGNvbnN0IHVp
bnQzMl90IHdhc21NYWdpY051bWJlciA9IDB4NmQ3MzYxNzc7CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTU1hZ2lj
TnVtYmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1
bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDhkMzBmNTM4Yzc0ZjA4OWQ0ZmE1ZTY5M2YxZDMxMjk1M2YxNGJm
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1
bGVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0FTTU1v
ZHVsZVBhcnNlci5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgorI2luY2x1ZGUgIldBU01NYWdp
Y051bWJlci5oIgorCisjZGVmaW5lIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSkgZG8g
eyBtX2Vycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTsgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgw
KQorI2RlZmluZSBSRUFEX1VOU0lHTkVEX0lOVDMyX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBk
byB7IGlmICghbV9yZWFkZXIucmVhZFVuc2lnbmVkSW50MzIoeCkpIEZBSUxfV0lUSF9NRVNTQUdF
KGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfRkxPQVRfT1JfRkFJTCh4
LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkRmxvYXQoeCkpIEZBSUxfV0lU
SF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfRE9VQkxF
X09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZERvdWJsZSh4
KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUg
RkFJTF9JRl9GQUxTRShjb25kaXRpb24sIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIShjb25kaXRp
b24pKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorCituYW1l
c3BhY2UgSlNDIHsKKworV0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVsZVBhcnNlcihjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UpCisgICAgOiBtX3JlYWRlcihzdGF0aWNfY2FzdDxXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyKj4oc291cmNlLnByb3ZpZGVyKCkpLT5kYXRhKCkpCit7Cit9CisKK0pT
V0FTTU1vZHVsZSogV0FTTU1vZHVsZVBhcnNlcjo6cGFyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBKU1dBU01Nb2R1
bGUqIG1vZHVsZSA9IEpTV0FTTU1vZHVsZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPndhc21N
b2R1bGVTdHJ1Y3R1cmUoKSk7CisgICAgcGFyc2VNb2R1bGUoKTsKKyAgICBpZiAoIW1fZXJyb3JN
ZXNzYWdlLmlzTnVsbCgpKSB7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IG1fZXJyb3JNZXNzYWdl
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIG1vZHVsZTsKK30K
KworYm9vbCBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZU1vZHVsZSgpCit7CisgICAgdWludDMyX3Qg
bWFnaWNOdW1iZXI7CisgICAgUkVBRF9VTlNJR05FRF9JTlQzMl9PUl9GQUlMKG1hZ2ljTnVtYmVy
LCAiQ2Fubm90IHJlYWQgdGhlIG1hZ2ljIG51bWJlci4iKTsKKyAgICBGQUlMX0lGX0ZBTFNFKG1h
Z2ljTnVtYmVyID09IHdhc21NYWdpY051bWJlciwgIlRoZSBtYWdpYyBudW1iZXIgaXMgaW5jb3Jy
ZWN0LiIpOworCisgICAgLy8gVE9ETzogcGFyc2UgdGhlIHJlc3QKKworICAgIHJldHVybiB0cnVl
OworfQorCitKU1dBU01Nb2R1bGUqIHBhcnNlV2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIFdB
U01Nb2R1bGVQYXJzZXIgV0FTTU1vZHVsZVBhcnNlcihzb3VyY2UpOworICAgIHJldHVybiBXQVNN
TW9kdWxlUGFyc2VyLnBhcnNlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNTW9kdWxlUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9k
dWxlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVkNmEzMTc4OWUxMzEwZDQ3NzJkNTgxMjhlZGFhNGQ2
NmQzYzQyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01Nb2R1bGVQYXJzZXIuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXQVNNTW9kdWxlUGFyc2VyX2gKKyNkZWZp
bmUgV0FTTU1vZHVsZVBhcnNlcl9oCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNs
dWRlICJXQVNNUmVhZGVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKU0dsb2JhbE9iamVjdDsK
K2NsYXNzIEpTV0FTTU1vZHVsZTsKK2NsYXNzIFNvdXJjZUNvZGU7CitjbGFzcyBWTTsKKworY2xh
c3MgV0FTTU1vZHVsZVBhcnNlciB7CitwdWJsaWM6CisgICAgV0FTTU1vZHVsZVBhcnNlcihjb25z
dCBTb3VyY2VDb2RlJik7CisgICAgSlNXQVNNTW9kdWxlKiBwYXJzZShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIGJvb2wgcGFyc2VN
b2R1bGUoKTsKKworICAgIFdBU01SZWFkZXIgbV9yZWFkZXI7CisgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOworfTsKKworSlNfRVhQT1JUX1BSSVZBVEUgSlNXQVNNTW9kdWxlKiBwYXJzZVdlYkFz
c2VtYmx5KEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSk7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCisjZW5kaWYgLy8gV0FTTU1vZHVsZVBhcnNlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01SZWFkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YmY5Mzk0MmJhYzFiZDQ5MmJmNzQzMjgz
MGJlNzExMGJkYWE5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNUmVhZGVyLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldBU01SZWFkZXIuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2RlZmluZSBDSEVD
S19SRUFEKGxlbmd0aCkgZG8geyBpZiAobV9jdXJzb3IgKyBsZW5ndGggPiBtX2J1ZmZlci5lbmQo
KSkgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgwKQorCituYW1lc3BhY2UgSlNDIHsKKworYm9vbCBX
QVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMih1aW50MzJfdCYgcmVzdWx0KQoreworICAgIENI
RUNLX1JFQUQoNCk7CisgICAgcmVzdWx0ID0gbV9jdXJzb3JbMF0gfCBtX2N1cnNvclsxXSA8PCA4
IHwgbV9jdXJzb3JbMl0gPDwgMTYgfCBtX2N1cnNvclszXSA8PCAyNDsKKyAgICBtX2N1cnNvciAr
PSA0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdBU01SZWFkZXI6OnJlYWRGbG9hdChm
bG9hdCYgcmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoNCk7CisgICAgdW5pb24geworICAgICAg
ICB1aW50OF90IGJ5dGVzWzRdOworICAgICAgICBmbG9hdCBmbG9hdFZhbHVlOworICAgIH0gdSA9
IHsKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgeyBtX2N1cnNvclszXSwgbV9jdXJzb3Jb
Ml0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclswXSB9CisjZWxzZQorICAgICAgICB7IG1fY3Vyc29y
WzBdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzNdIH0KKyNlbmRpZgorICAg
IH07CisgICAgcmVzdWx0ID0gdS5mbG9hdFZhbHVlOworICAgIG1fY3Vyc29yICs9IDQ7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZERvdWJsZShkb3VibGUmIHJl
c3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDgpOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhf
dCBieXRlc1s4XTsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgIH0gdSA9IHsKKyNp
ZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgeyBtX2N1cnNvcls3XSwgbV9jdXJzb3JbNl0sIG1f
Y3Vyc29yWzVdLCBtX2N1cnNvcls0XSwgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNv
clsxXSwgbV9jdXJzb3JbMF0gfQorI2Vsc2UKKyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJz
b3JbMV0sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclszXSwgbV9jdXJzb3JbNF0sIG1fY3Vyc29yWzVd
LCBtX2N1cnNvcls2XSwgbV9jdXJzb3JbN10gfQorI2VuZGlmCisgICAgfTsKKyAgICByZXN1bHQg
PSB1LmRvdWJsZVZhbHVlOworICAgIG1fY3Vyc29yICs9IDg7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjZGVhMmI5
MmQ4MmRlNmRhYTc4Y2I3ZDhmMzMyYTIzZjNlZmZjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTVJl
YWRlcl9oCisjZGVmaW5lIFdBU01SZWFkZXJfaAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgV0FT
TVJlYWRlciB7CitwdWJsaWM6CisgICAgV0FTTVJlYWRlcihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZlcihidWZmZXIpCisgICAgICAgICwgbV9jdXJzb3Io
YnVmZmVyLmRhdGEoKSkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCByZWFkVW5zaWduZWRJbnQz
Mih1aW50MzJfdCYgcmVzdWx0KTsKKyAgICBib29sIHJlYWRGbG9hdChmbG9hdCYgcmVzdWx0KTsK
KyAgICBib29sIHJlYWREb3VibGUoZG91YmxlJiByZXN1bHQpOworCitwcml2YXRlOgorICAgIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgbV9idWZmZXI7CisgICAgY29uc3QgdWludDhfdCogbV9jdXJz
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NF
TUJMWSkKKworI2VuZGlmIC8vIFdBU01SZWFkZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257758</attachid>
            <date>2015-07-29 11:13:19 -0700</date>
            <delta_ts>2015-07-30 19:03:34 -0700</delta_ts>
            <desc>Rebase to ToT.</desc>
            <filename>bug-147293-20150729111155.patch</filename>
            <type>text/plain</type>
            <size>32838</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZTJiYzc0MTFjZjdlZDI2YWRmZDQwMDA1NGVhNDBhYmIzMGEzYTMxLi41OWM5ZDU3MjViYjhmNTlm
YWIxZTU0ZjBmM2NmZmQ5ODU2OGE4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxNS0wNy0yOSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV1cGxvYWQg
dGhlIHBhdGNoLCBzaW5jZSByMTg3NTM5IHNob3VsZCBmaXggdGhlICJDYW5ub3Qgb3BlbiBpbmNs
dWRlIGZpbGU6CisgICAgICAgICdKU1dBU01Nb2R1bGUuaCciIGlzc3VlIGluIHRoZSBXaW5kb3dz
IGJ1aWxkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
ZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHkpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRl
ci5oOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpkYXRhKToKKyAgICAgICAg
KEpTQzo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRl
cik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZp
c2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Ondhc21Nb2R1bGVTdHJ1Y3R1cmUpOgorICAgICAgICAq
IHdhc20vV0FTTU1hZ2ljTnVtYmVyLmg6IEFkZGVkLgorICAgICAgICAqIHdhc20vV0FTTU1vZHVs
ZVBhcnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNTW9kdWxlUGFyc2VyOjpXQVNN
TW9kdWxlUGFyc2VyKToKKyAgICAgICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6cGFyc2UpOgor
ICAgICAgICAoSlNDOjpXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZU1vZHVsZSk6CisgICAgICAgIChK
U0M6OnBhcnNlV2ViQXNzZW1ibHkpOgorICAgICAgICAqIHdhc20vV0FTTU1vZHVsZVBhcnNlci5o
OiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dBU01SZWFkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6V0FTTVJlYWRlcjo6cmVhZFVuc2lnbmVkSW50MzIpOgorICAgICAgICAoSlNDOjpXQVNN
UmVhZGVyOjpyZWFkRmxvYXQpOgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpyZWFkRG91Ymxl
KToKKyAgICAgICAgKiB3YXNtL1dBU01SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChKU0M6OldB
U01SZWFkZXI6OldBU01SZWFkZXIpOgorCiAyMDE1LTA3LTI5ICBCYXNpbGUgQ2xlbWVudCAgPGJh
c2lsZV9jbGVtZW50QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBsb3dlciB0aGUg
bnVtYmVyIG9mIHRlc3QgaXRlcmF0aW9ucyB0byBwcmV2ZW50IHRpbWluZyBvdXQgb24gRGVidWcg
YnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTI3M2U0MDM5MjMw
Y2I4ZmUxMjBkNjc3MDkzZWJkOWZmZWYyOTY4Mi4uMGVhYzM2NmU1Yzc1OTcyZDQwMjNkYzVlOGE1
ZjE1NGMzZDI2YjFiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDEx
LDYgKzQxMSw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgdG9vbHMvSlNEb2xs
YXJWTVByb3RvdHlwZS5jcHAKIAogICAgIHdhc20vSlNXQVNNTW9kdWxlLmNwcAorICAgIHdhc20v
V0FTTU1vZHVsZVBhcnNlci5jcHAKKyAgICB3YXNtL1dBU01SZWFkZXIuY3BwCiAKICAgICB5YXJy
L1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAgIHlhcnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBhNDVhYjY2ZDBlOWFl
NmJjOGM5NDg2NTkyOGE5ZmIxM2NjYzhhMmQ0Li43YTg1N2YxODZjZTY5NDM4YWExNDg2NGQ0Y2Jl
MzJiNGJiZDM5YTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAg
LTg2OCw2ICs4NjgsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xs
YXJWTS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xKU0RvbGxhclZN
UHJvdG90eXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNN
TW9kdWxlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1vZHVs
ZVBhcnNlci5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFk
ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxSZWd1bGFyRXhwcmVz
c2lvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJDYW5vbmlj
YWxpemVVQ1MyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJcWWFycklu
dGVycHJldGVyLmNwcCIgLz4KQEAgLTE3MzQsNiArMTczNiw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx0b29sc1xQcm9maWxlVHJlZU5vZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHRvb2xzXFRpZXJlZE1NYXBBcnJheS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHdhc21cV0FTTU1hZ2ljTnVtYmVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHdhc21cV0FTTVJlYWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxS
ZWd1bGFyRXhwcmVzc2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ceWFyclxZ
YXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJDYW5vbmljYWxp
emVVQ1MyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggNmNlMzY3NzQ2ZTdhYzliNzhiZDE0OWEzODYwODBjNDY0ZDVlNGZlMy4u
NTZmNGQ4NGM0MzlmNTE4Yjg4MmY4YzE3MDFiY2M4NGNiM2UxMWRiYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTc5Nyw2ICsxNzk3
LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5jcHAi
PgogICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxBUElcQVBJQ2FsbGJhY2tGdW5jdGlvbi5oIj4KQEAgLTQz
MDEsNiArNDMwNywxNSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01N
b2R1bGUuaCI+CiAgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1hZ2ljTnVtYmVyLmgiPgorICAg
ICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCI+CisgICAgICA8RmlsdGVyPndh
c208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHdhc21cV0FTTVJlYWRlci5oIj4KKyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Tm9uZSBJbmNs
dWRlPSJKYXZhU2NyaXB0Q29yZVByZUxpbmsuY21kIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2OTllN2E2NjY1N2Y4MTk0Mjc5NTg5NzA0YWYxNjQ0MGViM2RiY2E4Li5jMDY2
OWM3ZmUzNTBiYTVlYTQ1MzFhYWM1NTM4NzQ4ZTlmOTM2NTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTAyMSw2ICsxMDIxLDExIEBACiAJCTcwRUNBNjA5MUFGREJFQTIwMDQ0
OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwNDFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVS
ZWdpc3RyeUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTc5RUUwQkZGMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RUUwQkZE
MUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCAqLzsgfTsKIAkJNzlF
RTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RUUwQkZFMUI0QUZCODUwMDAz
ODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NkQxQjYyREUyRTAwMzYwRkI0IC8qIFdBU01N
b2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwICov
OyB9OworCQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IzOUY3NkExQjYy
REUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3MDFCNjJERTMyMDAzNjBGQjQgLyog
V0FTTVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3MjFCNjM1NzREMDAz
NjBGQjQgLyogV0FTTVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FTTVJlYWRlci5jcHAg
Ki87IH07CisJCTdCN0E1RTI3MUI2ODI4OEMwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1iZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCN0E1RTI2MUI2
ODI4ODQwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1iZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0IxQTQgLyog
SlNXQVNNTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovOyB9
OwogCQk3Qjk4RDEzNzFCNjBDRDYyMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNTFCNjBDRDVBMDAy
M0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURl
ZmVycmVkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDMDA4Q0Q4MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi87IH07
CkBAIC0yNzY5LDYgKzI3NzQsMTEgQEAKIAkJNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRl
bXBsYXRlUmVnaXN0cnlLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVt
cGxhdGVSZWdpc3RyeUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJG
RDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlh
YmxlRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFi
bGVFbnZpcm9ubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2OTFC
NjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXQVNNTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJz
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTU1vZHVsZVBhcnNlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2QzFCNjJERTIyMDAzNjBGQjQg
LyogV0FTTVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNUmVh
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzcxMUI2MzU3NEIwMDM2
MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdBU01SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjdBNUUy
NjFCNjgyODg0MDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdBU01NYWdpY051bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dB
U01Nb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXQVNNTW9kdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4Q0Q4MTg3MTI0QkIwMDk1NUMy
NCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1Byb21pc2VEZWZlcnJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00MzA3LDYgKzQzMTcsMTEgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdCOThEMTM0MUI2
MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovLAogCQkJCTdCOThEMTM1MUI2MENE
NUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLywKKwkJCQk3QjdBNUUyNjFCNjgyODg0MDAy
N0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi8sCisJCQkJN0IzOUY3NjkxQjYyREUyMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwICovLAorCQkJCTdCMzlGNzZBMUI2MkRFMjIwMDM2
MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8sCisJCQkJN0IzOUY3NzExQjYzNTc0QjAwMzYw
RkI0IC8qIFdBU01SZWFkZXIuY3BwICovLAorCQkJCTdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAv
KiBXQVNNUmVhZGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdhc207CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNjIxNCw2ICs2MjI5LDcgQEAKIAkJCQkwRjVBMTI3NDE5MkQ5RkRG
MDA4NzY0QTMgLyogREZHRG9lc0dDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNTE3QjZC
NUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCMzlGNzZFMUI2
MkRFMzIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQyMTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1RkQwMDg2MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpT
R2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDI1LDYgKzY0NDEs
NyBAQAogCQkJCUJDMThDNDU0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0eU5hbWVBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzE2OEMxNUEzQjIzNTAwOEY1REFBIC8qIFByb3BlcnR5
T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg1RjZCQzE4QzU1M0ZFMDBGMTA2MjYgLyog
U3BpbGxSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjdBNUUyNzFCNjgyODhD
MDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1
NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyogUHJvcGVydHlTdG9yYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjZGQzc1MTE5NjExMEE4MDBFMUQwMkQgLyogQ29tcGxleEdldFN0YXR1cy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02NTU4LDYgKzY1NzUsNyBAQAogCQkJCTBGNUYwOENGMTQ2Qzc2MzMw
MDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
N0I2MDE4MjE2MzlGRDJBMDAzNzJCQTMgLyogVW5saW5rZWRDb2RlQmxvY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3QjM5Rjc3MDFCNjJERTMyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NjNCMzgxM0ZDNkZFOTAwMDJEOUIyIC8qIFZhbHVlUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0MjZBNDgxNDYwQ0JCMzAwMTMxRjhGIC8qIFZh
bHVlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUM1RTVGMThFMzVGNUUwMEQ0MzFD
MyAvKiBGVExEV0FSRlJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTcxOTIsNiArNzIxMCw3
IEBACiAJCQkJMEY5RDMzOTYxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0ZsdXNoZWRBdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjlEMzY5NDFBRTlDQzMzMDAwRDRERkIgLyogREZHQ2xlYW5VcFBo
YXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0Y3MTdBMEI4Q0MwMDc3M0FEOCAvKiBE
RkdGbHVzaEZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QjM5Rjc2RDFCNjJERTJFMDAz
NjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNBMUJG
OTFBOUVDQjdEMDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODZFQzlEQzcxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAvKiBERkdHcmFwaFNhZmVw
b2ludC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc2MDYsNiArNzYyNSw3IEBACiAJCQkJMEYyNEU1
NTAxN0VFMjc0OTAwQUJCMjE3IC8qIFJlcGF0Y2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJE
MkQzOEYxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY3NzAwOTIxNDAyRkYzQzAwNzhFQjM5IC8qIFNhbXBsaW5nQ291bnRlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3QjM5Rjc3MjFCNjM1NzREMDAzNjBGQjQgLyogV0FTTVJlYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDg4NTBFRDIxQzNEMDBCODk2MTkgLyogU2Ft
cGxpbmdUb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2MUFBMEQ3REEwMEI2QUFG
QSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZE
MDA2NzE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA4ZGJkYzg1ZTQ2MTUyMjc2NmI3ZGZmZGY5NDRiZjUx
MzAzOGE0ZTNjLi5jZWU4ZjY3YmY3YjFjNjkyMTEyMTY1OGFkYzI5NDc2Yjc4ZGQwMGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkpTT05PYmplY3Qu
aCIKICNpbmNsdWRlICJKU1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJKU1dBU01Nb2R1bGUuaCIKICNpbmNsdWRlICJQcm9maWxlckRhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCkBAIC01MCw2ICs1
MSw3IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
VGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVk
ZSAiV0FTTU1vZHVsZVBhcnNlci5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdGRp
by5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDkyLDYgKzQ5NCw5IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmV0dXJuVHlwZUZvcihFeGVjU3RhdGUq
KTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcEJhc2lj
QmxvY2tFeGVjdXRpb25SYW5nZXMoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZChFeGVjU3RhdGUqKTsK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxlRXhjZXB0
aW9uRnV6eihFeGVjU3RhdGUqKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseShFeGVjU3Rh
dGUqKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKEV4ZWNTdGF0
ZSopOwpAQCAtNjU1LDYgKzY2MCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJlbmFibGVFeGNlcHRpb25GdXp6IiwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb25GdXp6
LCAwKTsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImxvYWRXZWJBc3NlbWJseSIsIGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5LCAxKTsK
KyNlbmRpZgorCiAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShn
bG9iYWxFeGVjKCksIDApOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxF
eGVjKCksIGksIGpzU3RyaW5nKGdsb2JhbEV4ZWMoKSwgYXJndW1lbnRzW2ldKSk7CkBAIC0xMTgz
LDYgKzExOTIsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJs
ZUV4Y2VwdGlvbkZ1enooRXhlY1N0YXRlKikKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseShFeGVjU3RhdGUqIGV4ZWMp
Cit7CisgICAgU3RyaW5nIGZpbGVOYW1lID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpOworICAgIFZlY3RvcjxjaGFyPiBidWZmZXI7CisgICAgaWYgKCFmaWxs
QnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBidWZmZXIpKQorICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3Qgb3BlbiBmaWxlLiIpKSkpOworICAg
IFJlZlB0cjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFdlYkFz
c2VtYmx5U291cmNlUHJvdmlkZXI6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PFZlY3Rvcjx1aW50
OF90PiY+KGJ1ZmZlciksIGZpbGVOYW1lKTsKKyAgICBTb3VyY2VDb2RlIHNvdXJjZShzb3VyY2VQ
cm92aWRlcik7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBKU1dBU01Nb2R1bGUqIG1v
ZHVsZSA9IHBhcnNlV2ViQXNzZW1ibHkoZXhlYywgc291cmNlLCBlcnJvck1lc3NhZ2UpOworICAg
IGlmICghbW9kdWxlKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnZtKCku
dGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgZXJyb3JNZXNzYWdl
KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobW9kdWxlKTsKK30KKyNlbmRpZgorCiAv
LyBVc2UgU0VIIGZvciBSZWxlYXNlIGJ1aWxkcyBvbmx5IHRvIGdldCByaWQgb2YgdGhlIGNyYXNo
IHJlcG9ydCBkaWFsb2cKIC8vIChsdWNraWx5IHRoZSBzYW1lIHRlc3RzIGZhaWwgaW4gUmVsZWFz
ZSBhbmQgRGVidWcgYnVpbGRzIHNvIGZhcikuIE5lZWQgdG8KIC8vIGJlIGluIGEgc2VwYXJhdGUg
bWFpbiBmdW5jdGlvbiBiZWNhdXNlIHRoZSBqc2NtYWluIGZ1bmN0aW9uIHJlcXVpcmVzIG9iamVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4
IGNjY2FiZjM2OTY0ZjQxMWE2NGNiYWUyNTkyZDI0ZjQyNGYwMjZiNDcuLmMyNjNhMTM5MDU1NDM2
NzkwODI5NjhmMDQ5ZGRiMWFhZmNjZjcxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTk0LDYgKzk0LDM3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgfTsKICAgICAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisgICAgY2xhc3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBT
b3VyY2VQcm92aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIGNv
bnN0IFN0cmluZyYgdXJsKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKGRhdGEsIHVybCkpOworICAgICAgICB9CisK
KyAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAg
IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhLCBj
b25zdCBTdHJpbmcmIHVybCkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIodXJsLCBUZXh0
UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICAgICAgLCBtX3NvdXJjZSgiW1dl
YkFzc2VtYmx5IHNvdXJjZV0iKQorICAgICAgICAgICAgLCBtX2RhdGEoZGF0YSkKKyAgICAgICAg
eworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG1fc291cmNlOworICAgICAgICBWZWN0b3I8
dWludDhfdD4gbV9kYXRhOworICAgIH07CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBTb3VyY2VQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMjlmMTAzNzg3M2U1YWZkYjJjMDEzNzll
Njk5ZWRiNWUwNGUxMzVjNC4uMDlkZDU2YWVmZTE3ODFlYTllMDY1OTY1NjRjYjYwNGMxYmExYTAy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkpTVHlwZWRBcnJheUNvbnN0cnVjdG9y
cy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCIKICNpbmNsdWRlICJKU1R5
cGVkQXJyYXlzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCiAjaW5jbHVkZSAiSlNXZWFr
TWFwLmgiCiAjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIK
QEAgLTM0MCw2ICszNDEsMTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAg
ICAgbV9wcm9taXNlUHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNQcm9taXNlUHJvdG90eXBlOjpj
cmVhdGUoZXhlYywgdGhpcywgSlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fcHJvbWlzZVN0cnVjdHVy
ZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3By
b21pc2VQcm90b3R5cGUuZ2V0KCkpKTsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBt
X3dhc21Nb2R1bGVTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dBU01Nb2R1bGU6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgdGhpcykpOworI2VuZGlmCisKICAgICBtX3BhcnNlSW50RnVuY3Rpb24uc2V0
KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZtLnByb3BlcnR5TmFt
ZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5vSW50cmluc2ljKSk7
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnBh
cnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwgRnVuY3Rpb24pOwog
CkBAIC04MDEsNiArODA2LDkgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0
aGlzT2JqZWN0LT5tX2RvbGxhclZNU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9wcm9taXNlU3RydWN0dXJlKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fd2FzbU1vZHVsZVN0cnVjdHVy
ZSk7CisjZW5kaWYKIAogI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlKTsgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNTc5
MmFjMmUxMGJhOGFhZGRmMjg4ZTNjZGI4MGU0OTEyMzczM2U5Ni4uMDU0ZTQ2YzU2MTE4YzAyNmVm
MTMxMDIwMGI2OTM1MTUwMjFhMGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yNDMsNiArMjQzLDkgQEAgcHJvdGVjdGVkOgogICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmU7CiAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmU7CiAg
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcm9taXNlU3RydWN0dXJlOworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3dhc21Nb2R1bGVT
dHJ1Y3R1cmU7CisjZW5kaWYKIAogI2RlZmluZSBERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZ
UEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05h
bWUpIFwKICAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5hbWUgIyMgUHJvdG90eXBlPiBtXyAjIyBs
b3dlck5hbWUgIyMgUHJvdG90eXBlOyBcCkBAIC00NzUsNiArNDc4LDkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBwdHJkaWZmX3QgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmVPZmZzZXQoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1faXRlcmF0b3JSZXN1bHRTdHJ1Y3R1
cmUpOyB9CiAgICAgU3RydWN0dXJlKiByZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUoKSBjb25z
dCB7IHJldHVybiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0
cnVjdHVyZSogcHJvbWlzZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvbWlzZVN0cnVj
dHVyZS5nZXQoKTsgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBTdHJ1Y3R1cmUqIHdh
c21Nb2R1bGVTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3dhc21Nb2R1bGVTdHJ1Y3R1cmUu
Z2V0KCk7IH0KKyNlbmRpZgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRSZW1vdGVE
ZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgcmVtb3Rl
RGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTU1hZ2ljTnVtYmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNTWFnaWNOdW1iZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWRkMmZhMjdmMjhiM2ZhMGIzYmNiOTI3NmRk
OTc1MDljNmEwNjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTU1hZ2ljTnVtYmVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTU1hZ2ljTnVtYmVyX2gKKyNk
ZWZpbmUgV0FTTU1hZ2ljTnVtYmVyX2gKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFt
ZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3YXNtTWFnaWNOdW1iZXIgPSAw
eDZkNzM2MTc3OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWSkKKworI2VuZGlmIC8vIFdBU01NYWdpY051bWJlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZDMwZjUz
OGM3NGYwODlkNGZhNWU2OTNmMWQzMTI5NTNmMTRiZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldBU01Nb2R1bGVQYXJzZXIuaCIKKworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU1dB
U01Nb2R1bGUuaCIKKyNpbmNsdWRlICJXQVNNTWFnaWNOdW1iZXIuaCIKKworI2RlZmluZSBGQUlM
X1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpIGRvIHsgbV9lcnJvck1lc3NhZ2UgPSBlcnJvck1l
c3NhZ2U7IHJldHVybiBmYWxzZTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9VTlNJR05FRF9J
TlQzMl9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRVbnNp
Z25lZEludDMyKHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgw
KQorI2RlZmluZSBSRUFEX0ZMT0FUX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICgh
bV9yZWFkZXIucmVhZEZsb2F0KHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9
IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX0RPVUJMRV9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkg
ZG8geyBpZiAoIW1fcmVhZGVyLnJlYWREb3VibGUoeCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9y
TWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIEZBSUxfSUZfRkFMU0UoY29uZGl0aW9uLCBl
cnJvck1lc3NhZ2UpIGRvIHsgaWYgKCEoY29uZGl0aW9uKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJy
b3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKworbmFtZXNwYWNlIEpTQyB7CisKK1dBU01Nb2R1bGVQ
YXJzZXI6OldBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYgc291cmNlKQorICAgIDog
bV9yZWFkZXIoc3RhdGljX2Nhc3Q8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcio+KHNvdXJjZS5w
cm92aWRlcigpKS0+ZGF0YSgpKQoreworfQorCitKU1dBU01Nb2R1bGUqIFdBU01Nb2R1bGVQYXJz
ZXI6OnBhcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCit7CisgICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBKU1dBU01Nb2R1bGU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT53YXNtTW9kdWxlU3RydWN0dXJlKCkpOworICAgIHBh
cnNlTW9kdWxlKCk7CisgICAgaWYgKCFtX2Vycm9yTWVzc2FnZS5pc051bGwoKSkgeworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBtX2Vycm9yTWVzc2FnZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorICAgIHJldHVybiBtb2R1bGU7Cit9CisKK2Jvb2wgV0FTTU1vZHVsZVBhcnNlcjo6
cGFyc2VNb2R1bGUoKQoreworICAgIHVpbnQzMl90IG1hZ2ljTnVtYmVyOworICAgIFJFQURfVU5T
SUdORURfSU5UMzJfT1JfRkFJTChtYWdpY051bWJlciwgIkNhbm5vdCByZWFkIHRoZSBtYWdpYyBu
dW1iZXIuIik7CisgICAgRkFJTF9JRl9GQUxTRShtYWdpY051bWJlciA9PSB3YXNtTWFnaWNOdW1i
ZXIsICJUaGUgbWFnaWMgbnVtYmVyIGlzIGluY29ycmVjdC4iKTsKKworICAgIC8vIFRPRE86IHBh
cnNlIHRoZSByZXN0CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSlNXQVNNTW9kdWxlKiBwYXJz
ZVdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBXQVNNTW9kdWxlUGFyc2VyIFdBU01Nb2R1bGVQ
YXJzZXIoc291cmNlKTsKKyAgICByZXR1cm4gV0FTTU1vZHVsZVBhcnNlci5wYXJzZShleGVjLT52
bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGVycm9yTWVzc2FnZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1
ZDZhMzE3ODllMTMxMGQ0NzcyZDU4MTI4ZWRhYTRkNjZkM2M0MjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0FTTU1vZHVsZVBhcnNlcl9oCisjZGVmaW5lIFdBU01Nb2R1bGVQYXJzZXJfaAorCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiV0FTTVJlYWRlci5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRXhl
Y1N0YXRlOworY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBKU1dBU01Nb2R1bGU7CitjbGFz
cyBTb3VyY2VDb2RlOworY2xhc3MgVk07CisKK2NsYXNzIFdBU01Nb2R1bGVQYXJzZXIgeworcHVi
bGljOgorICAgIFdBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYpOworICAgIEpTV0FT
TU1vZHVsZSogcGFyc2UoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKKworcHJpdmF0ZToKKyAgICBib29sIHBhcnNlTW9kdWxlKCk7CisKKyAgICBXQVNNUmVhZGVy
IG1fcmVhZGVyOworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKK307CisKK0pTX0VYUE9SVF9Q
UklWQVRFIEpTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJseShFeGVjU3RhdGUqLCBjb25zdCBT
b3VyY2VDb2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCit9IC8vIG5hbWVzcGFjZSBKU0MK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8vIFdBU01Nb2R1bGVQ
YXJzZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yN2JmOTM5NDJiYWMxYmQ0OTJiZjc0MzI4MzBiZTcxMTBiZGFhOTc2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKQEAgLTAs
MCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXQVNNUmVhZGVyLmgiCisKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKKyNkZWZpbmUgQ0hFQ0tfUkVBRChsZW5ndGgpIGRvIHsgaWYgKG1f
Y3Vyc29yICsgbGVuZ3RoID4gbV9idWZmZXIuZW5kKCkpIHJldHVybiBmYWxzZTsgfSB3aGlsZSAo
MCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZFVuc2lnbmVkSW50
MzIodWludDMyX3QmIHJlc3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDQpOworICAgIHJlc3VsdCA9
IG1fY3Vyc29yWzBdIHwgbV9jdXJzb3JbMV0gPDwgOCB8IG1fY3Vyc29yWzJdIDw8IDE2IHwgbV9j
dXJzb3JbM10gPDwgMjQ7CisgICAgbV9jdXJzb3IgKz0gNDsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBXQVNNUmVhZGVyOjpyZWFkRmxvYXQoZmxvYXQmIHJlc3VsdCkKK3sKKyAgICBDSEVD
S19SRUFEKDQpOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhfdCBieXRlc1s0XTsKKyAgICAg
ICAgZmxvYXQgZmxvYXRWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJR19FTkRJQU4pCisg
ICAgICAgIHsgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3Jb
MF0gfQorI2Vsc2UKKyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29y
WzJdLCBtX2N1cnNvclszXSB9CisjZW5kaWYKKyAgICB9OworICAgIHJlc3VsdCA9IHUuZmxvYXRW
YWx1ZTsKKyAgICBtX2N1cnNvciArPSA0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdB
U01SZWFkZXI6OnJlYWREb3VibGUoZG91YmxlJiByZXN1bHQpCit7CisgICAgQ0hFQ0tfUkVBRCg4
KTsKKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ4X3QgYnl0ZXNbOF07CisgICAgICAgIGRvdWJs
ZSBkb3VibGVWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJR19FTkRJQU4pCisgICAgICAg
IHsgbV9jdXJzb3JbN10sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls1XSwgbV9jdXJzb3JbNF0sIG1f
Y3Vyc29yWzNdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzBdIH0KKyNlbHNl
CisgICAgICAgIHsgbV9jdXJzb3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsyXSwgbV9jdXJz
b3JbM10sIG1fY3Vyc29yWzRdLCBtX2N1cnNvcls1XSwgbV9jdXJzb3JbNl0sIG1fY3Vyc29yWzdd
IH0KKyNlbmRpZgorICAgIH07CisgICAgcmVzdWx0ID0gdS5kb3VibGVWYWx1ZTsKKyAgICBtX2N1
cnNvciArPSA4OworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01SZWFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2RlYTJiOTJkODJkZTZkYWE3OGNiN2Q4ZjMzMmEyM2Yz
ZWZmY2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TVJlYWRlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01SZWFkZXJfaAorI2RlZmluZSBXQVNNUmVhZGVy
X2gKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFdBU01SZWFkZXIgeworcHVibGljOgorICAgIFdB
U01SZWFkZXIoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgICAgIDogbV9idWZm
ZXIoYnVmZmVyKQorICAgICAgICAsIG1fY3Vyc29yKGJ1ZmZlci5kYXRhKCkpCisgICAgeworICAg
IH0KKworICAgIGJvb2wgcmVhZFVuc2lnbmVkSW50MzIodWludDMyX3QmIHJlc3VsdCk7CisgICAg
Ym9vbCByZWFkRmxvYXQoZmxvYXQmIHJlc3VsdCk7CisgICAgYm9vbCByZWFkRG91YmxlKGRvdWJs
ZSYgcmVzdWx0KTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIG1fYnVm
ZmVyOworICAgIGNvbnN0IHVpbnQ4X3QqIG1fY3Vyc29yOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNUmVh
ZGVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257894</attachid>
            <date>2015-07-30 19:03:41 -0700</date>
            <delta_ts>2015-07-31 12:41:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147293-20150730190339.patch</filename>
            <type>text/plain</type>
            <size>32894</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmRmMDg4NDgwNzk5MTlhMTQ4ODE2M2Y4MTc1M2UzYWNjNTE5MWRmLi43OGMyMWZlZGY4MGY2Mzdk
ZmNiNjc2NTRmZjAwOWY5NDMwN2Y5ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NSBAQAorMjAxNS0wNy0zMCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV1cGxvYWQg
dGhlIHBhdGNoLCBzaW5jZSByMTg3NTkxIHNob3VsZCBmaXggdGhlICIuLlwuLlxqc2MuY3BwKDQ2
KToKKyAgICAgICAgZmF0YWwgZXJyb3IgQzEwODM6IENhbm5vdCBvcGVuIGluY2x1ZGUgZmlsZTog
J0pTV0FTTU1vZHVsZS5oJyIgaXNzdWUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChmdW5jdGlvbkxvYWRXZWJBc3NlbWJseSk6CisgICAgICAgICogcGFy
c2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6
OmRhdGEpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpXZWJBc3Nl
bWJseVNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpK
U0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6d2FzbU1vZHVsZVN0cnVj
dHVyZSk6CisgICAgICAgICogd2FzbS9XQVNNTWFnaWNOdW1iZXIuaDogQWRkZWQuCisgICAgICAg
ICogd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OldBU01N
b2R1bGVQYXJzZXI6OldBU01Nb2R1bGVQYXJzZXIpOgorICAgICAgICAoSlNDOjpXQVNNTW9kdWxl
UGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChKU0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlTW9k
dWxlKToKKyAgICAgICAgKEpTQzo6cGFyc2VXZWJBc3NlbWJseSk6CisgICAgICAgICogd2FzbS9X
QVNNTW9kdWxlUGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5jcHA6
IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQzMik6Cisg
ICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWRGbG9hdCk6CisgICAgICAgIChKU0M6OldBU01S
ZWFkZXI6OnJlYWREb3VibGUpOgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5oOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6V0FTTVJlYWRlcik6CisKIDIwMTUtMDctMzAgIFN1
a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIHRo
ZSAid2FzbSIgZGlyZWN0b3J5IHRvIHRoZSBBZGRpdGlvbmFsIEluY2x1ZGUgRGlyZWN0b3JpZXMg
Zm9yIGpzYy5leGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzQ0MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDViYTU4
NTVhZTJkYTBhMzI1M2MxMTc1OTA3YjdjOGM0NjdjODFjMy4uNjQ0YWRkNjZjMzI1YzUzMGYxOTE3
OGU2ZjhiYWEwMjJmNzAwMjg1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDExLDYgKzQxMSw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgdG9vbHMv
SlNEb2xsYXJWTVByb3RvdHlwZS5jcHAKIAogICAgIHdhc20vSlNXQVNNTW9kdWxlLmNwcAorICAg
IHdhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAKKyAgICB3YXNtL1dBU01SZWFkZXIuY3BwCiAKICAg
ICB5YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAgIHlhcnIvWWFyckNhbm9uaWNhbGl6ZVVD
UzIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBlNjc2MzM4
MjUzMDllN2NhMmEwZDVkZjEwMTkyZTdmMWY5ZjM0ZDQxLi45MTM2OTcwN2RlZGUyYjY5MTUzYWZh
ZjU0NDQ5MDk3MzQ5MzlhMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oKQEAgLTg3Nyw2ICs4NzcsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNc
SlNEb2xsYXJWTS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xKU0Rv
bGxhclZNUHJvdG90eXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21c
SlNXQVNNTW9kdWxlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FT
TU1vZHVsZVBhcnNlci5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdB
U01SZWFkZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxSZWd1bGFy
RXhwcmVzc2lvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJD
YW5vbmljYWxpemVVQ1MyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHlhcnJc
WWFyckludGVycHJldGVyLmNwcCIgLz4KQEAgLTE3NTIsNiArMTc1NCw5IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx0b29sc1xQcm9maWxlVHJlZU5vZGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHRvb2xzXFRpZXJlZE1NYXBBcnJheS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHdhc21cV0FTTU1hZ2ljTnVtYmVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHdhc21cV0FTTVJlYWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
eWFyclxSZWd1bGFyRXhwcmVzc2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
eWFyclxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx5YXJyXFlhcnJDYW5v
bmljYWxpemVVQ1MyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qLmZpbHRlcnMKaW5kZXggZjY2YzliYzRlMGExY2JmMmQzZjhiZWI3MDlkZTM0NTVkYzc3
M2EwMi4uMDA5YjJmMTIyODBmYWU3ODJiMjk3ZWY0ZGNhMjdjNjMwMzkxYzU1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTgyNCw2
ICsxODI0LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVs
ZS5jcHAiPgogICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxBUElcQVBJQ2FsbGJhY2tGdW5jdGlvbi5oIj4K
QEAgLTQzNTUsNiArNDM2MSwxNSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxK
U1dBU01Nb2R1bGUuaCI+CiAgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTU1hZ2ljTnVtYmVyLmgi
PgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCI+CisgICAgICA8Rmls
dGVyPndhc208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHdhc21cV0FTTVJlYWRlci5oIj4KKyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Tm9u
ZSBJbmNsdWRlPSJKYXZhU2NyaXB0Q29yZVByZUxpbmsuY21kIiAvPgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhZWVlMTAyNTAxNWZkZDVhYmMwNDkxZDM3ODVmNmRjZjU1MTRlYWZm
Li42YTAzOTgyN2QzNDgwOWViZTc4MTQ0YzhiZWUzMWJhMDcwNzA0NTY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTAyMSw2ICsxMDIxLDExIEBACiAJCTcwRUNBNjA5MUFGREJF
QTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwNDFBRkRCRUEyMDA0NDk3MzkgLyogVGVt
cGxhdGVSZWdpc3RyeUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5RUUwQkZGMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25t
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCAqLzsgfTsK
IAkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RUUwQkZFMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NkQxQjYyREUyRTAwMzYwRkI0IC8q
IFdBU01Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIu
Y3BwICovOyB9OworCQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IzOUY3
NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3MDFCNjJERTMyMDAzNjBG
QjQgLyogV0FTTVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjM5Rjc3MjFCNjM1
NzREMDAzNjBGQjQgLyogV0FTTVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FTTVJlYWRl
ci5jcHAgKi87IH07CisJCTdCN0E1RTI3MUI2ODI4OEMwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCN0E1
RTI2MUI2ODI4ODQwMDI3Q0FEMCAvKiBXQVNNTWFnaWNOdW1iZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0Ix
QTQgLyogSlNXQVNNTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3Bw
ICovOyB9OwogCQk3Qjk4RDEzNzFCNjBDRDYyMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNTFCNjBD
RDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJv
bWlzZURlZmVycmVkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMDA4Q0Q4MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAg
Ki87IH07CkBAIC0yNzkzLDYgKzI3OTgsMTEgQEAKIAkJNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5
IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGVtcGxhdGVSZWdpc3RyeUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
OUVFMEJGRDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8q
IFZhcmlhYmxlRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmFyaWFibGVFbnZpcm9ubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5
Rjc2OTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXQVNNTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3NkExQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1
bGVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTU1vZHVsZVBh
cnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjM5Rjc2QzFCNjJERTIyMDAz
NjBGQjQgLyogV0FTTVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
QVNNUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzcxMUI2MzU3
NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdBU01SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
QjdBNUUyNjFCNjgyODg0MDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdBU01NYWdpY051bWJlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAv
KiBKU1dBU01Nb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXQVNN
TW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4Q0Q4MTg3MTI0QkIw
MDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1Byb21pc2VEZWZlcnJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00MzYxLDYgKzQzNzEsMTEgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdCOThE
MTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovLAogCQkJCTdCOThEMTM1
MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLywKKwkJCQk3QjdBNUUyNjFCNjgy
ODg0MDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi8sCisJCQkJN0IzOUY3NjkxQjYyREUy
MjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3BwICovLAorCQkJCTdCMzlGNzZBMUI2MkRF
MjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8sCisJCQkJN0IzOUY3NzExQjYzNTc0
QjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwICovLAorCQkJCTdCMzlGNzZDMUI2MkRFMjIwMDM2
MEZCNCAvKiBXQVNNUmVhZGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdhc207CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjI5NSw2ICs2MzEwLDcgQEAKIAkJCQkwRjVBMTI3NDE5
MkQ5RkRGMDA4NzY0QTMgLyogREZHRG9lc0dDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZG
NTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCMzlG
NzZFMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQyMTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNHbG9iYWxPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1RkQwMDg2MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENv
bnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQz
IC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NTA5LDYg
KzY1MjUsNyBAQAogCQkJCUJDMThDNDU0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0eU5hbWVB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzE2OEMxNUEzQjIzNTAwOEY1REFBIC8qIFBy
b3BlcnR5T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg1RjZCQzE4QzU1M0ZFMDBGMTA2
MjYgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjdBNUUyNzFC
NjgyODhDMDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyogUHJvcGVydHlTdG9yYWdlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjZGQzc1MTE5NjExMEE4MDBFMUQwMkQgLyogQ29tcGxleEdldFN0YXR1
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjQ0LDYgKzY2NjEsNyBAQAogCQkJCUE3QjYwMTgyMTYz
OUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNTg3RDZFMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXQuaCBp
biBIZWFkZXJzICovLAorCQkJCTdCMzlGNzcwMUI2MkRFMzIwMDM2MEZCNCAvKiBXQVNNUmVhZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQ
cm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYgLyog
VmFsdWVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QzVFNUYxOEUzNUY1RTAwRDQz
MUMzIC8qIEZUTERXQVJGUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzI4MCw2ICs3Mjk4
LDcgQEAKIAkJCQkwRjlEMzM5NjE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hlZEF0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzNjk0MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVw
UGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjcxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0ZsdXNoRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCMzlGNzZEMUI2MkRFMkUw
MDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0Ex
QkY5MUE5RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkVDOURDNzEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyRkNDRjkxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR0dyYXBoU2Fm
ZXBvaW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzY5OSw2ICs3NzE4LDcgQEAKIAkJCQkwRjI0
RTU1MDE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
MkQyRDM4RjFBREYxMDNGMDAwMjA2QzEgLyogRnVuY3Rpb25SYXJlRGF0YS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjc3MDA5MjE0MDJGRjNDMDA3OEVCMzkgLyogU2FtcGxpbmdDb3VudGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTdCMzlGNzcyMUI2MzU3NEQwMDM2MEZCNCAvKiBXQVNNUmVh
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjlEODg1MEVEMjFDM0QwMEI4OTYxOSAvKiBT
YW1wbGluZ1Rvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQzBFQzYxQUEwRDdEQTAwQjZB
QUZBIC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEx
QjlFMjM5MUI0RTBENjcwMEJDN0ZFRCAvKiBJbnRsQ29sbGF0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDhkYmRjODVlNDYxNTIyNzY2YjdkZmZkZjk0NGJmNTEz
MDM4YTRlM2MuLmNlZThmNjdiZjdiMWM2OTIxMTIxNjU4YWRjMjk0NzZiNzhkZDAwZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiSlNPTk9iamVjdC5o
IgogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUg
IkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKQEAgLTUwLDYgKzUx
LDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlICJU
ZXN0UnVubmVyVXRpbHMuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKKyNpbmNsdWRl
ICJXQVNNTW9kdWxlUGFyc2VyLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlv
Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC00OTIsNiArNDk0LDkgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZXR1cm5UeXBlRm9yKEV4ZWNTdGF0ZSop
Owogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNC
bG9ja0V4ZWN1dGlvblJhbmdlcyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4ZWN1dGVkKEV4ZWNTdGF0ZSopOwog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRp
b25GdXp6KEV4ZWNTdGF0ZSopOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5KEV4ZWNTdGF0
ZSopOworI2VuZGlmCiAKICNpZiBFTkFCTEUoU0FNUExJTkdfRkxBR1MpCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MoRXhlY1N0YXRl
Kik7CkBAIC02NTUsNiArNjYwLDEwIEBAIHByb3RlY3RlZDoKIAogICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImVuYWJsZUV4Y2VwdGlvbkZ1enoiLCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enos
IDApOwogICAgICAgICAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIGFkZEZ1bmN0
aW9uKHZtLCAibG9hZFdlYkFzc2VtYmx5IiwgZnVuY3Rpb25Mb2FkV2ViQXNzZW1ibHksIDEpOwor
I2VuZGlmCisKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGds
b2JhbEV4ZWMoKSwgMCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRz
LnNpemUoKTsgKytpKQogICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGdsb2JhbEV4
ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKQEAgLTExODMs
NiArMTE5MiwyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxl
RXhjZXB0aW9uRnV6eihFeGVjU3RhdGUqKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYyk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcjsKKyAgICBpZiAoIWZpbGxC
dWZmZXJXaXRoQ29udGVudHNPZkZpbGUoZmlsZU5hbWUsIGJ1ZmZlcikpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKSk7CisgICAg
UmVmUHRyPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8VmVjdG9yPHVpbnQ4
X3Q+Jj4oYnVmZmVyKSwgZmlsZU5hbWUpOworICAgIFNvdXJjZUNvZGUgc291cmNlKHNvdXJjZVBy
b3ZpZGVyKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIEpTV0FTTU1vZHVsZSogbW9k
dWxlID0gcGFyc2VXZWJBc3NlbWJseShleGVjLCBzb3VyY2UsIGVycm9yTWVzc2FnZSk7CisgICAg
aWYgKCFtb2R1bGUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS50
aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCBlcnJvck1lc3NhZ2Up
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtb2R1bGUpOworfQorI2VuZGlmCisKIC8v
IFVzZSBTRUggZm9yIFJlbGVhc2UgYnVpbGRzIG9ubHkgdG8gZ2V0IHJpZCBvZiB0aGUgY3Jhc2gg
cmVwb3J0IGRpYWxvZwogLy8gKGx1Y2tpbHkgdGhlIHNhbWUgdGVzdHMgZmFpbCBpbiBSZWxlYXNl
IGFuZCBEZWJ1ZyBidWlsZHMgc28gZmFyKS4gTmVlZCB0bwogLy8gYmUgaW4gYSBzZXBhcmF0ZSBt
YWluIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGpzY21haW4gZnVuY3Rpb24gcmVxdWlyZXMgb2JqZWN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXgg
Y2NjYWJmMzY5NjRmNDExYTY0Y2JhZTI1OTJkMjRmNDI0ZjAyNmI0Ny4uYzI2M2ExMzkwNTU0MzY3
OTA4Mjk2OGYwNDlkZGIxYWFmY2NmNzEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuaApAQCAtOTQsNiArOTQsMzcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKICAgICB9OwogICAgIAorI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKKyAgICBjbGFzcyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyIDogcHVibGljIFNv
dXJjZVByb3ZpZGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1i
bHlTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29u
c3QgU3RyaW5nJiB1cmwpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoZGF0YSwgdXJsKSk7CisgICAgICAgIH0KKwor
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fc291cmNlOworICAgICAgICB9CisKKyAgICAg
ICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKCkgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIGNv
bnN0IFN0cmluZyYgdXJsKQorICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcih1cmwsIFRleHRQ
b3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgICAgICAsIG1fc291cmNlKCJbV2Vi
QXNzZW1ibHkgc291cmNlXSIpCisgICAgICAgICAgICAsIG1fZGF0YShkYXRhKQorICAgICAgICB7
CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgbV9zb3VyY2U7CisgICAgICAgIFZlY3Rvcjx1
aW50OF90PiBtX2RhdGE7CisgICAgfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
I2VuZGlmIC8vIFNvdXJjZVByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA3YWUyZTllNTliZTg4MWQ3NzU4Y2YzNjQ2
OTUyZjQ5NDM5ZjIyMDg5Li4xY2FkZmZlNWI5NGZlNzAwODcxMGIyYmUxZjM1YTBhMzU4NzQ5NjZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5Q29uc3RydWN0b3Jz
LmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5UHJvdG90eXBlcy5oIgogI2luY2x1ZGUgIkpTVHlw
ZWRBcnJheXMuaCIKKyNpbmNsdWRlICJKU1dBU01Nb2R1bGUuaCIKICNpbmNsdWRlICJKU1dlYWtN
YXAuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgpA
QCAtMzQwLDYgKzM0MSwxMCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAg
ICBtX3Byb21pc2VQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU1Byb21pc2VQcm90b3R5cGU6OmNy
ZWF0ZShleGVjLCB0aGlzLCBKU1Byb21pc2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9wcm9taXNlU3RydWN0dXJl
LnNldCh2bSwgdGhpcywgSlNQcm9taXNlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fcHJv
bWlzZVByb3RvdHlwZS5nZXQoKSkpOwogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIG1f
d2FzbU1vZHVsZVN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTV0FTTU1vZHVsZTo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzKSk7CisjZW5kaWYKKwogICAgIG1fcGFyc2VJbnRGdW5jdGlvbi5zZXQo
dm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgdm0ucHJvcGVydHlOYW1l
cy0+cGFyc2VJbnQuc3RyaW5nKCksIGdsb2JhbEZ1bmNQYXJzZUludCwgTm9JbnRyaW5zaWMpKTsK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cGFy
c2VJbnQsIG1fcGFyc2VJbnRGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0gfCBGdW5jdGlvbik7CiAK
QEAgLTgwMSw2ICs4MDYsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRo
aXNPYmplY3QtPm1fZG9sbGFyVk1TdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX3Byb21pc2VTdHJ1Y3R1cmUpOworI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV93YXNtTW9kdWxlU3RydWN0dXJl
KTsKKyNlbmRpZgogCiAjZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dl
ck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUpOyBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA1Nzky
YWMyZTEwYmE4YWFkZGYyODhlM2NkYjgwZTQ5MTIzNzMzZTk2Li4wNTRlNDZjNTYxMThjMDI2ZWYx
MzEwMjAwYjY5MzUxNTAyMWEwYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTI0Myw2ICsyNDMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZTsKICAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKICAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Byb21pc2VTdHJ1Y3R1cmU7CisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fd2FzbU1vZHVsZVN0
cnVjdHVyZTsKKyNlbmRpZgogCiAjZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQ
RShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFt
ZSkgXAogICAgIFdyaXRlQmFycmllcjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxv
d2VyTmFtZSAjIyBQcm90b3R5cGU7IFwKQEAgLTQ3NSw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHB0cmRpZmZfdCBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZU9mZnNldCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVy
ZSk7IH0KICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3Ry
dWN0dXJlKiBwcm9taXNlU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9taXNlU3RydWN0
dXJlLmdldCgpOyB9CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgIFN0cnVjdHVyZSogd2Fz
bU1vZHVsZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzbU1vZHVsZVN0cnVjdHVyZS5n
ZXQoKTsgfQorI2VuZGlmCiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldFJlbW90ZURl
YnVnZ2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCByZW1vdGVE
ZWJ1Z2dpbmdFbmFibGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNTWFnaWNOdW1iZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01NYWdpY051bWJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZGQyZmEyN2YyOGIzZmEwYjNiY2I5Mjc2ZGQ5
NzUwOWM2YTA2NDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNTWFnaWNOdW1iZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXQVNNTWFnaWNOdW1iZXJfaAorI2Rl
ZmluZSBXQVNNTWFnaWNOdW1iZXJfaAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCituYW1l
c3BhY2UgSlNDIHsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IHdhc21NYWdpY051bWJlciA9IDB4
NmQ3MzYxNzc7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTU1hZ2ljTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhkMzBmNTM4
Yzc0ZjA4OWQ0ZmE1ZTY5M2YxZDMxMjk1M2YxNGJmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsNzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0FTTU1vZHVsZVBhcnNlci5oIgorCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTV0FT
TU1vZHVsZS5oIgorI2luY2x1ZGUgIldBU01NYWdpY051bWJlci5oIgorCisjZGVmaW5lIEZBSUxf
V0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSkgZG8geyBtX2Vycm9yTWVzc2FnZSA9IGVycm9yTWVz
c2FnZTsgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX1VOU0lHTkVEX0lO
VDMyX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZFVuc2ln
bmVkSW50MzIoeCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDAp
CisjZGVmaW5lIFJFQURfRkxPQVRfT1JfRkFJTCh4LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFt
X3JlYWRlci5yZWFkRmxvYXQoeCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0g
d2hpbGUgKDApCisjZGVmaW5lIFJFQURfRE9VQkxFX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdlKSBk
byB7IGlmICghbV9yZWFkZXIucmVhZERvdWJsZSh4KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JN
ZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgRkFJTF9JRl9GQUxTRShjb25kaXRpb24sIGVy
cm9yTWVzc2FnZSkgZG8geyBpZiAoIShjb25kaXRpb24pKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJv
ck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorCituYW1lc3BhY2UgSlNDIHsKKworV0FTTU1vZHVsZVBh
cnNlcjo6V0FTTU1vZHVsZVBhcnNlcihjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCisgICAgOiBt
X3JlYWRlcihzdGF0aWNfY2FzdDxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKj4oc291cmNlLnBy
b3ZpZGVyKCkpLT5kYXRhKCkpCit7Cit9CisKK0pTV0FTTU1vZHVsZSogV0FTTU1vZHVsZVBhcnNl
cjo6cGFyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKK3sKKyAgICBKU1dBU01Nb2R1bGUqIG1vZHVsZSA9IEpTV0FTTU1vZHVsZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPndhc21Nb2R1bGVTdHJ1Y3R1cmUoKSk7CisgICAgcGFy
c2VNb2R1bGUoKTsKKyAgICBpZiAoIW1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpKSB7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IG1fZXJyb3JNZXNzYWdlOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgcmV0dXJuIG1vZHVsZTsKK30KKworYm9vbCBXQVNNTW9kdWxlUGFyc2VyOjpw
YXJzZU1vZHVsZSgpCit7CisgICAgdWludDMyX3QgbWFnaWNOdW1iZXI7CisgICAgUkVBRF9VTlNJ
R05FRF9JTlQzMl9PUl9GQUlMKG1hZ2ljTnVtYmVyLCAiQ2Fubm90IHJlYWQgdGhlIG1hZ2ljIG51
bWJlci4iKTsKKyAgICBGQUlMX0lGX0ZBTFNFKG1hZ2ljTnVtYmVyID09IHdhc21NYWdpY051bWJl
ciwgIlRoZSBtYWdpYyBudW1iZXIgaXMgaW5jb3JyZWN0LiIpOworCisgICAgLy8gVE9ETzogcGFy
c2UgdGhlIHJlc3QKKworICAgIHJldHVybiB0cnVlOworfQorCitKU1dBU01Nb2R1bGUqIHBhcnNl
V2ViQXNzZW1ibHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFN0
cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIFdBU01Nb2R1bGVQYXJzZXIgV0FTTU1vZHVsZVBh
cnNlcihzb3VyY2UpOworICAgIHJldHVybiBXQVNNTW9kdWxlUGFyc2VyLnBhcnNlKGV4ZWMtPnZt
KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVk
NmEzMTc4OWUxMzEwZDQ3NzJkNTgxMjhlZGFhNGQ2NmQzYzQyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXQVNNTW9kdWxlUGFyc2VyX2gKKyNkZWZpbmUgV0FTTU1vZHVsZVBhcnNlcl9oCisKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJXQVNNUmVhZGVyLmgiCisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVj
U3RhdGU7CitjbGFzcyBKU0dsb2JhbE9iamVjdDsKK2NsYXNzIEpTV0FTTU1vZHVsZTsKK2NsYXNz
IFNvdXJjZUNvZGU7CitjbGFzcyBWTTsKKworY2xhc3MgV0FTTU1vZHVsZVBhcnNlciB7CitwdWJs
aWM6CisgICAgV0FTTU1vZHVsZVBhcnNlcihjb25zdCBTb3VyY2VDb2RlJik7CisgICAgSlNXQVNN
TW9kdWxlKiBwYXJzZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OworCitwcml2YXRlOgorICAgIGJvb2wgcGFyc2VNb2R1bGUoKTsKKworICAgIFdBU01SZWFkZXIg
bV9yZWFkZXI7CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOworfTsKKworSlNfRVhQT1JUX1BS
SVZBVEUgSlNXQVNNTW9kdWxlKiBwYXJzZVdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSosIGNvbnN0IFNv
dXJjZUNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gV0FTTU1vZHVsZVBh
cnNlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI3YmY5Mzk0MmJhYzFiZDQ5MmJmNzQzMjgzMGJlNzExMGJkYWE5NzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcApAQCAtMCww
ICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldBU01SZWFkZXIuaCIKKworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKworI2RlZmluZSBDSEVDS19SRUFEKGxlbmd0aCkgZG8geyBpZiAobV9j
dXJzb3IgKyBsZW5ndGggPiBtX2J1ZmZlci5lbmQoKSkgcmV0dXJuIGZhbHNlOyB9IHdoaWxlICgw
KQorCituYW1lc3BhY2UgSlNDIHsKKworYm9vbCBXQVNNUmVhZGVyOjpyZWFkVW5zaWduZWRJbnQz
Mih1aW50MzJfdCYgcmVzdWx0KQoreworICAgIENIRUNLX1JFQUQoNCk7CisgICAgcmVzdWx0ID0g
bV9jdXJzb3JbMF0gfCBtX2N1cnNvclsxXSA8PCA4IHwgbV9jdXJzb3JbMl0gPDwgMTYgfCBtX2N1
cnNvclszXSA8PCAyNDsKKyAgICBtX2N1cnNvciArPSA0OworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIFdBU01SZWFkZXI6OnJlYWRGbG9hdChmbG9hdCYgcmVzdWx0KQoreworICAgIENIRUNL
X1JFQUQoNCk7CisgICAgdW5pb24geworICAgICAgICB1aW50OF90IGJ5dGVzWzRdOworICAgICAg
ICBmbG9hdCBmbG9hdFZhbHVlOworICAgIH0gdSA9IHsKKyNpZiBDUFUoQklHX0VORElBTikKKyAg
ICAgICAgeyBtX2N1cnNvclszXSwgbV9jdXJzb3JbMl0sIG1fY3Vyc29yWzFdLCBtX2N1cnNvclsw
XSB9CisjZWxzZQorICAgICAgICB7IG1fY3Vyc29yWzBdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3Jb
Ml0sIG1fY3Vyc29yWzNdIH0KKyNlbmRpZgorICAgIH07CisgICAgcmVzdWx0ID0gdS5mbG9hdFZh
bHVlOworICAgIG1fY3Vyc29yICs9IDQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV0FT
TVJlYWRlcjo6cmVhZERvdWJsZShkb3VibGUmIHJlc3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDgp
OworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhfdCBieXRlc1s4XTsKKyAgICAgICAgZG91Ymxl
IGRvdWJsZVZhbHVlOworICAgIH0gdSA9IHsKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICAgICAg
eyBtX2N1cnNvcls3XSwgbV9jdXJzb3JbNl0sIG1fY3Vyc29yWzVdLCBtX2N1cnNvcls0XSwgbV9j
dXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclsxXSwgbV9jdXJzb3JbMF0gfQorI2Vsc2UK
KyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29yWzJdLCBtX2N1cnNv
clszXSwgbV9jdXJzb3JbNF0sIG1fY3Vyc29yWzVdLCBtX2N1cnNvcls2XSwgbV9jdXJzb3JbN10g
fQorI2VuZGlmCisgICAgfTsKKyAgICByZXN1bHQgPSB1LmRvdWJsZVZhbHVlOworICAgIG1fY3Vy
c29yICs9IDg7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTVJlYWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TVJlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjZGVhMmI5MmQ4MmRlNmRhYTc4Y2I3ZDhmMzMyYTIzZjNl
ZmZjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
UmVhZGVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTVJlYWRlcl9oCisjZGVmaW5lIFdBU01SZWFkZXJf
aAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgV0FTTVJlYWRlciB7CitwdWJsaWM6CisgICAgV0FT
TVJlYWRlcihjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZl
cihidWZmZXIpCisgICAgICAgICwgbV9jdXJzb3IoYnVmZmVyLmRhdGEoKSkKKyAgICB7CisgICAg
fQorCisgICAgYm9vbCByZWFkVW5zaWduZWRJbnQzMih1aW50MzJfdCYgcmVzdWx0KTsKKyAgICBi
b29sIHJlYWRGbG9hdChmbG9hdCYgcmVzdWx0KTsKKyAgICBib29sIHJlYWREb3VibGUoZG91Ymxl
JiByZXN1bHQpOworCitwcml2YXRlOgorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbV9idWZm
ZXI7CisgICAgY29uc3QgdWludDhfdCogbV9jdXJzb3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8vIFdBU01SZWFk
ZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257946</attachid>
            <date>2015-07-31 12:41:33 -0700</date>
            <delta_ts>2015-07-31 13:34:57 -0700</delta_ts>
            <desc>Fix ChangeLog</desc>
            <filename>bug-147293-20150731124131.patch</filename>
            <type>text/plain</type>
            <size>33135</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmRmMDg4NDgwNzk5MTlhMTQ4ODE2M2Y4MTc1M2UzYWNjNTE5MWRmLi4zZjcwMjllYWY0NjY5MDky
YWQyMzI5Y2UxYzM1ODgyNWQyY2U5YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wNy0zMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlIHBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtbGFuZGlu
ZyBhZnRlciBmaXggZm9yIHRoZSAiLi5cLi5canNjLmNwcCg0Nik6IGZhdGFsIGVycm9yIEMxMDgz
OiBDYW5ub3Qgb3BlbgorICAgICAgICBpbmNsdWRlIGZpbGU6ICdKU1dBU01Nb2R1bGUuaCciIGlz
c3VlIG9uIFdpbmRvd3MuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYkFzc2VtYmx5IG1vZHVsZSBw
YXJzZXIgZm9yIFdlYkFzc2VtYmx5IGZpbGVzIHByb2R1Y2VkIGJ5IHBhY2stYXNtanMKKyAgICAg
ICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9wb2x5ZmlsbC1wcm90b3R5cGUtMT4u
IFRoaXMgcGF0Y2ggb25seSBjaGVja3MKKyAgICAgICAgdGhlIG1hZ2ljIG51bWJlciBhdCB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBmaWxlcy4gUGFyc2luZyBvZiB0aGUgcmVzdCB3aWxsIGJlCisgICAg
ICAgIGltcGxlbWVudGVkIGluIGEgc3Vic2VxdWVudCBwYXRjaC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9iYWxPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0aW9uTG9hZFdlYkFzc2VtYmx5KToK
KyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlT
b3VyY2VQcm92aWRlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI6OldlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp3
YXNtTW9kdWxlU3RydWN0dXJlKToKKyAgICAgICAgKiB3YXNtL1dBU01NYWdpY051bWJlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6V0FTTU1vZHVsZVBhcnNlcjo6V0FTTU1vZHVsZVBhcnNlcik6CisgICAgICAgIChK
U0M6OldBU01Nb2R1bGVQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKEpTQzo6V0FTTU1vZHVsZVBh
cnNlcjo6cGFyc2VNb2R1bGUpOgorICAgICAgICAoSlNDOjpwYXJzZVdlYkFzc2VtYmx5KToKKyAg
ICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgICogd2FzbS9X
QVNNUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OldBU01SZWFkZXI6OnJlYWRVbnNp
Z25lZEludDMyKToKKyAgICAgICAgKEpTQzo6V0FTTVJlYWRlcjo6cmVhZEZsb2F0KToKKyAgICAg
ICAgKEpTQzo6V0FTTVJlYWRlcjo6cmVhZERvdWJsZSk6CisgICAgICAgICogd2FzbS9XQVNNUmVh
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpXQVNNUmVhZGVyKToKKwog
MjAxNS0wNy0zMCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAog
ICAgICAgICBBZGQgdGhlICJ3YXNtIiBkaXJlY3RvcnkgdG8gdGhlIEFkZGl0aW9uYWwgSW5jbHVk
ZSBEaXJlY3RvcmllcyBmb3IganNjLmV4ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDQ1YmE1ODU1YWUyZGEwYTMyNTNjMTE3NTkwN2I3YzhjNDY3YzgxYzMuLjY0NGFkZDY2
YzMyNWM1MzBmMTkxNzhlNmY4YmFhMDIyZjcwMDI4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTQxMSw2ICs0MTEsOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIHRvb2xzL0pTRG9sbGFyVk1Qcm90b3R5cGUuY3BwCiAKICAgICB3YXNtL0pTV0FTTU1v
ZHVsZS5jcHAKKyAgICB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwCisgICAgd2FzbS9XQVNNUmVh
ZGVyLmNwcAogCiAgICAgeWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKICAgICB5YXJyL1lhcnJD
YW5vbmljYWxpemVVQ1MyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oK
aW5kZXggZTY3NjMzODI1MzA5ZTdjYTJhMGQ1ZGYxMDE5MmU3ZjFmOWYzNGQ0MS4uOTEzNjk3MDdk
ZWRlMmI2OTE1M2FmYWY1NDQ0OTA5NzM0OTM5YTJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qCkBAIC04NzcsNiArODc3LDggQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk0uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cdG9vbHNcSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx3YXNtXEpTV0FTTU1vZHVsZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd2FzbVxXQVNNUmVhZGVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHlhcnJcUmVndWxhckV4cHJlc3Npb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx5YXJyXFlhcnJJbnRlcnByZXRlci5jcHAiIC8+CkBAIC0xNzUyLDYgKzE3NTQsOSBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcUHJvZmlsZVRyZWVOb2RlLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xUaWVyZWRNTWFwQXJyYXkuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01NYWdpY051bWJlci5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHlhcnJcUmVndWxhckV4cHJlc3Npb24uaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHlhcnJcWWFyci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
eWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGY2NmM5YmM0ZTBhMWNiZjJkM2Y4YmVi
NzA5ZGUzNDU1ZGM3NzNhMDIuLjAwOWIyZjEyMjgwZmFlNzgyYjI5N2VmNGRjYTI3YzYzMDM5MWM1
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTE4MjQsNiArMTgyNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2Fz
bVxKU1dBU01Nb2R1bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFy
c2VyLmNwcCI+CisgICAgICA8RmlsdGVyPndhc208L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTVJlYWRlci5jcHAiPgorICAgICAg
PEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgog
ICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cQVBJXEFQSUNhbGxiYWNr
RnVuY3Rpb24uaCI+CkBAIC00MzU1LDYgKzQzNjEsMTUgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiPgogICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01N
YWdpY051bWJlci5oIj4KKyAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmgi
PgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01SZWFkZXIuaCI+CisgICAgICA8RmlsdGVyPndh
c208L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3Jv
dXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQcmVMaW5rLmNtZCIgLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWVlZTEwMjUwMTVmZGQ1YWJjMDQ5MWQzNzg1
ZjZkY2Y1NTE0ZWFmZi4uNmEwMzk4MjdkMzQ4MDllYmU3ODE0NGM4YmVlMzFiYTA3MDcwNDU2NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjEsNiArMTAyMSwxMSBAQAogCQk3
MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MDQxQUZEQkVBMjAw
NDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVu
dC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmly
b25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCMzlGNzZEMUI2MkRF
MkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNN
TW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKKwkJN0IzOUY3NkUxQjYyREUzMjAwMzYwRkI0IC8qIFdB
U01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCMzlGNzZBMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0IzOUY3NzAx
QjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNUmVh
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
N0IzOUY3NzIxQjYzNTc0RDAwMzYwRkI0IC8qIFdBU01SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IzOUY3NzExQjYzNTc0QjAwMzYwRkI0
IC8qIFdBU01SZWFkZXIuY3BwICovOyB9OworCQk3QjdBNUUyNzFCNjgyODhDMDAyN0NBRDAgLyog
V0FTTU1hZ2ljTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QjdBNUUyNjFCNjgyODg0MDAyN0NBRDAgLyogV0FTTU1hZ2ljTnVtYmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I5OEQxMzYx
QjYwQ0Q1RjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNX
QVNNTW9kdWxlLmNwcCAqLzsgfTsKIAkJN0I5OEQxMzcxQjYwQ0Q2MjAwMjNCMUE0IC8qIEpTV0FT
TU1vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1
NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNl
RGVmZXJyZWQuY3BwICovOyB9OwpAQCAtMjc5Myw2ICsyNzk4LDExIEBACiAJCTcwRUNBNjA0MUFG
REJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRlbXBsYXRlUmVnaXN0cnlLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzlFRTBCRkQxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFyaWFibGVFbnZp
cm9ubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RUUwQkZFMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0FTTU1vZHVsZVBhcnNlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMzlGNzZBMUI2MkRFMjIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdBU01Nb2R1bGVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IzOUY3
NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0FTTVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
QjM5Rjc3MTFCNjM1NzRCMDAzNjBGQjQgLyogV0FTTVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXQVNNUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0I3QTVFMjYxQjY4Mjg4NDAwMjdDQUQwIC8qIFdBU01NYWdpY051bWJlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNTWFnaWNOdW1iZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dB
U01Nb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qjk4RDEzNTFCNjBD
RDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV0FTTU1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzAw
OENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9taXNlRGVmZXJyZWQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM2MSw2ICs0MzcxLDExIEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk3Qjk4RDEzNDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLywK
IAkJCQk3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi8sCisJCQkJ
N0I3QTVFMjYxQjY4Mjg4NDAwMjdDQUQwIC8qIFdBU01NYWdpY051bWJlci5oICovLAorCQkJCTdC
MzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCAqLywKKwkJCQk3
QjM5Rjc2QTFCNjJERTIyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oICovLAorCQkJCTdC
MzlGNzcxMUI2MzU3NEIwMDM2MEZCNCAvKiBXQVNNUmVhZGVyLmNwcCAqLywKKwkJCQk3QjM5Rjc2
QzFCNjJERTIyMDAzNjBGQjQgLyogV0FTTVJlYWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3
YXNtOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYyOTUsNiArNjMxMCw3IEBACiAJ
CQkJMEY1QTEyNzQxOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNjE3QjZCNUFCMDBBN0FFM0Yg
LyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3QjM5Rjc2RTFCNjJERTMyMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNH
bG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgy
NDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICov
LApAQCAtNjUwOSw2ICs2NTI1LDcgQEAKIAkJCQlCQzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyog
UHJvcGVydHlOYW1lQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcxNjhDMTVBM0IyMzUw
MDhGNURBQSAvKiBQcm9wZXJ0eU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NUY2QkMx
OEM1NTNGRTAwRjEwNjI2IC8qIFNwaWxsUmVnaXN0ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJN0I3QTVFMjcxQjY4Mjg4QzAwMjdDQUQwIC8qIFdBU01NYWdpY051bWJlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NTUwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5U2xvdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOUMxNUVEOEU0NjAwRjE2N0IyIC8qIFByb3BlcnR5U3Rv
cmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RkM3NTExOTYxMTBBODAwRTFEMDJEIC8qIENv
bXBsZXhHZXRTdGF0dXMuaCBpbiBIZWFkZXJzICovLApAQCAtNjY0NCw2ICs2NjYxLDcgQEAKIAkJ
CQlBN0I2MDE4MjE2MzlGRDJBMDAzNzJCQTMgLyogVW5saW5rZWRDb2RlQmxvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMTU4N0Q2RTFCNERDMTQxMDBENjk4NDkgLyogSW50bERhdGVU
aW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjM5Rjc3MDFCNjJERTMyMDAzNjBGQjQg
LyogV0FTTVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NjNCMzgxM0ZDNkZFOTAwMDJE
OUIyIC8qIFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0MjZBNDgxNDYwQ0JC
MzAwMTMxRjhGIC8qIFZhbHVlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUM1RTVG
MThFMzVGNUUwMEQ0MzFDMyAvKiBGVExEV0FSRlJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTcyODAsNiArNzI5OCw3IEBACiAJCQkJMEY5RDMzOTYxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0Zs
dXNoZWRBdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzY5NDFBRTlDQzMzMDAwRDRERkIg
LyogREZHQ2xlYW5VcFBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0Y3MTdBMEI4
Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QjM5
Rjc2RDFCNjJERTJFMDAzNjBGQjQgLyogV0FTTU1vZHVsZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjNBMUJGOTFBOUVDQjdEMDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQzcxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0dyYXBoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkZDQ0Y5MThBNjAwNzAwMDFBMjdGOCAv
KiBERkdHcmFwaFNhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc2OTksNiArNzcxOCw3
IEBACiAJCQkJMEYyNEU1NTAxN0VFMjc0OTAwQUJCMjE3IC8qIFJlcGF0Y2guY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNjJEMkQzOEYxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NzAwOTIxNDAyRkYzQzAwNzhFQjM5IC8qIFNhbXBs
aW5nQ291bnRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QjM5Rjc3MjFCNjM1NzREMDAzNjBG
QjQgLyogV0FTTVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDg4NTBFRDIxQzNE
MDBCODk2MTkgLyogU2FtcGxpbmdUb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2
MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMUI5RTIzOTFCNEUwRDY3MDBCQzdGRUQgLyogSW50bENvbGxhdG9yLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA4ZGJkYzg1ZTQ2MTUyMjc2NmI3
ZGZmZGY5NDRiZjUxMzAzOGE0ZTNjLi5jZWU4ZjY3YmY3YjFjNjkyMTEyMTY1OGFkYzI5NDc2Yjc4
ZGQwMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUg
IkpTT05PYmplY3QuaCIKICNpbmNsdWRlICJKU1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJKU1dBU01Nb2R1bGUuaCIKICNpbmNsdWRlICJQcm9maWxlckRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgi
CkBAIC01MCw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9n
LmgiCisjaW5jbHVkZSAiV0FTTU1vZHVsZVBhcnNlci5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNp
bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDkyLDYgKzQ5NCw5IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmV0dXJuVHlwZUZv
cihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZChF
eGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
RW5hYmxlRXhjZXB0aW9uRnV6eihFeGVjU3RhdGUqKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRXZWJBc3Nl
bWJseShFeGVjU3RhdGUqKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRTYW1wbGluZ0Zs
YWdzKEV4ZWNTdGF0ZSopOwpAQCAtNjU1LDYgKzY2MCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJlbmFibGVFeGNlcHRpb25GdXp6IiwgZnVuY3Rpb25FbmFibGVF
eGNlcHRpb25GdXp6LCAwKTsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImxvYWRXZWJBc3NlbWJseSIsIGZ1bmN0aW9uTG9hZFdlYkFz
c2VtYmx5LCAxKTsKKyNlbmRpZgorCiAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gY29uc3RydWN0
RW1wdHlBcnJheShnbG9iYWxFeGVjKCksIDApOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJ
bmRleChnbG9iYWxFeGVjKCksIGksIGpzU3RyaW5nKGdsb2JhbEV4ZWMoKSwgYXJndW1lbnRzW2ld
KSk7CkBAIC0xMTgzLDYgKzExOTIsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkVuYWJsZUV4Y2VwdGlvbkZ1enooRXhlY1N0YXRlKikKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRXZWJBc3NlbWJseShFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgU3RyaW5nIGZpbGVOYW1lID0gZXhlYy0+YXJndW1lbnQoMCku
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgIFZlY3RvcjxjaGFyPiBidWZmZXI7Cisg
ICAgaWYgKCFmaWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBidWZmZXIpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24o
ZXhlYywgY3JlYXRlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3Qgb3BlbiBmaWxl
LiIpKSkpOworICAgIFJlZlB0cjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92
aWRlciA9IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmNyZWF0ZShyZWludGVycHJldF9jYXN0
PFZlY3Rvcjx1aW50OF90PiY+KGJ1ZmZlciksIGZpbGVOYW1lKTsKKyAgICBTb3VyY2VDb2RlIHNv
dXJjZShzb3VyY2VQcm92aWRlcik7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBKU1dB
U01Nb2R1bGUqIG1vZHVsZSA9IHBhcnNlV2ViQXNzZW1ibHkoZXhlYywgc291cmNlLCBlcnJvck1l
c3NhZ2UpOworICAgIGlmICghbW9kdWxlKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
ZXJyb3JNZXNzYWdlKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobW9kdWxlKTsKK30K
KyNlbmRpZgorCiAvLyBVc2UgU0VIIGZvciBSZWxlYXNlIGJ1aWxkcyBvbmx5IHRvIGdldCByaWQg
b2YgdGhlIGNyYXNoIHJlcG9ydCBkaWFsb2cKIC8vIChsdWNraWx5IHRoZSBzYW1lIHRlc3RzIGZh
aWwgaW4gUmVsZWFzZSBhbmQgRGVidWcgYnVpbGRzIHNvIGZhcikuIE5lZWQgdG8KIC8vIGJlIGlu
IGEgc2VwYXJhdGUgbWFpbiBmdW5jdGlvbiBiZWNhdXNlIHRoZSBqc2NtYWluIGZ1bmN0aW9uIHJl
cXVpcmVzIG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92
aWRlci5oCmluZGV4IGNjY2FiZjM2OTY0ZjQxMWE2NGNiYWUyNTkyZDI0ZjQyNGYwMjZiNDcuLmMy
NjNhMTM5MDU1NDM2NzkwODI5NjhmMDQ5ZGRiMWFhZmNjZjcxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTk0LDYgKzk0LDM3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgfTsKICAgICAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgY2xhc3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRl
ciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
UmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBWZWN0b3I8dWludDhf
dD4mIGRhdGEsIGNvbnN0IFN0cmluZyYgdXJsKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKGRhdGEsIHVybCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZTsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSgpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgICAgIH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBkYXRhLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlk
ZXIodXJsLCBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICAgICAgLCBt
X3NvdXJjZSgiW1dlYkFzc2VtYmx5IHNvdXJjZV0iKQorICAgICAgICAgICAgLCBtX2RhdGEoZGF0
YSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG1fc291cmNlOworICAg
ICAgICBWZWN0b3I8dWludDhfdD4gbV9kYXRhOworICAgIH07CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTb3VyY2VQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggN2FlMmU5ZTU5YmU4
ODFkNzc1OGNmMzY0Njk1MmY0OTQzOWYyMjA4OS4uMWNhZGZmZTViOTRmZTcwMDg3MTBiMmJlMWYz
NWEwYTM1ODc0OTY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkpTVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCIKICNp
bmNsdWRlICJKU1R5cGVkQXJyYXlzLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCiAjaW5j
bHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAiSlNX
aXRoU2NvcGUuaCIKQEAgLTM0MCw2ICszNDEsMTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5p
dChWTSYgdm0pCiAgICAgbV9wcm9taXNlUHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNQcm9taXNl
UHJvdG90eXBlOjpjcmVhdGUoZXhlYywgdGhpcywgSlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fcHJv
bWlzZVN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTUHJvbWlzZTo6Y3JlYXRlU3RydWN0dXJlKHZt
LCB0aGlzLCBtX3Byb21pc2VQcm90b3R5cGUuZ2V0KCkpKTsKIAorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKKyAgICBtX3dhc21Nb2R1bGVTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1dBU01Nb2R1
bGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcykpOworI2VuZGlmCisKICAgICBtX3BhcnNlSW50
RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZt
LnByb3BlcnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5v
SW50cmluc2ljKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwg
RnVuY3Rpb24pOwogCkBAIC04MDEsNiArODA2LDkgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0
b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2RvbGxhclZNU3RydWN0dXJlKTsKICAgICB2aXNpdG9y
LmFwcGVuZCgmdGhpc09iamVjdC0+bV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB2
aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm9taXNlU3RydWN0dXJlKTsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fd2FzbU1v
ZHVsZVN0cnVjdHVyZSk7CisjZW5kaWYKIAogI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBp
dGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAog
ICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90
eXBlKTsgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKaW5kZXggNTc5MmFjMmUxMGJhOGFhZGRmMjg4ZTNjZGI4MGU0OTEyMzczM2U5Ni4uMDU0ZTQ2
YzU2MTE4YzAyNmVmMTMxMDIwMGI2OTM1MTUwMjFhMGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yNDMsNiArMjQzLDkgQEAgcHJv
dGVjdGVkOgogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRTdHJ1
Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJyYXlT
dHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcm9taXNlU3RydWN0dXJl
OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X3dhc21Nb2R1bGVTdHJ1Y3R1cmU7CisjZW5kaWYKIAogI2RlZmluZSBERUZJTkVfU1RPUkFHRV9G
T1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFu
Y2VUeXBlLCBqc05hbWUpIFwKICAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5hbWUgIyMgUHJvdG90
eXBlPiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlOyBcCkBAIC00NzUsNiArNDc4LDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyBwdHJkaWZmX3QgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmVPZmZz
ZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1faXRlcmF0b3JS
ZXN1bHRTdHJ1Y3R1cmUpOyB9CiAgICAgU3RydWN0dXJlKiByZWdFeHBNYXRjaGVzQXJyYXlTdHJ1
Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZS5nZXQo
KTsgfQogICAgIFN0cnVjdHVyZSogcHJvbWlzZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvbWlzZVN0cnVjdHVyZS5nZXQoKTsgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICBT
dHJ1Y3R1cmUqIHdhc21Nb2R1bGVTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3dhc21Nb2R1
bGVTdHJ1Y3R1cmUuZ2V0KCk7IH0KKyNlbmRpZgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBzZXRSZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9QUklWQVRF
IGJvb2wgcmVtb3RlRGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1hZ2ljTnVtYmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNTWFnaWNOdW1iZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWRkMmZhMjdmMjhiM2Zh
MGIzYmNiOTI3NmRkOTc1MDljNmEwNjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTU1hZ2ljTnVtYmVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTU1hZ2lj
TnVtYmVyX2gKKyNkZWZpbmUgV0FTTU1hZ2ljTnVtYmVyX2gKKworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKKworbmFtZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3YXNtTWFn
aWNOdW1iZXIgPSAweDZkNzM2MTc3OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8vIFdBU01NYWdpY051bWJlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ4ZDMwZjUzOGM3NGYwODlkNGZhNWU2OTNmMWQzMTI5NTNmMTRiZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcApA
QCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldBU01Nb2R1bGVQYXJzZXIuaCIK
KworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNp
bmNsdWRlICJKU1dBU01Nb2R1bGUuaCIKKyNpbmNsdWRlICJXQVNNTWFnaWNOdW1iZXIuaCIKKwor
I2RlZmluZSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpIGRvIHsgbV9lcnJvck1lc3Nh
Z2UgPSBlcnJvck1lc3NhZ2U7IHJldHVybiBmYWxzZTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVB
RF9VTlNJR05FRF9JTlQzMl9PUl9GQUlMKHgsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVh
ZGVyLnJlYWRVbnNpZ25lZEludDMyKHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2Up
OyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX0ZMT0FUX09SX0ZBSUwoeCwgZXJyb3JNZXNzYWdl
KSBkbyB7IGlmICghbV9yZWFkZXIucmVhZEZsb2F0KHgpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJv
ck1lc3NhZ2UpOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX0RPVUJMRV9PUl9GQUlMKHgsIGVy
cm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWREb3VibGUoeCkpIEZBSUxfV0lUSF9N
RVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIEZBSUxfSUZfRkFMU0Uo
Y29uZGl0aW9uLCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCEoY29uZGl0aW9uKSkgRkFJTF9XSVRI
X01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKworbmFtZXNwYWNlIEpTQyB7CisK
K1dBU01Nb2R1bGVQYXJzZXI6OldBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYgc291
cmNlKQorICAgIDogbV9yZWFkZXIoc3RhdGljX2Nhc3Q8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRl
cio+KHNvdXJjZS5wcm92aWRlcigpKS0+ZGF0YSgpKQoreworfQorCitKU1dBU01Nb2R1bGUqIFdB
U01Nb2R1bGVQYXJzZXI6OnBhcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgSlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBK
U1dBU01Nb2R1bGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT53YXNtTW9kdWxlU3RydWN0dXJl
KCkpOworICAgIHBhcnNlTW9kdWxlKCk7CisgICAgaWYgKCFtX2Vycm9yTWVzc2FnZS5pc051bGwo
KSkgeworICAgICAgICBlcnJvck1lc3NhZ2UgPSBtX2Vycm9yTWVzc2FnZTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBtb2R1bGU7Cit9CisKK2Jvb2wgV0FTTU1v
ZHVsZVBhcnNlcjo6cGFyc2VNb2R1bGUoKQoreworICAgIHVpbnQzMl90IG1hZ2ljTnVtYmVyOwor
ICAgIFJFQURfVU5TSUdORURfSU5UMzJfT1JfRkFJTChtYWdpY051bWJlciwgIkNhbm5vdCByZWFk
IHRoZSBtYWdpYyBudW1iZXIuIik7CisgICAgRkFJTF9JRl9GQUxTRShtYWdpY051bWJlciA9PSB3
YXNtTWFnaWNOdW1iZXIsICJUaGUgbWFnaWMgbnVtYmVyIGlzIGluY29ycmVjdC4iKTsKKworICAg
IC8vIFRPRE86IHBhcnNlIHRoZSByZXN0CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSlNXQVNN
TW9kdWxlKiBwYXJzZVdlYkFzc2VtYmx5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBXQVNNTW9kdWxlUGFyc2Vy
IFdBU01Nb2R1bGVQYXJzZXIoc291cmNlKTsKKyAgICByZXR1cm4gV0FTTU1vZHVsZVBhcnNlci5w
YXJzZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGVycm9yTWVzc2Fn
ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBh
cnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY1ZDZhMzE3ODllMTMxMGQ0NzcyZDU4MTI4ZWRhYTRkNjZkM2M0MjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2Vy
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV0FTTU1vZHVsZVBhcnNlcl9oCisjZGVmaW5lIFdBU01Nb2R1bGVQ
YXJzZXJfaAorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiV0FTTVJlYWRl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSlNDIHsK
KworY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBKU1dBU01N
b2R1bGU7CitjbGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVk07CisKK2NsYXNzIFdBU01Nb2R1bGVQ
YXJzZXIgeworcHVibGljOgorICAgIFdBU01Nb2R1bGVQYXJzZXIoY29uc3QgU291cmNlQ29kZSYp
OworICAgIEpTV0FTTU1vZHVsZSogcGFyc2UoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cmluZyYg
ZXJyb3JNZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBib29sIHBhcnNlTW9kdWxlKCk7CisKKyAg
ICBXQVNNUmVhZGVyIG1fcmVhZGVyOworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKK307CisK
K0pTX0VYUE9SVF9QUklWQVRFIEpTV0FTTU1vZHVsZSogcGFyc2VXZWJBc3NlbWJseShFeGVjU3Rh
dGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCit9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2VuZGlmIC8v
IFdBU01Nb2R1bGVQYXJzZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTVJlYWRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yN2JmOTM5NDJiYWMxYmQ0OTJiZjc0MzI4MzBiZTcxMTBiZGFhOTc2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRl
ci5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXQVNNUmVhZGVyLmgi
CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNkZWZpbmUgQ0hFQ0tfUkVBRChsZW5ndGgp
IGRvIHsgaWYgKG1fY3Vyc29yICsgbGVuZ3RoID4gbV9idWZmZXIuZW5kKCkpIHJldHVybiBmYWxz
ZTsgfSB3aGlsZSAoMCkKKworbmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgV0FTTVJlYWRlcjo6cmVh
ZFVuc2lnbmVkSW50MzIodWludDMyX3QmIHJlc3VsdCkKK3sKKyAgICBDSEVDS19SRUFEKDQpOwor
ICAgIHJlc3VsdCA9IG1fY3Vyc29yWzBdIHwgbV9jdXJzb3JbMV0gPDwgOCB8IG1fY3Vyc29yWzJd
IDw8IDE2IHwgbV9jdXJzb3JbM10gPDwgMjQ7CisgICAgbV9jdXJzb3IgKz0gNDsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBXQVNNUmVhZGVyOjpyZWFkRmxvYXQoZmxvYXQmIHJlc3VsdCkK
K3sKKyAgICBDSEVDS19SRUFEKDQpOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDhfdCBieXRl
c1s0XTsKKyAgICAgICAgZmxvYXQgZmxvYXRWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJ
R19FTkRJQU4pCisgICAgICAgIHsgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclsx
XSwgbV9jdXJzb3JbMF0gfQorI2Vsc2UKKyAgICAgICAgeyBtX2N1cnNvclswXSwgbV9jdXJzb3Jb
MV0sIG1fY3Vyc29yWzJdLCBtX2N1cnNvclszXSB9CisjZW5kaWYKKyAgICB9OworICAgIHJlc3Vs
dCA9IHUuZmxvYXRWYWx1ZTsKKyAgICBtX2N1cnNvciArPSA0OworICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIFdBU01SZWFkZXI6OnJlYWREb3VibGUoZG91YmxlJiByZXN1bHQpCit7CisgICAg
Q0hFQ0tfUkVBRCg4KTsKKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ4X3QgYnl0ZXNbOF07Cisg
ICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICB9IHUgPSB7CisjaWYgQ1BVKEJJR19FTkRJ
QU4pCisgICAgICAgIHsgbV9jdXJzb3JbN10sIG1fY3Vyc29yWzZdLCBtX2N1cnNvcls1XSwgbV9j
dXJzb3JbNF0sIG1fY3Vyc29yWzNdLCBtX2N1cnNvclsyXSwgbV9jdXJzb3JbMV0sIG1fY3Vyc29y
WzBdIH0KKyNlbHNlCisgICAgICAgIHsgbV9jdXJzb3JbMF0sIG1fY3Vyc29yWzFdLCBtX2N1cnNv
clsyXSwgbV9jdXJzb3JbM10sIG1fY3Vyc29yWzRdLCBtX2N1cnNvcls1XSwgbV9jdXJzb3JbNl0s
IG1fY3Vyc29yWzddIH0KKyNlbmRpZgorICAgIH07CisgICAgcmVzdWx0ID0gdS5kb3VibGVWYWx1
ZTsKKyAgICBtX2N1cnNvciArPSA4OworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01SZWFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2RlYTJiOTJkODJkZTZkYWE3OGNi
N2Q4ZjMzMmEyM2YzZWZmY2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTVJlYWRlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdBU01SZWFkZXJfaAorI2RlZmlu
ZSBXQVNNUmVhZGVyX2gKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFdBU01SZWFkZXIgeworcHVi
bGljOgorICAgIFdBU01SZWFkZXIoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAg
ICAgIDogbV9idWZmZXIoYnVmZmVyKQorICAgICAgICAsIG1fY3Vyc29yKGJ1ZmZlci5kYXRhKCkp
CisgICAgeworICAgIH0KKworICAgIGJvb2wgcmVhZFVuc2lnbmVkSW50MzIodWludDMyX3QmIHJl
c3VsdCk7CisgICAgYm9vbCByZWFkRmxvYXQoZmxvYXQmIHJlc3VsdCk7CisgICAgYm9vbCByZWFk
RG91YmxlKGRvdWJsZSYgcmVzdWx0KTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIG1fYnVmZmVyOworICAgIGNvbnN0IHVpbnQ4X3QqIG1fY3Vyc29yOworfTsKKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNlbmRp
ZiAvLyBXQVNNUmVhZGVyX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>